WdfRequestChangeTarget-Funktion (wdfrequest.h)
[Gilt für KMDF und UMDF]
Die WdfRequestChangeTarget Methode überprüft, ob eine angegebene E/A-Anforderung an ein angegebenes E/A-Ziel gesendet werden kann.
Syntax
NTSTATUS WdfRequestChangeTarget(
[in] WDFREQUEST Request,
[in] WDFIOTARGET IoTarget
);
Parameter
[in] Request
Ein Handle zu einem Framework-Anforderungsobjekt.
[in] IoTarget
Ein Handle zu einem Framework-E/A-Zielobjekt.
Rückgabewert
WdfRequestChangeTarget gibt STATUS_SUCCESS zurück, wenn der Vorgang erfolgreich ist. Andernfalls gibt diese Methode möglicherweise einen der folgenden Werte zurück:
Rückgabecode | Beschreibung |
---|---|
|
Ein Eingabeparameter ist ungültig. |
|
Es sind unzureichende Systemressourcen vorhanden, um den Vorgang abzuschließen. |
|
Das Array der E/A-Stapelspeicherorte der Anforderung ist nicht groß genug, damit der Treiber die Anforderung an das E/A-Ziel senden kann. |
Diese Methode kann auch andere NTSTATUS-Wertezurückgeben.
Wenn der Treiber ein ungültiges Objekthandle bereitstellt, tritt eine Fehlerüberprüfung auf.
Bemerkungen
Ihr Treiber sollte die WdfRequestChangeTarget--Methode aufrufen, bevor er WdfRequestSend-aufruft, wenn der Treiber eine einzelne E/A-Anforderung an mehrere E/A-Ziele sendet. WdfRequestChangeTarget überprüft, ob die Anforderung an das angegebene E/A-Ziel gesendet werden kann.
Die meisten Treiber senden jede Anforderung nur an ein Gerät und somit nur an ein E/A-Ziel. Ein Treiber empfängt entweder die Anforderung oder erstellt eine neue Anforderung, indem WdfRequestCreateaufgerufen wird.
Wenn der Treiber die Anforderung an ein Gerät sendet, ruft er WdfDeviceGetIoTarget- auf, um das E/A-Ziel des Geräts zu ermitteln, und ruft dann WdfRequestSend auf, um die Anforderung an das Ziel zu senden.
Wenn der Treiber die Anforderung an mehrere Geräte sendet, ruft er WdfDeviceGetIoTarget- für jedes Gerät auf, um das E/A-Ziel des Geräts zu ermitteln. Vor dem Aufrufen WdfRequestSendmuss der Treiber WdfRequestChangeTarget- aufrufen, um sicherzustellen, dass auf jedes E/A-Ziel zugegriffen werden kann.
Weitere Informationen zu WdfRequestChangeTarget-finden Sie unter Weiterleitung von E/A-Anforderungen.
Beispiele
Im folgenden Codebeispiel wird überprüft, ob eine E/A-Anforderung an das lokale E/A-Ziel eines bestimmten Geräts gesendet werden kann.
NTSTATUS status;
status = WdfRequestChangeTarget(
request,
WdfDeviceGetIoTarget(Device)
);
Anforderungen
Anforderung | Wert |
---|---|
Zielplattform- | Universal |
Minimale KMDF-Version | 1.0 |
Mindest-UMDF-Version | 2.0 |
Header- | wdfrequest.h (include Wdf.h) |
Library | Wdf01000.sys (KMDF); WUDFx02000.dll (UMDF) |
IRQL- | <=DISPATCH_LEVEL |
DDI-Complianceregeln | DriverCreate(kmdf), InvalidReqAccess(kmdf), InvalidReqAccessLocal(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf) |