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 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
STATUS_INVALID_PARAMETER
Ein Eingabeparameter ist ungültig.
STATUS_INSUFFICIENT_RESOURCES
Es sind unzureichende 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-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)

Siehe auch

WdfDeviceGetIoTarget-

WdfRequestCreate

WdfRequestSend-