Freigeben über


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 für ein Frameworkanforderungsobjekt.

[in] IoTarget

Ein Handle für ein 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
STATUS_INVALID_PARAMETER
Ein Eingabeparameter ist ungültig.
STATUS_INSUFFICIENT_RESOURCES
Es sind nicht genügend Systemressourcen vorhanden, um den Vorgang abzuschließen.
STATUS_REQUEST_NOT_ACCEPTED
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-Werte zurückgeben.

Eine Fehlerüberprüfung tritt auf, wenn der Treiber ein ungültiges Objekthandle bereitstellt.

Hinweise

Ihr Treiber sollte die WdfRequestChangeTarget-Methode aufrufen, bevor WdfRequestSend aufgerufen wird, 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 er WdfRequestCreate aufruft.

Wenn der Treiber die Anforderung an ein Gerät sendet, ruft er WdfDeviceGetIoTarget auf, um das E/A-Ziel des Geräts zu bestimmen, 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 bestimmen. Vor dem Aufrufen von WdfRequestSend muss der Treiber WdfRequestChangeTarget aufrufen, um sicherzustellen, dass auf jedes E/A-Ziel zugegriffen werden kann.

Weitere Informationen zu WdfRequestChangeTarget finden Sie unter Weiterleiten von E/A-Anforderungen.

Beispiele

Im folgenden Codebeispiel wird überprüft, ob eine E/A-Anforderung an das lokale E/A-Ziel eines angegebenen Geräts gesendet werden kann.

NTSTATUS  status;

status = WdfRequestChangeTarget(
                                request,
                                WdfDeviceGetIoTarget(Device)
                                );

Anforderungen

Anforderung Wert
Zielplattform Universell
KMDF-Mindestversion 1.0
UMDF-Mindestversion 2.0
Kopfzeile wdfrequest.h (einschließen von Wdf.h)
Bibliothek Wdf01000.sys (KMDF); WUDFx02000.dll (UMDF)
IRQL <=DISPATCH_LEVEL
DDI-Complianceregeln DriverCreate(kmdf), InvalidReqAccess(kmdf), InvalidReqAccessLocal(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf)

Weitere Informationen

WdfDeviceGetIoTarget

WdfRequestCreate

WdfRequestSend