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 | 指示匿名帐户的 SID。 |
WinProxySid | 指示代理 SID。 |
WinEnterpriseControllersSid | 指示企业控制器的 SID。 |
WinSelfSid | 指示自带的 SID。 |
WinAuthenticatedUserSid | 指示与任何经过身份验证的用户匹配的 SID。 |
WinRestrictedCodeSid | 指示受限制代码的 SID。 |
WinTerminalServerSid | 指示与终端服务器帐户匹配的 SID。 |
WinRemoteLogonIdSid | 指示与远程登录匹配的 SID。 |
WinLogonIdsSid | 指示与登录 ID 匹配的 SID。 |
WinLocalSystemSid | 指示与本地系统匹配的 SID。 |
WinLocalServiceSid | 指示与本地服务匹配的 SID。 |
WinNetworkServiceSid | 指示与网络服务匹配的 SID。 |
WinBuiltinDomainSid | 指示与域帐户匹配的 SID。 |
WinBuiltinAdministratorsSid | 指示与管理员帐户匹配的 SID。 |
WinBuiltinUsersSid | 指示与内置用户帐户匹配的 SID。 |
WinBuiltinGuestsSid | 指示与来宾帐户匹配的 SID。 |
WinBuiltinPowerUsersSid | 指示与电源用户组匹配的 SID。 |
WinBuiltinAccountOperatorsSid | 指示与帐户操作员帐户匹配的 SID。 |
WinBuiltinSystemOperatorsSid | 指示与系统操作员组匹配的 SID。 |
WinBuiltinPrintOperatorsSid | 指示与打印运算符组匹配的 SID。 |
WinBuiltinBackupOperatorsSid | 指示与备份操作员组匹配的 SID。 |
WinBuiltinReplicatorSid | 指示与复制程序帐户匹配的 SID。 |
WinBuiltinPreWindows2000CompatibleAccessSid | 指示与 Windows 2000 兼容帐户匹配的 SID。 |
WinBuiltinRemoteDesktopUsersSid | 指示与远程桌面用户匹配的 SID。 |
WinBuiltinNetworkConfigurationOperatorsSid | 指示与网络操作员组匹配的 SID。 |
WinAccountAdministratorSid | 指示与帐户管理员组匹配的 SID。 |
WinAccountGuestSid | 指示与帐户来宾组匹配的 SID。 |
WinAccountKrbtgtSid | 指示与帐户 Kerberos 目标组匹配的 SID。 |
WinAccountDomainAdminsSid | 指示与帐户域管理员组匹配的 SID。 |
WinAccountDomainUsersSid | 指示与帐户域用户组匹配的 SID。 |
WinAccountDomainGuestsSid | 指示与帐户域来宾组匹配的 SID。 |
WinAccountComputersSid | 指示与帐户计算机组匹配的 SID。 |
WinAccountControllersSid | 指示与帐户控制器组匹配的 SID。 |
WinAccountCertAdminsSid | 指示与证书管理员组匹配的 SID。 |
WinAccountSchemaAdminsSid | 指示与架构管理员组匹配的 SID。 |
WinAccountEnterpriseAdminsSid | 指示与企业管理员组匹配的 SID。 |
WinAccountPolicyAdminsSid | 指示与策略管理员组匹配的 SID。 |
WinAccountRasAndIasServersSid | 指示与 RAS 和 IAS 服务器帐户匹配的 SID。 |
WinNTLMAuthenticationSid | 指示Microsoft NTLM 身份验证包对客户端进行身份验证时存在的 SID。 |
WinDigestAuthenticationSid | 指示Microsoft摘要式身份验证包对客户端进行身份验证时存在的 SID。 |
WinSChannelAuthenticationSid | 指示安全通道 (SSL/TLS) 身份验证包对客户端进行身份验证时存在的 SID。 |
WinThisOrganizationSid | 指示用户从林中或通过未启用选择性身份验证选项的信任进行身份验证时存在的 SID。 如果存在此 SID,则 WinOtherOrganizationSid 不能存在。 |
WinOtherOrganizationSid | 指示用户在启用了选择性身份验证选项的林中进行身份验证时存在的 SID。 如果存在此 SID,则 WinThisOrganizationSid 不能存在。 |
WinBuiltinIncomingForestTrustBuildersSid | 指示允许用户创建传入林信任的 SID。 它将添加到作为林根域中传入林信任生成器内置组成员的用户的令牌中。 |
WinBuiltinPerfMonitoringUsersSid | 指示与性能监视器用户组匹配的 SID。 |
WinBuiltinPerfLoggingUsersSid | 指示与性能日志用户组匹配的 SID。 |
WinBuiltinAuthorizationAccessSid | 指示与 Windows 授权访问组匹配的 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 (include Ntifs.h) |
库 | Ksecdd.lib |
IRQL | <= APC_LEVEL |