Funzione GetUserObjectSecurity (winuser.h)
La funzione GetUserObjectSecurity recupera le informazioni di sicurezza per l'oggetto utente specificato.
Sintassi
BOOL GetUserObjectSecurity(
[in] HANDLE hObj,
[in] PSECURITY_INFORMATION pSIRequested,
[in, out, optional] PSECURITY_DESCRIPTOR pSID,
[in] DWORD nLength,
[out] LPDWORD lpnLengthNeeded
);
Parametri
[in] hObj
Handle per l'oggetto utente per il quale restituire le informazioni di sicurezza.
[in] pSIRequested
Puntatore a un valore SECURITY_INFORMATION che specifica le informazioni di sicurezza richieste.
[in, out, optional] pSID
Puntatore a una struttura SECURITY_DESCRIPTOR in formato auto-relativo che contiene le informazioni richieste quando la funzione restituisce. Questo buffer deve essere allineato su un limite a 4 byte.
[in] nLength
Lunghezza, in byte, del buffer a cui punta il parametro pSD .
[out] lpnLengthNeeded
Puntatore a una variabile per ricevere il numero di byte necessari per archiviare il descrittore di sicurezza completo. Se il valore di questa variabile è maggiore del valore del parametro nLength quando la funzione restituisce , la funzione restituisce FALSE e nessuno del descrittore di sicurezza viene copiato nel buffer. In caso contrario, viene copiato l'intero descrittore di sicurezza.
Valore restituito
Se la funzione ha esito positivo, la funzione restituisce un valore diverso da zero.
Se la funzione ha esito negativo, restituisce zero. Per informazioni dettagliate sull'errore, chiamare GetLastError.
Commenti
Per leggere il proprietario, il gruppo o l'elenco di controllo di accesso discrezionale (DACL) dal descrittore di sicurezza dell'oggetto utente, è necessario che al processo chiamante sia stato concesso READ_CONTROL l'accesso all'apertura dell'handle.
Per leggere l'elenco di controllo di accesso di sistema (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.
Esempio
Per un esempio che usa questa funzione, vedere Avvio di un processo client interattivo.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows XP [solo app desktop] |
Server minimo supportato | Windows Server 2003 [solo app desktop] |
Piattaforma di destinazione | Windows |
Intestazione | winuser.h (include Windows.h) |
Libreria | User32.lib |
DLL | User32.dll |
Vedi anche
Controllo di accesso di basso livello