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 |
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
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
à l’aide de versions Nt et Zw des routines natives des services système