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 结构的缓冲区的指针。 如果此参数 NULLSidBufferSize 为零。

[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 SidSidBufferSize 参数)的缓冲区大小太小。
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

另请参阅

SID

SecLookupAccountName

SecLookupAccountSid