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 |