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 |
---|---|
|
Ein Eingabeparameter ist ungültig. |
|
Es sind nicht genügend 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-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) |