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
Controllo di accesso di basso livello