AllocateAndInitializeSid 函数 (securitybaseapi.h)

AllocateAndInitializeSid 函数分配和初始化一个安全标识符, (SID) 最多八个子授权。

语法

BOOL AllocateAndInitializeSid(
  [in]  PSID_IDENTIFIER_AUTHORITY pIdentifierAuthority,
  [in]  BYTE                      nSubAuthorityCount,
  [in]  DWORD                     nSubAuthority0,
  [in]  DWORD                     nSubAuthority1,
  [in]  DWORD                     nSubAuthority2,
  [in]  DWORD                     nSubAuthority3,
  [in]  DWORD                     nSubAuthority4,
  [in]  DWORD                     nSubAuthority5,
  [in]  DWORD                     nSubAuthority6,
  [in]  DWORD                     nSubAuthority7,
  [out] PSID                      *pSid
);

参数

[in] pIdentifierAuthority

指向 SID_IDENTIFIER_AUTHORITY 结构的指针。 此结构提供要在 SID 中设置的顶级标识符颁发机构值。

[in] nSubAuthorityCount

指定要放置在 SID 中的子授权数。 此参数还标识有多少个子授权参数具有有意义的值。 此参数必须包含 1 到 8 的值。

例如,值为 3 表示 dwSubAuthority0、dwSubAuthority1dwSubAuthority2 参数指定的子授权值具有有意义的值,并且忽略余数。

[in] nSubAuthority0

要放置在 SID 中的子授权值。

[in] nSubAuthority1

要放置在 SID 中的子授权值。

[in] nSubAuthority2

要放置在 SID 中的子授权值。

[in] nSubAuthority3

要放置在 SID 中的子授权值。

[in] nSubAuthority4

要放置在 SID 中的子授权值。

[in] nSubAuthority5

要放置在 SID 中的子授权值。

[in] nSubAuthority6

要放置在 SID 中的子授权值。

[in] nSubAuthority7

要放置在 SID 中的子授权值。

[out] pSid

指向变量的指针,该变量接收指向已分配和初始化 的 SID 结构的指针。

返回值

如果该函数成功,则返回值为非零值。

如果函数失败,则返回值为零。 要获得更多的错误信息,请调用 GetLastError。

注解

必须使用 FreeSid 函数释放使用 AllocateAndInitializeSid 函数分配的 SID

此函数使用 32 位 RID 值创建 SID。 对于需要较长 RID 值的应用程序,请使用 CreateWellKnownSid

示例

有关使用此函数的示例,请参阅 为新对象创建安全描述符获取对象所有权

要求

要求
最低受支持的客户端 Windows XP [桌面应用 | UWP 应用]
最低受支持的服务器 Windows Server 2003 [桌面应用 | UWP 应用]
目标平台 Windows
标头 securitybaseapi.h (包括 Windows.h)
Library Advapi32.lib
DLL Advapi32.dll

另请参阅

访问控制

基本访问控制函数

FreeSid

GetSidIdentifierAuthority

InitializeSid

SID_IDENTIFIER_AUTHORITY

公认 SID