Fonction AdjustTokenGroups (securitybaseapi.h)

La fonction AdjustTokenGroups active ou désactive les groupes déjà présents dans le jeton d’accès spécifié. L’accès à TOKEN_ADJUST_GROUPS est nécessaire pour activer ou désactiver des groupes dans un jeton d’accès.

Syntaxe

BOOL AdjustTokenGroups(
  [in]            HANDLE        TokenHandle,
  [in]            BOOL          ResetToDefault,
  [in, optional]  PTOKEN_GROUPS NewState,
  [in]            DWORD         BufferLength,
  [out, optional] PTOKEN_GROUPS PreviousState,
  [out, optional] PDWORD        ReturnLength
);

Paramètres

[in] TokenHandle

Handle du jeton d’accès qui contient les groupes à activer ou désactiver. Le handle doit avoir TOKEN_ADJUST_GROUPS accès au jeton. Si le paramètre PreviousState n’est pas NULL, le handle doit également avoir un accès TOKEN_QUERY.

[in] ResetToDefault

Valeur booléenne qui indique si les groupes doivent être définis sur leurs états activés et désactivés par défaut. Si cette valeur est TRUE, les groupes sont définis sur leurs états par défaut et le paramètre NewState est ignoré. Si cette valeur est FALSE, les groupes sont définis en fonction des informations pointées par le paramètre NewState .

[in, optional] NewState

Pointeur vers une structure de TOKEN_GROUPS qui contient les groupes à activer ou désactiver. Si le paramètre ResetToDefault a la valeur FALSE, la fonction affecte à chacun des groupes la valeur de l’attribut SE_GROUP_ENABLED de ce groupe dans la structure TOKEN_GROUPS . Si ResetToDefault a la valeur TRUE, ce paramètre est ignoré.

[in] BufferLength

Taille, en octets, de la mémoire tampon pointée vers le paramètre PreviousState . Ce paramètre peut être égal à zéro si le paramètre PreviousState a la valeur NULL.

[out, optional] PreviousState

Pointeur vers une mémoire tampon qui reçoit une structure TOKEN_GROUPS contenant l’état précédent de tous les groupes modifiés par la fonction. Autrement dit, si un groupe a été modifié par cette fonction, le groupe et son état précédent sont contenus dans la structure TOKEN_GROUPS référencée par PreviousState. Si le membre GroupCount de TOKEN_GROUPS est égal à zéro, cela signifie qu’aucun groupe n’a été modifié par cette fonction. Ce paramètre peut être NULL.

Si une mémoire tampon est spécifiée mais qu’elle ne contient pas suffisamment d’espace pour recevoir la liste complète des groupes modifiés, aucun état de groupe n’est modifié et la fonction échoue. Dans ce cas, la fonction définit la variable pointée par le paramètre ReturnLength sur le nombre d’octets requis pour contenir la liste complète des groupes modifiés.

[out, optional] ReturnLength

Pointeur vers une variable qui reçoit le nombre réel d’octets nécessaires pour la mémoire tampon vers laquelle pointe le paramètre PreviousState . Ce paramètre peut être NULL et est ignoré si PreviousState a la valeur NULL.

Valeur retournée

Si la fonction réussit, la valeur de retour est différente de zéro.

Si la fonction échoue, la valeur de retour est égale à zéro. Pour obtenir des informations détaillées sur l’erreur, appelez GetLastError.

Notes

Les informations récupérées dans le paramètre PreviousState sont mises en forme en tant que structure TOKEN_GROUPS . Cela signifie qu’un pointeur vers la mémoire tampon peut être passé en tant que paramètre NewState dans un appel suivant à la fonction AdjustTokenGroups , en restaurant l’état d’origine des groupes.

Le paramètre NewState peut répertorier les groupes à modifier qui ne sont pas présents dans le jeton d’accès. Cela n’affecte pas la modification réussie des groupes dans le jeton.

La fonction AdjustTokenGroups ne peut pas désactiver les groupes avec l’attribut SE_GROUP_MANDATORY dans la structure TOKEN_GROUPS . Utilisez Plutôt CreateRestrictedToken .

Vous ne pouvez pas activer un groupe qui a l’attribut SE_GROUP_USE_FOR_DENY_ONLY.

Spécifications

   
Client minimal pris en charge Windows XP [applications de bureau | applications UWP]
Serveur minimal pris en charge Windows Server 2003 [applications de bureau | applications UWP]
Plateforme cible Windows
En-tête securitybaseapi.h (inclure Windows.h)
Bibliothèque Advapi32.lib
DLL Advapi32.dll

Voir aussi

Vue d’ensemble du contrôle d’accès

AdjustTokenPrivileges

Fonctions Access Control de base

CreateRestrictedToken

GetTokenInformation

OpenProcessToken

OpenThreadToken

SetTokenInformation

TOKEN_GROUPS