Condividi tramite


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

CreatePrivateObjectSecurity

GetKernelObjectSecurity

GetPrivateObjectSecurity

Controllo di accesso di basso livello

Funzioni di Controllo di accesso di basso livello

SECURITY_DESCRIPTOR

SECURITY_INFORMATION

SetUserObjectSecurity