Freigeben über


SeAccessCheckFromState-Funktion (ntifs.h)

SeAccessCheckFromState überprüft, ob den angeforderten Zugriffsrechten ein Objekt gewährt werden kann, 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] Zeigen Sie auf die TOKEN_ACCESS_INFORMATION Struktur, die aus dem primären Token erfasst wird. Diese Struktur stellt die Informationen des Tokens bereit, die zum Durchführen einer Zugriffsüberprüfung erforderlich sind.

ClientTokenInformation

[in_opt] Optionaler Zeiger auf die vom Clienttoken erfasste TOKEN_ACCESS_INFORMATION Struktur.

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, denen der Benutzer bereits gewährt wurde; Beispielsweise als Ergebnis der Berechtigungserhaltung.

Privileges

[out] Zeigen Sie auf eine PRIVILEGE_SET Struktur, in der ein Berechtigungssatz zurückgegeben wird, um alle Berechtigungen anzugeben, die als Teil 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 in 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-Statuswert, der zurückgegeben werden kann, um anzugeben, warum der Zugriff verweigert wurde. Siehe Anmerkungen.

Rückgabewert

SeAccessCheckFromState gibt WAHR zurück, wenn der Zugriff zulässig ist; es gibt FALSE zurück, wenn der Zugriff nicht zulässig ist.

Bemerkungen

SeAccessCheckFromState möglicherweise Tests für die folgenden Berechtigungen durchführen, je nachdem, welche Zugriffe angefordert werden:

  • 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 die zurückgegebene AccessStatus- als Rückgabewert verwenden. Das heißt, der Aufrufer sollte vermeiden, dass ein Rückgabewert von STATUS_ACCESS_DENIED oder einem anderen spezifischen STATUS_XXX--Wert hartcodiert wird.

Diese Routine kann von der DPC-Ebene aufgerufen werden, daher darf sie nicht seitenfähig sein.

Anforderungen

Anforderung Wert
mindestens unterstützte Client- Windows 2000
Header- ntifs.h (einschließlich ntifs.h)
Library NtosKrnl.lib
DLL- NtosKrnl.exe

Siehe auch

SeAccessCheck-

SeAccessCheckFromStateEx