SeAccessCheckFromStateEx-Funktion (ntifs.h)

SeAccessCheckFromStateEx überprüft, ob die angeforderten Zugriffsrechte für ein Objekt gewährt werden können, das durch einen Sicherheitsdeskriptor und einen optionalen Objektbesitzer geschützt ist.

Syntax

BOOLEAN SeAccessCheckFromStateEx(
  PSECURITY_DESCRIPTOR SecurityDescriptor,
  PACCESS_TOKEN        PrimaryToken,
  PACCESS_TOKEN        ClientToken,
  ACCESS_MASK          DesiredAccess,
  ACCESS_MASK          PreviouslyGrantedAccess,
  PPRIVILEGE_SET       *Privileges,
  PGENERIC_MAPPING     GenericMapping,
  KPROCESSOR_MODE      AccessMode,
  PACCESS_MASK         GrantedAccess,
  PNTSTATUS            AccessStatus
);

Parameter

SecurityDescriptor

[in] Zeiger auf eine SECURITY_DESCRIPTOR-Struktur , die die Sicherheitsinformationen enthält, die das Objekt schützen, auf das zugegriffen wird.

PrimaryToken

[in] Zeiger auf eine undurchsichtige ACCESS_TOKEN Struktur für das primäre Token. Diese Struktur stellt die Informationen des Tokens bereit, die für die Durchführung einer Zugriffsüberprüfung erforderlich sind.

ClientToken

[in_opt] Optionaler Zeiger auf eine undurchsichtige ACCESS_TOKEN-Struktur für das Clienttoken.

DesiredAccess

[in] Ein ACCESS_MASK Wert, der die gewünschten Zugriffsrechte angibt, die überprüft werden sollen.

PreviouslyGrantedAccess

[in] Ein ACCESS_MASK Wert, der alle Zugriffe angibt, die dem Benutzer bereits gewährt wurden; z. B. aufgrund des Haltens einer Berechtigung.

Privileges

[out] Zeiger auf eine PRIVILEGE_SET-Struktur , in der ein Berechtigungssatz zurückgegeben wird, um alle Berechtigungen anzugeben, die im Rahmen der Zugriffsüberprüfung verwendet wurden.

GenericMapping

[in] Zeiger auf die GENERIC_MAPPING Struktur, die diesem Objekttyp zugeordnet ist.

AccessMode

[in] Ein KPROCESSOR_MODE Wert, der den Prozessormodus angibt, der bei der Überprüfung verwendet werden soll. AccessMode kann entweder KernelMode oder UserMode sein. Treiber auf niedrigerer Ebene sollten KernelMode angeben.

GrantedAccess

[out] Zeiger auf einen zurückgegebenen ACCESS_MASK Wert, der den gewährten Zugriff angibt.

AccessStatus

[out] Zeiger auf einen NT-status Wert, der zurückgegeben werden kann, um anzugeben, warum der Zugriff verweigert wurde. Siehe Hinweise.

Rückgabewert

SeAccessCheckFromStateEx gibt TRUE zurück, wenn der Zugriff zulässig ist. Es gibt FALSE zurück, wenn der Zugriff nicht zulässig ist.

Hinweise

SeAccessCheckFromStateEx führt möglicherweise Tests für die folgenden Berechtigungen aus, abhängig von den angeforderten Zugriffen:

  • SeTakeOwnershipPrivilege
  • SeSecurityPrivilege

Diese Routine kann auch überprüfen, ob der Aufrufer der Besitzer des Objekts ist, um WRITE_DAC oder READ_CONTROL Zugriff zu gewähren.

Wenn diese Routine FALSE zurückgibt, sollte der Aufrufer den zurückgegebenen AccessStatus als Rückgabewert verwenden. Das heißt, der Aufrufer sollte die Hardcodierung eines Rückgabewerts von STATUS_ACCESS_DENIED oder einem anderen spezifischen STATUS_XXX-Wert vermeiden.

Diese Routine kann von der DPC-Ebene aufgerufen werden und darf daher nicht ausserstellbar sein.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 2000
Kopfzeile ntifs.h

Weitere Informationen

SeAccessCheck

SeAccessCheckFromState