RegGetKeySecurity, fonction (winreg.h)

La fonction RegGetKeySecurity récupère une copie du descripteur de sécurité protégeant la clé de Registre ouverte spécifiée.

Syntaxe

LSTATUS RegGetKeySecurity(
  [in]            HKEY                 hKey,
  [in]            SECURITY_INFORMATION SecurityInformation,
  [out, optional] PSECURITY_DESCRIPTOR pSecurityDescriptor,
  [in, out]       LPDWORD              lpcbSecurityDescriptor
);

Paramètres

[in] hKey

Handle vers une clé ouverte pour laquelle récupérer le descripteur de sécurité.

[in] SecurityInformation

Valeur SECURITY_INFORMATION qui indique les informations de sécurité demandées.

[out, optional] pSecurityDescriptor

Pointeur vers une mémoire tampon qui reçoit une copie du descripteur de sécurité demandé.

[in, out] lpcbSecurityDescriptor

Pointeur vers une variable qui spécifie la taille, en octets, de la mémoire tampon pointée par le paramètre pSecurityDescriptor . Lorsque la fonction retourne, la variable contient le nombre d’octets écrits dans la mémoire tampon.

Valeur retournée

Si la fonction réussit, la fonction retourne ERROR_SUCCESS.

Si la fonction échoue, elle retourne un code d’erreur différent de zéro défini dans WinError.h. Vous pouvez utiliser la fonction FormatMessage avec l’indicateur FORMAT_MESSAGE_FROM_SYSTEM pour obtenir une description générique de l’erreur.

Remarques

Si la mémoire tampon spécifiée par le paramètre pSecurityDescriptor est trop petite, la fonction retourne ERROR_INSUFFICIENT_BUFFER et le paramètre lpcbSecurityDescriptor contient le nombre d’octets requis pour le descripteur de sécurité demandé.

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 la clé, le processus appelant doit avoir reçu un accès READ_CONTROL lors de l’ouverture du handle. Pour obtenir READ_CONTROL accès, l’appelant doit être le propriétaire de la clé ou le dacl de la clé doit accorder l’accès.

Pour lire la liste de contrôle d’accès système (SACL) à partir du descripteur de sécurité, le processus appelant doit avoir reçu un accès ACCESS_SYSTEM_SECURITY lors de l’ouverture de la clé. 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 l’accès ACCESS_SYSTEM_SECURITY, puis à désactiver le privilège.

Configuration requise

   
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 winreg.h (inclure Windows.h)
Bibliothèque Advapi32.lib
DLL Advapi32.dll

Voir aussi

FormatMessage

Access Control de bas niveau

Fonctions Access Control de bas niveau

RegDeleteKey

RegOpenKeyEx

RegSetKeySecurity

SECURITY_INFORMATION