Freigeben über


WdmlibIoValidateDeviceIoControlAccess-Funktion (wdmsec.h)

Die WdmlibIoValidateDeviceIoControlAccess Funktion überprüft, ob der Absender eines IRP_MJ_DEVICE_CONTROL oder IRP_MJ_FILE_SYSTEM_CONTROL IRP über den angegebenen Zugriff auf das Geräteobjekt verfügt.

Syntax

NTSTATUS WdmlibIoValidateDeviceIoControlAccess(
  [in] PIRP  Irp,
  [in] ULONG RequiredAccess
);

Parameter

[in] Irp

Gibt die IRP- an, für die die Zugriffsüberprüfung ausgeführt werden soll.

[in] RequiredAccess

Gibt den Typ des Zugriffs auf das Geräteobjekt an, über das der Anforderungssender verfügen muss. Der Aufrufer kann eine oder mehrere der folgenden Flags angeben.

Wert Bedeutung
FILE_READ_ACCESS
Der Absender der Anforderung muss Lesezugriff auf das Geräteobjekt haben.
FILE_WRITE_ACCESS
Der Absender der Anforderung muss Schreibzugriff auf das Geräteobjekt haben.

Rückgabewert

WdmlibIoValidateDeviceIoControlAccess gibt einen NTSTATUS-Wert zurück. Mögliche Rückgabewerte sind:

Rückgabecode Beschreibung
STATUS_SUCCESS
Der Anforderungssender hat den erforderlichen Zugriff auf das Geräteobjekt.
STATUS_ACCESS_DENIED
Der Absender der Anforderung verfügt nicht über den erforderlichen Zugriff auf das Geräteobjekt.
STATUS_INVALID_PARAMETER
Die angegebenen Parameter sind ungültig. Wenn beispielsweise die Routine an ein IRP übergeben wird, das kein IRP_MJ_DEVICE_CONTROL oder IRP_MJ_FILE_SYSTEM_CONTROL IRP ist, wird STATUS_INVALID_PARAMETER zurückgegeben.

Bemerkungen

WdmlibIoValidateDeviceIoControlAccess ermöglicht Treibern, dynamische Zugriffsprüfungen für IOCTLs durchzuführen. Verwenden Sie diese Routine, um restriktiveren Zugriff zu erfordern, als in der IOCTL-Definition angegeben. Wenn die Routine STATUS_ACCESS_DENIED zurückgibt, kann der Treiber die Anforderung mit dem STATUS_ACCESS_DENIED Statuswert abschließen.

Wenn beispielsweise eine IOCTL mit einem RequiredAccess- Wert von FILE_ANY_ACCESS definiert ist, kann standardmäßig jeder Anforderungssender mit SYNCHRONIZE-Zugriff auf das Geräteobjekt die IOCTL senden. Verwenden Sie WdmlibIoValidateDeviceIoControlAccess, um zur Laufzeit strengere Sicherheit zu erfordern. Weitere Informationen zum RequiredAccess- Werts eines IOCTL finden Sie unter Definieren von E/A-Steuerelementcodes.

Die Zugriffsüberprüfungen werden nur ausgeführt, wenn das RequestorMode Member der IRP--Struktur UserMode-ist. Wenn RequestorMode-KernelMode-ist, gibt die Routine automatisch STATUS_SUCCESS zurück.

Anforderungen

Anforderung Wert
mindestens unterstützte Client- Verfügbar in Windows Server 2003 und höheren Versionen von Windows. Treiber, die auch für Windows 2000 und Windows XP funktionieren müssen, können stattdessen mit Wdmsec.lib verknüpft werden, um diese Routine zu verwenden. (Die Wdmsec.lib-Bibliothek wurde zuerst mit den Editionen Windows XP Service Pack 1 [SP1] und Windows Server 2003 des Driver Development Kit [DDK] ausgeliefert und wird jetzt mit dem Windows Driver Kit [WDK]ausgeliefert.)
Zielplattform- Universal
Header- wdmsec.h (include Wdmsec.h, Wdm.h, Ntddk.h, Ntifs.h)
Library NtosKrnl.lib
DLL- NtosKrnl.exe
IRQL- Beliebige Ebene

Siehe auch

IRP-