Struttura ACL (wdm.h)

La struttura ACL è l'intestazione di un elenco di controllo di accesso (ACL). Un ACL completo è costituito da una struttura ACL seguita da un elenco ordinato di zero o più voci di controllo di accesso (ACE).

Sintassi

typedef struct _ACL {
  UCHAR  AclRevision;
  UCHAR  Sbz1;
  USHORT AclSize;
  USHORT AceCount;
  USHORT Sbz2;
} ACL;

Members

AclRevision

Livello di revisione dell'ACL.

Microsoft Windows NT 4.0 e versioni precedenti: Questo valore deve essere ACL_REVISION.

Microsoft Windows 2000 e versioni successive: Questo valore può essere ACL_REVISION o ACL_REVISION_DS. Deve essere ACL_REVISION_DS se l'ACL contiene un ace specifico dell'oggetto.

Sbz1

Byte zero di spaziatura interna che allinea il membro AclRevision su un limite a 16 bit.

AclSize

Dimensioni, in byte, dell'ACL. Questo valore include sia la struttura ACL che tutti gli ACL.

AceCount

Numero di ACL archiviati nell'elenco di controllo di accesso.

Sbz2

Due byte di spaziatura interna pari a zero che allineano la struttura ACL su un limite a 32 bit.

Commenti

Un elenco di controllo di accesso include un elenco sequenziale di zero o più ACL. I singoli ACL in un elenco di controllo di accesso sono numerati da 0 a n, dove n+1 è il numero di ACL. Quando si modifica un elenco di controllo di accesso, un driver fa riferimento a un ace all'interno dell'elenco di controllo di accesso in base al relativo indice.

Esistono due tipi di ACL: discrezionale e di sistema.

Un ACL discrezionale (DACL) è controllato dal proprietario di un oggetto o da chiunque abbia concesso WRITE_DAC l'accesso all'oggetto. Specifica che gli utenti e i gruppi di accesso specifici possono avere a un oggetto . Ad esempio, il proprietario di un file può usare un DACL per controllare quali utenti e gruppi possono e non possono avere accesso al file.

A un oggetto possono essere associate anche informazioni di sicurezza a livello di sistema, sotto forma di ACL di sistema (SACL) controllato da un amministratore di sistema. Un sacl può consentire all'amministratore di sistema di controllare eventuali tentativi di ottenere l'accesso a un oggetto.

Sono attualmente definite tre strutture ACE:

Attributo Descrizione
ACCESS_ALLOWED_ACE Concede diritti specificati a un utente o a un gruppo. Questa voce ACE viene archiviata in un DACL.
ACCESS_DENIED_ACE Nega i diritti specificati a un utente o a un gruppo. Questa voce ACE viene archiviata in un DACL.
SYSTEM_AUDIT_ACE Specifica quali tipi di accesso causeranno controlli a livello di sistema. Questa ace viene archiviata in un sacl.
 

Una quarta struttura ACE, SYSTEM_ALARM_ACE, non è attualmente supportata.

La struttura ACL deve essere considerata come se fosse opaca e i driver non dovrebbero tentare di lavorare direttamente con i relativi membri. Per assicurarsi che gli elenchi di controllo di accesso siano semanticamente corretti, i driver possono usare le funzioni elencate nella sezione Vedere anche per creare e modificare gli elenchi di controllo di accesso.

Le strutture ACL e ACE devono essere allineate ai limiti a 32 bit.

Requisiti

   
Intestazione wdm.h (include Wdm.h)

Vedi anche

ACCESS_ALLOWED_ACE

ACCESS_DENIED_ACE

ACE

RtlAddAccessAllowedAce

RtlCreateAcl

RtlGetAce

RtlSetDaclSecurityDescriptor

SYSTEM_ALARM_ACE

SYSTEM_AUDIT_ACE

TOKEN_DEFAULT_DACL