Funzione GetKernelObjectSecurity (securitybaseapi.h)

La funzione GetKernelObjectSecurity recupera una copia del descrittore di sicurezza che protegge un oggetto kernel.

Sintassi

BOOL GetKernelObjectSecurity(
  [in]            HANDLE               Handle,
  [in]            SECURITY_INFORMATION RequestedInformation,
  [out, optional] PSECURITY_DESCRIPTOR pSecurityDescriptor,
  [in]            DWORD                nLength,
  [out]           LPDWORD              lpnLengthNeeded
);

Parametri

[in] Handle

Handle per un oggetto kernel.

[in] RequestedInformation

Specifica un valore SECURITY_INFORMATION che identifica le informazioni di sicurezza richieste.

[out, optional] pSecurityDescriptor

Puntatore a un buffer che la funzione riempie con una copia del descrittore di sicurezza dell'oggetto specificato. Il processo chiamante deve avere il diritto di visualizzare gli aspetti specificati dello stato di sicurezza dell'oggetto. La struttura SECURITY_DESCRIPTOR viene restituita in formato auto-relativo .

[in] nLength

Specifica le dimensioni, in byte, del buffer a cui punta il parametro pSecurityDescriptor .

[out] lpnLengthNeeded

Puntatore a una variabile che riceve il numero di byte necessari per il buffer a cui punta il parametro pSecurityDescriptor . Se il valore di questa variabile è maggiore del valore del parametro nLength quando la funzione viene restituita, nessun descrittore di sicurezza viene copiato nel buffer.

Valore restituito

Se la funzione ha esito positivo, il valore restituito è diverso da zero.

Se la funzione ha esito negativo, il valore restituito è zero. Per informazioni dettagliate sull'errore, chiamare GetLastError.

Commenti

Per leggere il proprietario, il gruppo o l'elenco DACL dal descrittore di sicurezza dell'oggetto kernel, è necessario che al processo chiamante sia stato concesso READ_CONTROL accesso all'apertura dell'handle. Per ottenere READ_CONTROL accesso, il chiamante deve essere il proprietario dell'oggetto o l'elenco DACL dell'oggetto deve concedere l'accesso.

Per leggere SACL dal descrittore di sicurezza, è necessario che al processo chiamante sia stato concesso ACCESS_SYSTEM_SECURITY l'accesso all'apertura dell'handle. Il modo corretto per ottenere questo accesso consiste nell'abilitare il privilegio SE_SECURITY_NAME nel token corrente del chiamante, aprire l'handle per ACCESS_SYSTEM_SECURITY accesso e quindi disabilitare il privilegio.

Requisiti

Requisito Valore
Client minimo supportato Windows XP [app desktop | App UWP]
Server minimo supportato Windows Server 2003 [app desktop | App UWP]
Piattaforma di destinazione Windows
Intestazione securitybaseapi.h (include Windows.h)
Libreria Advapi32.lib
DLL Advapi32.dll

Vedi anche

GetFileSecurity

GetPrivateObjectSecurity

GetUserObjectSecurity

Controllo di accesso di basso livello

Funzioni di Controllo di accesso di basso livello

SECURITY_DESCRIPTOR

SECURITY_INFORMATION

SetKernelObjectSecurity