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) |