Freigeben über


ACL-Struktur (wdm.h)

Die ACL-Struktur ist der Header einer Zugriffssteuerungsliste (Access Control List, ACL). Eine vollständige ACL besteht aus einer ACL-Struktur, gefolgt von einer sortierten Liste von null oder mehr Zugriffssteuerungseinträgen (Access Control Entries, ACE).

Syntax

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

Member

AclRevision

Revisionsebene der ACL.

Microsoft Windows NT 4.0 und früher: Dieser Wert muss ACL_REVISION sein.

Microsoft Windows 2000 und höher: Dieser Wert kann ACL_REVISION oder ACL_REVISION_DS sein. Es muss ACL_REVISION_DS sein, wenn die ACL einen objektspezifischen ACE enthält.

Sbz1

Ein 0-Byte-Abstand, der den AclRevision-Member an einer 16-Bit-Grenze ausrichtet.

AclSize

Größe der ACL in Byte. Dieser Wert umfasst sowohl die ACL-Struktur als auch alle ACEs.

AceCount

Anzahl der in der ACL gespeicherten ACEs.

Sbz2

Zwei 0 Bytes Abstand, die die ACL-Struktur an einer 32-Bit-Grenze ausrichten.

Hinweise

Eine ACL enthält eine sequenzielle Liste von 0 oder mehr ACEs. Die einzelnen ACEs in einer ACL werden von 0 bis n nummeriert, wobei n+1 die Anzahl der ACEs in der ACL ist. Beim Bearbeiten einer ACL verweist ein Treiber anhand seines Indexes auf eine ACE innerhalb der ACL.

Es gibt zwei Arten von ACL: diskretionär und system.

Eine ermessensgesteuerte ACL (DACL) wird vom Besitzer eines Objekts oder einer Person gesteuert, die WRITE_DAC Zugriff auf das Objekt gewährt wird. Es gibt den Zugriff, den bestimmte Benutzer und Gruppen auf ein Objekt haben können. Beispielsweise kann der Besitzer einer Datei eine DACL verwenden, um zu steuern, welche Benutzer und Gruppen Zugriff auf die Datei haben können und welche nicht.

Einem Objekt können auch Sicherheitsinformationen auf Systemebene zugeordnet sein, in Form einer System-ACL (SACL), die von einem Systemadministrator gesteuert wird. Eine SACL kann es dem Systemadministrator ermöglichen, alle Versuche zu überwachen, um Zugriff auf ein Objekt zu erhalten.

Derzeit sind drei ACE-Strukturen definiert:

attribute BESCHREIBUNG
ACCESS_ALLOWED_ACE Gewährt einem Benutzer oder einer Gruppe bestimmte Rechte. Dieser ACE wird in einer DACL gespeichert.
ACCESS_DENIED_ACE Verweigert einem Benutzer oder einer Gruppe die angegebenen Rechte. Dieser ACE wird in einer DACL gespeichert.
SYSTEM_AUDIT_ACE Gibt an, welche Zugriffstypen Überwachungen auf Systemebene verursachen. Dieser ACE wird in einer SACL gespeichert.
 

Eine vierte ACE-Struktur, SYSTEM_ALARM_ACE, wird derzeit nicht unterstützt.

Die ACL-Struktur ist so zu behandeln, als wäre sie undurchsichtig, und Treiber sollten nicht versuchen, direkt mit ihren Membern zu arbeiten. Um sicherzustellen, dass ACLs semantisch korrekt sind, können Treiber die im Abschnitt Siehe auch aufgeführten Funktionen verwenden, um ACLs zu erstellen und zu bearbeiten.

ACL- und ACE-Strukturen müssen an 32-Bit-Grenzen ausgerichtet werden.

Anforderungen

Anforderung Wert
Header wdm.h (wdm.h einschließen)

Weitere Informationen

ACCESS_ALLOWED_ACE

ACCESS_DENIED_ACE

ASS

RtlAddAccessAllowedAce

RtlCreateAcl

RtlGetAce

RtlSetDaclSecurityDescriptor

SYSTEM_ALARM_ACE

SYSTEM_AUDIT_ACE

TOKEN_DEFAULT_DACL