Funzione RegGetKeySecurity (winreg.h)

La funzione RegGetKeySecurity recupera una copia del descrittore di sicurezza che protegge la chiave del Registro di sistema aperta specificata.

Sintassi

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

Parametri

[in] hKey

Handle per una chiave aperta per cui recuperare il descrittore di sicurezza.

[in] SecurityInformation

Valore SECURITY_INFORMATION che indica le informazioni di sicurezza richieste.

[out, optional] pSecurityDescriptor

Puntatore a un buffer che riceve una copia del descrittore di sicurezza richiesto.

[in, out] lpcbSecurityDescriptor

Puntatore a una variabile che specifica le dimensioni, in byte, del buffer a cui punta il parametro pSecurityDescriptor . Quando la funzione restituisce, la variabile contiene il numero di byte scritti nel buffer.

Valore restituito

Se la funzione ha esito positivo, la funzione restituisce ERROR_SUCCESS.

Se la funzione ha esito negativo, restituisce un codice di errore diverso da zero definito in WinError.h. È possibile usare la funzione FormatMessage con il flag FORMAT_MESSAGE_FROM_SYSTEM per ottenere una descrizione generica dell'errore.

Commenti

Se il buffer specificato dal parametro pSecurityDescriptor è troppo piccolo, la funzione restituisce ERROR_INSUFFICIENT_BUFFER e il parametro lpcbSecurityDescriptor contiene il numero di byte necessari per il descrittore di sicurezza richiesto.

Per leggere il descrittore di sicurezza della chiave, il gruppo o l'elenco di controllo degli accessi discrezionali dal descrittore di sicurezza della chiave, il processo chiamante deve essere stato concesso READ_CONTROL accesso al momento dell'apertura dell'handle. Per ottenere READ_CONTROL accesso, il chiamante deve essere il proprietario della chiave o il daCL della chiave deve concedere l'accesso.

Per leggere l'elenco di controllo di accesso del sistema (SACL) dal descrittore di sicurezza, il processo chiamante deve essere stato concesso ACCESS_SYSTEM_SECURITY accesso al momento dell'apertura della chiave. Il modo corretto per ottenere questo accesso consiste nell'abilitare il privilegio SE_SECURITY_NAME nel token corrente del chiamante, aprire l'handle per l'accesso ACCESS_SYSTEM_SECURITY e quindi disabilitare il privilegio.

Requisiti

   
Client minimo supportato Windows XP [solo app desktop]
Server minimo supportato Windows Server 2003 [solo app desktop]
Piattaforma di destinazione Windows
Intestazione winreg.h (include Windows.h)
Libreria Advapi32.lib
DLL Advapi32.dll

Vedi anche

FormatMessage

Controllo di accesso di basso livello

Funzioni di Controllo di accesso di basso livello

RegDeleteKey

Regopenkeyex

RegSetKeySecurity

SECURITY_INFORMATION