Freigeben über


SeAccessCheckFromState-Funktion (ntifs.h)

SeAccessCheckFromState ü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 SeAccessCheckFromState(
  PSECURITY_DESCRIPTOR      SecurityDescriptor,
  PTOKEN_ACCESS_INFORMATION PrimaryTokenInformation,
  PTOKEN_ACCESS_INFORMATION ClientTokenInformation,
  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.

PrimaryTokenInformation

[in] Zeiger auf die TOKEN_ACCESS_INFORMATION Struktur, die vom primären Token erfasst wurde. Diese Struktur stellt die Informationen des Tokens bereit, die für die Durchführung einer Zugriffsüberprüfung erforderlich sind.

ClientTokenInformation

[in_opt] Optionaler Zeiger auf die TOKEN_ACCESS_INFORMATION Struktur, die vom Clienttoken erfasst wurde.

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

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

Hinweise

SeAccessCheckFromState führt abhängig von den angeforderten Zugriffen möglicherweise Tests für die folgenden Berechtigungen durch:

  • 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 (include ntifs.h)
Bibliothek NtosKrnl.lib
DLL NtosKrnl.exe

Weitere Informationen

SeAccessCheck

SeAccessCheckFromStateEx