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

另请参阅

SID

SecLookupAccountName

SecLookupAccountSid