SecLookupWellKnownSid 函数 (ntifs.h)
SecLookupWellKnownSid 接受 (SID) 类型的已知安全标识符作为输入,并检索此已知 SID 的本地安全标识符 (SID) 。
语法
KSECDDDECLSPEC NTSTATUS SEC_ENTRY SecLookupWellKnownSid(
[in] WELL_KNOWN_SID_TYPE SidType,
[out] PSID Sid,
[in] ULONG SidBufferSize,
[in_out, optional] PULONG SidSize
);
参数
[in] SidType
一个枚举类型,指示函数返回 (SID) 安全标识符的类型。 此参数可以是WELL_KNOWN_SID_TYPE的以下枚举之一。
值 | 含义 |
---|---|
WinnullSid | 此值指示空 SID。 |
WinWorldSid | 此值指示与所有人匹配的 SID。 |
WinLocalSid | 此值指示本地 SID。 |
WinCreatorOwnerSid | 指示一个与某对象的所有者或创建者匹配的 SID。 此 SID 用于可继承的访问控制条目。 |
WinCreatorGroupSid | 指示一个与某对象的创建者组匹配的 SID。 此 SID 用于可继承的访问控制条目。 |
WinCreatorOwnerServerSid | 指示一个创建者所有者服务器 SID。 |
WinCreatorGroupServerSid | 指示一个创建者组服务器 SID。 |
WinNtAuthoritySid | 指示 Windows NT 颁发机构的 SID。 |
WinDialupSid | 指示一个拨号帐户的 SID。 |
WinNetworkSid | 指示一个网络帐户的 SID。 当标记的进程通过网络登录时,此 SID 被添加到该进程。 相应的登录类型为LOGON32_LOGON_NETWORK。 |
WinBatchSid | 指示一个批处理进程的 SID。 当标记的进程作为批处理作业登录时,此 SID 被添加到该进程中。 相应的登录类型是LOGON32_LOGON_BATCH。 |
WinInteractiveSid | 指示一个交互式帐户的 SID。 当标记的进程以交互方式登录时,此 SID 被添加到该进程。 相应的登录类型为LOGON32_LOGON_INTERACTIVE。 |
WinServiceSid | 指示某服务的 SID。 当标记的进程作为服务登录时,此 SID 被添加到该进程。 相应的登录类型为LOGON32_LOGON_SERVICE。 |
WinAnonymousSid | 指示 Anonymous 帐户的 SID。 |
WinProxySid | 指示一个代理 SID。 |
WinEnterpriseControllersSid | 指示一个企业控制器的 SID。 |
WinSelfSid | 指示一个 SID 自身的 SID。 |
WinAuthenticatedUserSid | 指示与任何经过身份验证的用户匹配的 SID。 |
WinRestrictedCodeSid | 指示受限代码的 SID。 |
WinTerminalServerSid | 指示一个与终端服务器帐户匹配的 SID。 |
WinRemoteLogonIdSid | 指示一个与远程登录匹配的 SID。 |
WinLogonIdsSid | 指示一个与登录 ID 匹配的 SID。 |
WinLocalSystemSid | 指示一个与本地系统匹配的 SID。 |
WinLocalServiceSid | 指示一个与本地服务匹配的 SID。 |
WinNetworkServiceSid | 指示一个与网络服务匹配的 SID。 |
WinBuiltinDomainSid | 指示一个与 Domain 帐户匹配的 SID。 |
WinBuiltinAdministratorsSid | 指示一个与 Administrator 帐户匹配的 SID。 |
WinBuiltinUsersSid | 指示一个与内置用户帐户匹配的 SID。 |
WinBuiltinGuestsSid | 指示一个与 Guest 帐户匹配的 SID。 |
WinBuiltinPowerUsersSid | 指示一个与 Power Users 组匹配的 SID。 |
WinBuiltinAccountOperatorsSid | 指示一个与 Account Operators 帐户匹配的 SID。 |
WinBuiltinSystemOperatorsSid | 指示一个与 System Operators 组匹配的 SID。 |
WinBuiltinPrintOperatorsSid | 指示一个与 Print Operators 组匹配的 SID。 |
WinBuiltinBackupOperatorsSid | 指示一个与 Backup Operators 组匹配的 SID。 |
WinBuiltinReplicatorSid | 指示一个与 Replicator 帐户匹配的 SID。 |
WinBuiltinPreWindows2000CompatibleAccessSid | 指示与 Windows 2000 之前的兼容帐户匹配的 SID。 |
WinBuiltinRemoteDesktopUsersSid | 指示一个与 Remote Desktop Users 匹配的 SID。 |
WinBuiltinNetworkConfigurationOperatorsSid | 指示一个与 Network Operators 组匹配的 SID。 |
WinAccountAdministratorSid | 指示一个与 Account Administrators 组匹配的 SID。 |
WinAccountGuestSid | 指示一个与 Account Guest 组匹配的 SID。 |
WinAccountKrbtgtSid | 指示与帐户 Kerberos 目标组匹配的 SID。 |
WinAccountDomainAdminsSid | 指示一个与 Account Domain Administrator 组匹配的 SID。 |
WinAccountDomainUsersSid | 指示一个与 Account Domain Users 组匹配的 SID。 |
WinAccountDomainGuestsSid | 指示一个与 Account Domain Guests 组匹配的 SID。 |
WinAccountComputersSid | 指示一个与 Account Computer 组匹配的 SID。 |
WinAccountControllersSid | 指示一个与 Account Controller 组匹配的 SID。 |
WinAccountCertAdminsSid | 指示一个与 Certificate Administrators 组匹配的 SID。 |
WinAccountSchemaAdminsSid | 指示一个与 Schema Administrators 组匹配的 SID。 |
WinAccountEnterpriseAdminsSid | 指示一个与 Enterprise Administrators 组匹配的 SID。 |
WinAccountPolicyAdminsSid | 指示一个与 Policy Administrators 组匹配的 SID。 |
WinAccountRasAndIasServersSid | 指示一个与 RAS and IAS Server 帐户匹配的 SID。 |
WinNTLMAuthenticationSid | 指示一个在 Microsoft NTLM 身份验证包对客户端进行身份验证时存在的 SID。 |
WinDigestAuthenticationSid | 指示一个在 Microsoft 摘要式身份验证包对客户端进行身份验证时存在的 SID。 |
WinSChannelAuthenticationSid | 指示一个在安全通道 (SSL/TLS) 身份验证包对客户端进行身份验证时存在的 SID。 |
WinThisOrganizationSid | 指示一个当用户在目录林内部或通过没有启用选择性身份验证选项的信任进行身份验证时存在的 SID。 如果此 SID 存在,则 WinOtherOrganizationSid 无法存在。 |
WinOtherOrganizationSid | 指示一个当用户在启用了选择性身份验证选项的情况下跨目录林进行身份验证时存在的 SID。 如果此 SID 存在,则 WinThisOrganizationSid 无法存在。 |
WinBuiltinIncomingForestTrustBuildersSid | 指示一个允许用户创建传入的目录林信任的 SID。 此 SID 将被添加到属于目录林根域中的 Incoming Forest Trust Builders 内置组成员的用户的标记中。 |
WinBuiltinPerfMonitoringUsersSid | 指示与性能监视器用户组匹配的 SID。 |
WinBuiltinPerfLoggingUsersSid | 指示与性能日志用户组匹配的 SID。 |
WinBuiltinAuthorizationAccessSid | 指示一个与 Windows Authorization Access 组匹配的 SID。 |
WinBuiltinTerminalServerLicenseServersSid | 指示一个在可以发出终端服务器许可证的服务器上存在的 SID。 |
WinBuiltinDCOMUsersSid | 指示与 DCOM 用户组匹配的 SID。 |
[out] Sid
指向缓冲区的指针,该缓冲区接收对应于 SidType 参数的 SID 结构。 如果此参数为 NULL, 则 SidBufferSize 为零。
[in] SidBufferSize
一个变量,指定 Sid 缓冲区的大小(以字节为单位)。
[in_out, optional] SidSize
指向变量的可选指针,该变量指定 Sid 缓冲区的大小。 如果函数因缓冲区太小或 SidBufferSize 为零而失败,则此变量接收所需的缓冲区大小。 成功后,此变量包含返回的 Sid 的大小。
返回值
SecLookupWellKnownSid 在成功时返回STATUS_SUCCESS或在失败时返回以下错误代码之一:
返回代码 | 说明 |
---|---|
SEC_E_INTERNAL_ERROR | 尝试连接到本地系统机构 (LSA) 或本地过程调用 (LPC) 安全提供程序失败时发生内部错误。 |
STATUS_ACCESS_DENIED | 与当前正在执行的线程关联的进程 ID 与当前进程 ID 不匹配。 |
STATUS_BUFFER_TOO_SMALL | Sid 的缓冲区大小(SidBufferSize 参数)太小。 |
STATUS_INVALID_PARAMETER | 为 Sid 参数传递了 NULL 指针,或者找不到指定的 SidType 的已知 SID。 |
STATUS_PROCESS_IS_TERMINATING | 此过程已终止,因此无法在 LPC) 连接 (建立本地过程调用。 |
注解
SecLookupWellKnownSid 尝试使用 SidType 参数查找已知的 SID 。 除了在本地计算机上查找已知的 SID 外, SecLookupWellKnownSid 还可以在本地域上查找已知的 SID。 SecLookupWellKnownSid首先检查已知的本地 SID 列表。 如果 SidType 不对应于本地已知 SID,则函数会检查主域上的已知 SID。
如果函数找不到指定的 SidType 的已知 SID , 则 SecLookupWellKnownSid 将失败。 如果网络超时阻止函数在主域上查找 SID,则可能会发生这种情况。 对于没有相应的已知 SID 的 SidType ,也会发生这种情况。
SecLookupWellKnownSid 等效于 Win32 CreateWellKnownSid 函数。 对于用户模式应用程序,WELL_KNOWN_SID_TYPE枚举在 winbase.h 中定义。
SecLookupWellKnownSid 由 ksecdd 驱动程序导出,该驱动程序使用用户模式帮助程序服务实现此函数。 因此,在文件系统中使用此函数必须遵循与用户模式服务通信的常规规则。 在分页文件 I/O 期间无法使用 SecLookupWellKnownSid。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | 此 SecLookupWellKnownSid 函数仅从 Windows Server 2003 开始可用。 |
目标平台 | 通用 |
标头 | ntifs.h (包括 Ntifs.h) |
Library | Ksecdd.lib |
IRQL | <= APC_LEVEL |