SetTokenInformation函数设置指定访问令牌的各种类型的信息。其设置的信息将替换现有信息。调用进程必须具有设置信息的适当访问权限。
BOOL SetTokenInformation(
HANDLE 【TokenHandle】, | //访问令牌的句柄 |
TOKEN_INFORMATION_CLASS 【TokenInformationClass】, | //要设置的信息类型 |
LPVOID 【TokenInformation】, | //要设置的信息的地址 |
DWORD 【TokenInformationLength】 | //信息缓冲区的大小 |
); |
参数
【TokenHandle】
标识要设置信息的访问令牌。
【TokenInformationClass】
指定TOKEN_INFORMATION_CLASS枚举类型的变量,标识函数集的信息类型。来自TOKEN_INFORMATION_CLASS的有效值是TokenOwner,TokenPrimaryGroup和TokenDefaultDacl。有关这些值的更多信息,请参阅下面的【TokenInformation】参数的描述。
【TokenInformation】
指向包含访问令牌中设置的信息的缓冲区。此缓冲区的结构取决于【TokenInformationClass】参数指定的信息类型。以下三个值在调用此函数时有效:
令牌信息类 | 结构提供 |
TokenOwner | TOKEN_OWNER结构。需要TOKEN_ADJUST_DEFAULT访问权限才能设置所有者信息。有效的所有者值是具有允许作为对象的所有者分配的属性的用户或组标识符。 |
TokenPrimaryGroup | TOKEN_PRIMARY_GROUP结构。需要TOKEN_ADJUST_DEFAULT访问权限才能设置主组信息。 |
TokenDefaultDacl | TOKEN_DEFAULT_DACL结构。需要TOKEN_ADJUST_DEFAULT访问权限才能在默认的自由访问控制列表(ACL)中设置信息。作为新的默认自由ACL提供的ACL结构对于正确性或一致性不进行验证。如果【TokenInformation】参数为NULL,则删除当前的默认自由ACL,不会替换。 |
此函数可以设置的结构的格式在以下备注部分中列出。
【TokenInformationLength】
指定【TokenInformation】指向的缓冲区的长度(以字节为单位)。
返回值
如果函数成功,返回值不为零。
如果函数失败,返回值为零。要获取扩展错误信息,请调用GetLastError.
备注
要设置权限信息,应用程序可以调用AdjustTokenPrivileges功能。要设置令牌的组,应用程序可以调用AdjustTokenGroups功能。
令牌类型信息只能在创建访问令牌时设置。
也可以看看
AdjustTokenGroups, AdjustTokenPrivileges, GetTokenInformation, OpenProcessToken, OpenThreadToken, TOKEN_DEFAULT_DACL, TOKEN_INFORMATION_CLASS, TOKEN_OWNER, TOKEN_PRIMARY_GROUP