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 den IRP an, für den die Zugriffsüberprüfung durchgeführt werden soll.

[in] RequiredAccess

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

Wert Bedeutung
FILE_READ_ACCESS
Der Anforderungssender muss über Lesezugriff auf das Geräteobjekt verfügen.
FILE_WRITE_ACCESS
Der Anforderungssender muss über Schreibzugriff auf das Geräteobjekt verfügen.

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 Anforderungssender hat nicht den erforderlichen Zugriff auf das Geräteobjekt.
STATUS_INVALID_PARAMETER
Die angegebenen Parameter sind ungültig. Wenn der Routine beispielsweise ein IRP übergeben wird, das kein IRP_MJ_DEVICE_CONTROL oder IRP_MJ_FILE_SYSTEM_CONTROL IRP ist, wird STATUS_INVALID_PARAMETER zurückgegeben.

Hinweise

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

Wenn beispielsweise eine IOCTL mit dem RequiredAccess-Wert 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 eine strengere Sicherheit zu erfordern. Weitere Informationen zum RequiredAccess-Wert einer IOCTL finden Sie unter Definieren von E/A-Kontrollcodes.

Die Zugriffsüberprüfungen werden nur ausgeführt, wenn das RequestorMode-Element der IRP-StrukturUserMode ist. Wenn RequestorModeKernelMode ist, gibt die Routine automatisch STATUS_SUCCESS zurück.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (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 einen Link zu Wdmsec.lib herstellen, 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 ist jetzt im Lieferumfang des Windows Driver Kit [WDK]) enthalten.)
Zielplattform Universell
Header wdmsec.h (include Wdmsec.h, Wdm.h, Ntddk.h, Ntifs.h)
Bibliothek NtosKrnl.lib
DLL NtosKrnl.exe
IRQL Beliebige Ebene

Weitere Informationen

IRP