GetUserObjectSecurity, fonction (winuser.h)
La fonction GetUserObjectSecurity récupère les informations de sécurité pour l’objet utilisateur spécifié.
Syntaxe
BOOL GetUserObjectSecurity(
[in] HANDLE hObj,
[in] PSECURITY_INFORMATION pSIRequested,
[in, out, optional] PSECURITY_DESCRIPTOR pSID,
[in] DWORD nLength,
[out] LPDWORD lpnLengthNeeded
);
Paramètres
[in] hObj
Handle de l’objet utilisateur pour lequel retourner des informations de sécurité.
[in] pSIRequested
Pointeur vers une valeur SECURITY_INFORMATION qui spécifie les informations de sécurité demandées.
[in, out, optional] pSID
Un pointeur vers une structure SECURITY_DESCRIPTOR au format auto-relatif qui contient les informations demandées lorsque la fonction retourne. Cette mémoire tampon doit être alignée sur une limite de 4 octets.
[in] nLength
Longueur, en octets, de la mémoire tampon pointée vers le paramètre pSD .
[out] lpnLengthNeeded
Pointeur vers une variable pour recevoir le nombre d’octets requis pour stocker le descripteur de sécurité complet. Si la valeur de cette variable est supérieure à la valeur du paramètre nLength lorsque la fonction retourne, la fonction retourne FALSE et aucun descripteur de sécurité n’est copié dans la mémoire tampon. Sinon, le descripteur de sécurité entier est copié.
Valeur retournée
Si la fonction réussit, la fonction retourne une valeur différente de zéro.
Si la fonction échoue, elle retourne zéro. Pour obtenir des informations détaillées sur l’erreur, appelez GetLastError.
Remarques
Pour lire le propriétaire, le groupe ou la liste de contrôle d’accès discrétionnaire (DACL) à partir du descripteur de sécurité de l’objet utilisateur, le processus appelant doit avoir obtenu READ_CONTROL accès lors de l’ouverture du handle.
Pour lire la liste de contrôle d’accès système (SACL) à partir du descripteur de sécurité, le processus appelant doit avoir obtenu ACCESS_SYSTEM_SECURITY accès lors de l’ouverture du handle. La bonne façon d’obtenir cet accès consiste à activer le privilège SE_SECURITY_NAME dans le jeton actuel de l’appelant, à ouvrir le handle pour ACCESS_SYSTEM_SECURITY accès, puis à désactiver le privilège.
Exemples
Pour obtenir un exemple qui utilise cette fonction, consultez Démarrage d’un processus client interactif.
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Windows XP [applications de bureau uniquement] |
Serveur minimal pris en charge | Windows Server 2003 [applications de bureau uniquement] |
Plateforme cible | Windows |
En-tête | winuser.h (inclure Windows.h) |
Bibliothèque | User32.lib |
DLL | User32.dll |