Partager via


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

Voir aussi

CreatePrivateObjectSecurity

GetKernelObjectSecurity

GetPrivateObjectSecurity

Access Control de bas niveau

Fonctions Access Control de bas niveau

SECURITY_DESCRIPTOR

SECURITY_INFORMATION

SetUserObjectSecurity