Freigeben über


SeAccessCheck-Funktion (wdm.h)

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

Syntax

BOOLEAN SeAccessCheck(
  [in]  PSECURITY_DESCRIPTOR      SecurityDescriptor,
  [in]  PSECURITY_SUBJECT_CONTEXT SubjectSecurityContext,
  [in]  BOOLEAN                   SubjectContextLocked,
  [in]  ACCESS_MASK               DesiredAccess,
  [in]  ACCESS_MASK               PreviouslyGrantedAccess,
  [out] PPRIVILEGE_SET            *Privileges,
  [in]  PGENERIC_MAPPING          GenericMapping,
  [in]  KPROCESSOR_MODE           AccessMode,
  [out] PACCESS_MASK              GrantedAccess,
  [out] PNTSTATUS                 AccessStatus
);

Parameter

[in] SecurityDescriptor

Zeiger auf die SECURITY_DESCRIPTOR-Struktur , die den Sicherheitsdeskriptor beschreibt, der das Objekt schützt, auf das zugegriffen wird.

[in] SubjectSecurityContext

Zeiger auf die nicht transparente SECURITY_SUBJECT_CONTEXT-Struktur , die den erfassten Sicherheitskontext des Antragstellers angibt.

[in] SubjectContextLocked

Boolescher Wert, der angibt, ob der Betreffkontext des Benutzers gesperrt ist, sodass er nicht erneut gesperrt werden muss.

[in] DesiredAccess

Gibt die ACCESS_MASK Bitmaske für die Zugriffsrechte an, die der Aufrufer abrufen möchte. Wenn der Aufrufer das MAXIMUM_ALLOWED Bit festlegt, führt die Routine alle DACL-Überprüfungen durch. SeAccessCheck führt jedoch keine Berechtigungsüberprüfungen durch, es sei denn, der Aufrufer fordert diese durch Festlegen der ACCESS_SYSTEM_SECURITY oder WRITE_OWNER Bits ausdrücklich an.

[in] PreviouslyGrantedAccess

Gibt die ACCESS_MASK Bitmaske der bereits gewährten Zugriffsrechte an, z. B. Zugriffsrechte, die aufgrund des Haltens einer Berechtigung gewährt werden.

[out] Privileges

Zeiger auf eine vom Aufrufer bereitgestellte Variable, die auf die Adresse der PRIVILEGE_SET-Struktur festgelegt werden soll, die im Rahmen der Zugriffsüberprüfung verwendet wird, oder dieser Parameter kann NULL sein. Der zurückgegebene Puffer muss ggf. vom Aufrufer mit SeFreePrivileges freigegeben werden.

[in] GenericMapping

Zeiger auf die GENERIC_MAPPING Struktur, die diesem Objekttyp zugeordnet ist. Dieser Wert gibt die spezifischen Zugriffsrechte an, die von den einzelnen GENERIC_XXX-Zugriffsrechten impliziert werden.

[in] AccessMode

Gibt den Zugriffsmodus an, der in der Überprüfung verwendet werden soll, entweder UserMode oder KernelMode.

[out] GrantedAccess

Zeiger auf eine zurückgegebene Zugriffsmaske, die den gewährten Zugriff angibt. Wenn der Aufrufer MAXIMUM_ALLOWED angibt und die DACL in SecurityDescriptor NULL ist, gibt die Routine GENERIC_ALL sowie alle zusätzlichen Zugriffe zurück, die der Aufrufer explizit anfordert.

[out] AccessStatus

Zeiger auf den status Wert, der angibt, warum der Zugriff verweigert wurde.

Rückgabewert

Wenn der Zugriff zulässig ist, gibt SeAccessCheck TRUE zurück.

Hinweise

SeAccessCheck kann je nach angeforderten Zugriffen Berechtigungstests für SeTakeOwnershipPrivilege und SeSecurityPrivilege durchführen. Es kann zusätzliche Berechtigungstests in zukünftigen Versionen des Betriebssystems durchführen.

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 Hartcodierung eines Rückgabewerts von STATUS_ACCESS_DENIED oder eines anderen spezifischen STATUS_XXX-Werts vermeiden.

Weitere Informationen zur Sicherheit und Zugriffssteuerung finden Sie unter Windows-Sicherheitsmodell für Treiberentwickler und in der Dokumentation zu diesen Themen im Microsoft Windows SDK.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 2000
Zielplattform Universell
Header wdm.h (einschließlich Wdm.h, Ntddk.h, Ntifs.h)
Bibliothek NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL
DDI-Complianceregeln HwStorPortProhibitedDIs(storport), PowerIrpDDis(wdm)

Weitere Informationen

ACCESS_MASK

GENERIC_MAPPING

IoGetFileObjectGenericMapping

PRIVILEGE_SET

SE_EXPORTS

SECURITY_DESCRIPTOR

SECURITY_SUBJECT_CONTEXT

SeFreePrivileges

SeValidSecurityDescriptor