ACCESS_STATE-Struktur (wdm.h)

Die ACCESS_STATE-Struktur beschreibt den Status eines laufenden Zugriffs. Es enthält den Betreffkontext eines Objekts, die verbleibenden gewünschten Zugriffstypen, gewährte Zugriffstypen und optional einen Berechtigungssatz, der angibt, welche Berechtigungen zum Zulassen des Zugriffs verwendet wurden.

Treiber sollen die ACCESS_STATE-Struktur nicht direkt ändern. Verwenden Sie zum Erstellen und Bearbeiten dieser Struktur die im Abschnitt Siehe auch aufgeführten Supportroutinen.

Syntax

typedef struct _ACCESS_STATE {
  LUID                     OperationID;
  BOOLEAN                  SecurityEvaluated;
  BOOLEAN                  GenerateAudit;
  BOOLEAN                  GenerateOnClose;
  BOOLEAN                  PrivilegesAllocated;
  ULONG                    Flags;
  ACCESS_MASK              RemainingDesiredAccess;
  ACCESS_MASK              PreviouslyGrantedAccess;
  ACCESS_MASK              OriginalDesiredAccess;
  SECURITY_SUBJECT_CONTEXT SubjectSecurityContext;
  PSECURITY_DESCRIPTOR     SecurityDescriptor;
  PVOID                    AuxData;
  union {
    INITIAL_PRIVILEGE_SET InitialPrivilegeSet;
    PRIVILEGE_SET         PrivilegeSet;
  } Privileges;
  BOOLEAN                  AuditPrivileges;
  UNICODE_STRING           ObjectName;
  UNICODE_STRING           ObjectTypeName;
} ACCESS_STATE, *PACCESS_STATE;

Member

OperationID

Der Bezeichner des Vorgangs, auf den sich dieser Zugriff bezieht. Dieses Element wird im AuxData-Member durch TransactionId ersetzt und wird derzeit von Treibern nicht verwendet.

SecurityEvaluated

Ein boolescher Wert, der angibt, ob die Sicherheit im Rahmen der Zugriffsüberprüfung ausgewertet wurde. Dieses Element wird derzeit von Treibern nicht verwendet.

GenerateAudit

Ein boolescher Wert, der angibt, ob der Zugriff eine Überwachung generieren soll. Dieses Element wird derzeit von Treibern nicht verwendet.

GenerateOnClose

Ein boolescher Wert, der angibt, ob eine Überwachung generiert werden soll, wenn das zu erstellende Handle geschlossen wird. Dieses Element wird derzeit von Treibern nicht verwendet.

PrivilegesAllocated

Ein boolescher Wert, der angibt, ob Berechtigungen im Rahmen der Zugriffsüberprüfung zugewiesen wurden. Dieses Element wird derzeit von Treibern nicht verwendet.

Flags

Ein 32-Bit-Wert, der Bitfeldflags für den Zugriff enthält. Ein Treiber kann das Traverse-Zugriffsflag (TOKEN_HAS_TRAVERSE_PRIVILEGE) überprüfen. Weitere Informationen zum Überprüfen des Durchlaufzugriffs finden Sie unter Überprüfen auf Traverse-Berechtigungen auf IRP_MJ_CREATE. Ein Treiber kann auch nach dem TOKEN_IS_RESTRICTED-Flag suchen. Diese Flags sind in Ntifs.h definiert.

RemainingDesiredAccess

Ein ACCESS_MASK Typ, der die Zugriffsrechte beschreibt, die dem Aufrufer noch nicht erteilt wurden. Ein Treiber verwendet dieses Element, um zu bestimmen, ob das Windows-Sicherheitssystem Zugriff gewähren kann. Wenn zugriff gewährt werden kann, aktualisiert der Treiber die Member PreviouslyGrantedAccess und RemainingDesiredAccess entsprechend.

PreviouslyGrantedAccess

Ein ACCESS_MASK Typ, der die Informationen über den Zugriff angibt, der dem Aufrufer einer der Sicherheitsreferenzmonitorroutinen bereits gewährt wurde. Das Windows-Sicherheitssystem gewährt bestimmte Rechte basierend auf den Berechtigungen des Aufrufers, z. B. das Recht durchlaufen (die Möglichkeit, ein Verzeichnis beim Öffnen eines Unterverzeichnisses oder einer Datei zu durchlaufen).

OriginalDesiredAccess

Ein ACCESS_MASK Typ, der die ursprünglichen Zugriffsrechte enthält, die vom Aufrufer angefordert wurden.

SubjectSecurityContext

Eine SECURITY_SUBJECT_CONTEXT-Struktur , die Informationen zum Sicherheitskontext des Antragstellers enthält, der zum Überprüfen und Überwachen des Zugriffs verwendet wird.

SecurityDescriptor

Ein Zeiger auf eine SECURITY_DESCRIPTOR-Struktur , die Sicherheitsinformationen für das Objekt enthält, auf das sich dieser Zugriff bezieht.

AuxData

Ein Zeiger auf einen Speicherblock, der Hilfsdaten für den Zugriff enthält.

Privileges

Eine Union, die eine der folgenden Strukturen enthalten kann. Mit dieser Union können drei Berechtigungen in die Zugriffsstatusstruktur eingebettet werden. Wenn während des Vorgangs weitere Berechtigungen erforderlich sind, werden diese in der AuxData-Membererweiterung zugewiesen. Dieses Element wird derzeit von Treibern nicht verwendet.

Privileges.InitialPrivilegeSet

Eine INITIAL_PRIVILEGE_SET-Struktur , die einen Satz von anfänglichen Berechtigungen für den Zugriff angibt.

Privileges.PrivilegeSet

Eine PRIVILEGE_SET-Struktur , die einen Satz von Berechtigungen für den Zugriff angibt.

AuditPrivileges

Ein boolescher Wert, der angibt, ob eine Berechtigungsnutzung überwacht werden soll. Dieses Element wird derzeit von Treibern nicht verwendet.

ObjectName

Eine UNICODE_STRING-Struktur , die die Objektnamenzeichenfolge für den Zugriff enthält. Dieses Element wird für die Überwachung verwendet.

ObjectTypeName

Eine UNICODE_STRING-Struktur , die die Objekttypnamenszeichenfolge für den Zugriff enthält. Dieses Element wird für die Überwachung verwendet.

Anforderungen

Anforderung Wert
Header wdm.h (include Ntifs.h)

Weitere Informationen

ACCESS_MASK

IRP_MJ_CREATE

LUID

ObOpenObjectByPointer

PRIVILEGE_SET

SECURITY_DESCRIPTOR

SECURITY_SUBJECT_CONTEXT

SeAppendPrivileges

SeCaptureSubjectContext

SeOpenObjectAuditAlarm

SeOpenObjectForDeleteAuditAlarm

SeSetAccessStateGenericMapping

UNICODE_STRING