Partager via


ZwSetInformationToken, fonction (ntifs.h)

La routine ZwSetInformationToken modifie les informations dans un jeton spécifié. Le processus appelant doit disposer des droits d’accès appropriés pour définir les informations.

Syntaxe

NTSYSAPI NTSTATUS ZwSetInformationToken(
  [in] HANDLE                  TokenHandle,
  [in] TOKEN_INFORMATION_CLASS TokenInformationClass,
  [in] PVOID                   TokenInformation,
  [in] ULONG                   TokenInformationLength
);

Paramètres

[in] TokenHandle

Gérer un jeton d’accès dans lequel les informations doivent être modifiées.

[in] TokenInformationClass

Valeur de l'TOKEN_INFORMATION_CLASS type énuméré identifiant le type d’informations à modifier. Les valeurs possibles pour ce paramètre sont répertoriées dans la colonne TokenInformationClass Value de la table indiquée dans la description du paramètre TokenInformation.

[in] TokenInformation

Pointeur vers une mémoire tampon fournie par l’appelant contenant les informations à modifier dans le jeton. La structure des informations contenues dans cette mémoire tampon dépend de la valeur de TokenInformationClass, comme indiqué dans le tableau suivant. Toutes les structures doivent être alignées sur une limite 32 bits.

Valeur TokenInformationClass Effet sur la mémoire tampon TokenInformation
TokenDefaultDacl La mémoire tampon contient une structure TOKEN_DEFAULT_DACL spécifiant la DACL par défaut pour les objets nouvellement créés. TOKEN_ADJUST_DEFAULT’accès est requis pour définir ces informations. Le contenu de la mémoire tampon n’est pas validé pour la correction structurelle ou la cohérence.
TokenGroups Classe d’informations non valide. Ces informations sont en lecture seule.
tokenOwner La mémoire tampon contient une structure TOKEN_OWNER spécifiant le propriétaire par défaut SID pour les objets nouvellement créés. TOKEN_ADJUST_DEFAULT’accès est requis pour définir ces informations. Les valeurs de propriétaire qui peuvent être spécifiées sont limitées aux ID d’utilisateur et de groupe avec un attribut indiquant qu’ils peuvent être attribués en tant que propriétaire d’objets.
TokenPrimaryGroup La mémoire tampon contient une structure TOKEN_PRIMARY_GROUP spécifiant le groupe principal par défaut SID pour les objets nouvellement créés. TOKEN_ADJUST_DEFAULT’accès est requis pour définir ces informations. Doit être l’un des ID de groupe déjà présents dans le jeton.
TokenPrivileges Classe d’informations non valide. Ces informations sont en lecture seule.
TokenSource Classe d’informations non valide. Ces informations sont en lecture seule.
TokenStatistics Classe d’informations non valide. Ces informations sont en lecture seule.
TokenUser Classe d’informations non valide. Ces informations sont en lecture seule.

[in] TokenInformationLength

Taille, en octets, de la structure passée dans la mémoire tampon TokenInformation . Doit être supérieur ou égal à la valeur minimale donnée dans le tableau suivant.

Valeur TokenInformationClass Minimum TokenInformationLength
TokenDefaultDacl taille de(TOKEN_DEFAULT_DACL)
tokenOwner taille de(TOKEN_OWNER)
TokenPrimaryGroup taille de(TOKEN_PRIMARY_GROUP)

Valeur de retour

ZwSetInformationToken retourne STATUS_SUCCESS ou un état d’erreur approprié. Les codes d’état d’erreur possibles sont les suivants :

Retourner le code Description
STATUS_ACCESS_DENIED TokenHandle n’avait pas l’accès requis.
STATUS_ALLOTTED_SPACE_EXCEEDED L’espace alloué pour le stockage du contrôle d’accès discrétionnaire par défaut et l’ID de groupe principal n’est pas suffisamment grand pour accepter la nouvelle valeur de l’un de ces champs.
STATUS_INFO_LENGTH_MISMATCH La valeur de TokenInformationLength était inférieure à la valeur minimale requise.
STATUS_INSUFFICIENT_RESOURCES Les informations de sécurité du propriétaire par défaut spécifiées n’ont pas pu être capturées.
STATUS_INVALID_HANDLE TokenHandle n’était pas un handle valide.
STATUS_INVALID_INFO_CLASS TokenInformationClass n’était pas une classe d’informations de jeton valide.
STATUS_INVALID_OWNER L’appelant ne peut pas définir l’ID spécifié comme propriétaire (ou propriétaire par défaut) d’un objet.
STATUS_INVALID_PRIMARY_GROUP L’appelant ne peut pas définir l’ID spécifié comme le groupe principal d’un objet.
STATUS_INVALID_SID Les informations de sécurité du propriétaire par défaut spécifiées n’étaient pas valides.
STATUS_OBJECT_TYPE_MISMATCH TokenHandle n’était pas un handle de jeton.

Remarques

Pour plus d’informations sur la sécurité et le contrôle d’accès, consultez modèle de sécurité Windows pour les développeurs de pilotes et la documentation sur ces rubriques dans le Kit de développement logiciel (SDK) Windows.

Note

Si l’appel à la fonction ZwSetInformationToken se produit en mode utilisateur, vous devez utiliser le nom NtSetInformationToken« au lieu de «ZwSetInformationToken».

Pour les appels à partir de pilotes en mode noyau, les versions NtXxx et ZwXxx d’une routine Windows Native System Services peuvent se comporter différemment de la façon dont elles gèrent et interprètent les paramètres d’entrée. Pour plus d’informations sur la relation entre les versions NtXxx et ZwXxx d’une routine, consultez Using Nt and Zw Versions of the Native System Services Routines.

Exigences

Exigence Valeur
client minimum pris en charge Windows 7
plateforme cible Universel
d’en-tête ntifs.h (include Ntifs.h)
bibliothèque NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL
règles de conformité DDI HwStorPortProhibitedDDIs(storport), PowerIrpDDis(wdm)

Voir aussi

PsDereferenceImpersonationToken

psDereferencePrimaryToken

SECURITY_IMPERSONATION_LEVEL

SID

SeQueryAuthenticationIdToken

SeQuerySubjectContextToken

SeTokenIsAdmin

SeTokenIsRestricted

TOKEN_DEFAULT_DACL

TOKEN_GROUPS

TOKEN_INFORMATION_CLASS

TOKEN_OWNER

TOKEN_PRIMARY_GROUP

TOKEN_PRIVILEGES

TOKEN_SOURCE

TOKEN_STATISTICS

TOKEN_TYPE

TOKEN_USER

à l’aide de versions Nt et Zw des routines natives des services système

ZwQueryInformationToken