Diritti di accesso e maschere di accesso

Un diritto di accesso è un flag di bit che corrisponde a un determinato set di operazioni che un thread può eseguire su un oggetto a protezione diretta. Ad esempio, una chiave del Registro di sistema ha il diritto di accesso KEY_SET_VALUE, che corrisponde alla possibilità di un thread di impostare un valore sotto la chiave. Se un thread tenta di eseguire un'operazione su un oggetto, ma non dispone del diritto di accesso necessario all'oggetto, il sistema non esegue l'operazione.

Una maschera di accesso è un valore a 32 bit i cui bit corrispondono ai diritti di accesso supportati da un oggetto. Tutti gli oggetti a protezione diretta di Windows usano un formato di maschera di accesso che include bit per i tipi di diritti di accesso seguenti:

Quando un thread tenta di aprire un handle a un oggetto, il thread specifica in genere una maschera di accesso per richiedere un set di diritti di accesso. Ad esempio, un'applicazione che deve impostare ed eseguire query sui valori di una chiave del Registro di sistema può aprire la chiave usando una maschera di accesso per richiedere i diritti di accesso KEY_SET_VALUE e KEY_QUERY_VALUE.

Nella tabella seguente vengono illustrate le funzioni che modificano le informazioni di sicurezza per ogni tipo di oggetto a protezione diretta.

Tipo oggetto Funzioni descrittori di sicurezza
File o directory in un file system NTFS GetNamedSecurityInfo, SetNamedSecurityInfo, GetSecurityInfo, SetSecurityInfo
Pipe denominate Anonime
GetSecurityInfo, SetSecurityInfo
Buffer dello schermo della console Non supportato.
Elaborai thread
GetSecurityInfo, SetSecurityInfo
Oggetti di mapping dei file GetNamedSecurityInfo, SetNamedSecurityInfo, GetSecurityInfo, SetSecurityInfo
Token di accesso SetKernelObjectSecurity, GetKernelObjectSecurity
Oggetti di gestione delle finestre (stazioni di finestra e desktop) GetSecurityInfo, SetSecurityInfo
Chiavi del Registro di sistema GetNamedSecurityInfo, SetNamedSecurityInfo, GetSecurityInfo, SetSecurityInfo
Servizi Windows GetNamedSecurityInfo, SetNamedSecurityInfo, GetSecurityInfo, SetSecurityInfo
Stampanti locali o remote GetNamedSecurityInfo, SetNamedSecurityInfo, GetSecurityInfo, SetSecurityInfo
Condivisioni di rete GetNamedSecurityInfo, SetNamedSecurityInfo, GetSecurityInfo, SetSecurityInfo
Oggetti di sincronizzazione interprocesso (eventi, mutex, semafori e timer attendebili) GetNamedSecurityInfo, SetNamedSecurityInfo, GetSecurityInfo, SetSecurityInfo
Oggetti processo GetNamedSecurityInfo, SetNamedSecurityInfo, GetSecurityInfo, SetSecurityInfo