Funzione GetSecurityInfo (aclapi.h)
La funzione GetSecurityInfo recupera una copia del descrittore di sicurezza per un oggetto specificato da un handle.
Sintassi
DWORD GetSecurityInfo(
[in] HANDLE handle,
[in] SE_OBJECT_TYPE ObjectType,
[in] SECURITY_INFORMATION SecurityInfo,
[out, optional] PSID *ppsidOwner,
[out, optional] PSID *ppsidGroup,
[out, optional] PACL *ppDacl,
[out, optional] PACL *ppSacl,
[out, optional] PSECURITY_DESCRIPTOR *ppSecurityDescriptor
);
Parametri
[in] handle
Handle all'oggetto da cui recuperare le informazioni di sicurezza.
[in] ObjectType
SE_OBJECT_TYPE valore di enumerazione che indica il tipo di oggetto.
[in] SecurityInfo
Set di flag di bit che indicano il tipo di informazioni di sicurezza da recuperare. Questo parametro può essere una combinazione dei flag di bit SECURITY_INFORMATION .
[out, optional] ppsidOwner
Puntatore a una variabile che riceve un puntatore al SID proprietario nel descrittore di sicurezza restituito in ppSecurityDescriptor. Il puntatore restituito è valido solo se si imposta il flag di OWNER_SECURITY_INFORMATION. Questo parametro può essere NULL se non è necessario il SID proprietario.
[out, optional] ppsidGroup
Puntatore a una variabile che riceve un puntatore al SID del gruppo primario nel descrittore di sicurezza restituito. Il puntatore restituito è valido solo se si imposta il flag GROUP_SECURITY_INFORMATION. Questo parametro può essere NULL se non è necessario il SID del gruppo.
[out, optional] ppDacl
Puntatore a una variabile che riceve un puntatore all'elenco DACL nel descrittore di sicurezza restituito. Il puntatore restituito è valido solo se si imposta il flag DACL_SECURITY_INFORMATION. Questo parametro può essere NULL se non è necessario l'elenco DACL.
[out, optional] ppSacl
Puntatore a una variabile che riceve un puntatore all'oggetto SACL nel descrittore di sicurezza restituito. Il puntatore restituito è valido solo se si imposta il flag SACL_SECURITY_INFORMATION. Questo parametro può essere NULL se non è necessario SACL.
[out, optional] ppSecurityDescriptor
Puntatore a una variabile che riceve un puntatore al descrittore di sicurezza dell'oggetto. Al termine dell'uso del puntatore, liberare il buffer restituito chiamando la funzione LocalFree .
Questo parametro è obbligatorio se uno dei parametri ppsidOwner, ppsidGroup, ppDacl o ppSacl non è NULL.
Valore restituito
Se la funzione ha esito positivo, il valore restituito viene ERROR_SUCCESS.
Se la funzione ha esito negativo, il valore restituito è un codice di errore diverso da zero definito in WinError.h.
Commenti
Se i parametri ppsidOwner, ppsidGroup, ppDacl e ppSacl non sono NULL e il parametro SecurityInfo specifica che vengono recuperati dall'oggetto, tali parametri punteranno ai parametri corrispondenti nel descrittore di sicurezza restituito in ppSecurityDescriptor.
Per leggere il proprietario, il gruppo o l'elenco DACL dal descrittore di sicurezza dell'oggetto, è necessario che al processo chiamante sia stato concesso READ_CONTROL l'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. Per informazioni sulle implicazioni di sicurezza dell'abilitazione dei privilegi, vedere Esecuzione con privilegi speciali.
È possibile usare la funzione GetSecurityInfo con i tipi di oggetti seguenti:
- File o directory locali o remoti in un file system NTFS
- Named Pipes
- Stampanti locali o remote
- Servizi Windows locali o remoti
- Condivisioni di rete
- Chiavi del Registro di sistema
- Semafori, eventi, mutex e timer waitable
- Processi, thread, processi e oggetti di mapping dei file
- Stazioni e desktop delle finestre di servizio interattive
- Oggetti del servizio directory
Esempio
Per un esempio che usa questa funzione, vedere Ricerca del proprietario di un oggetto File.
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 | aclapi.h |
Libreria | Advapi32.lib |
DLL | Advapi32.dll |
Vedi anche
Panoramica di Controllo di accesso