Share via


Struttura ACL (wdm.h)

La struttura ACL è l'intestazione di un elenco di controllo di accesso. Un ACL completo è costituito da una struttura ACL seguita da un elenco ordinato di voci di zero o più controlli 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

Un byte zero di riempimento che allinea il membro AclRevision in 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'ACL.

Sbz2

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

Commenti

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

Esistono due tipi di ACL: discrezionale e sistema.

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

Un oggetto può avere anche informazioni di sicurezza a livello di sistema associate a esso, sotto forma di un ACL di sistema controllato da un amministratore di sistema. Un SACL può consentire all'amministratore di sistema di controllare eventuali tentativi di 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. Questo ACE viene archiviato in un'elenco dati.
ACCESS_DENIED_ACE Nega i diritti specificati a un utente o a un gruppo. Questo ACE viene archiviato in un'elenco dati.
SYSTEM_AUDIT_ACE Specifica i tipi di accesso che causano controlli a livello di sistema. Questo ACE viene archiviato 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 suoi 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

Requisito Valore
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