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 |