Freigeben über


WdfIoTargetStart-Funktion (wdfiotarget.h)

[Gilt für KMDF und UMDF]

Die WdfIoTargetStart-Methode beginnt mit dem Senden von Anforderungen in die Warteschlange an ein lokales oder Remote-E/A-Ziel.

Syntax

NTSTATUS WdfIoTargetStart(
  [in] WDFIOTARGET IoTarget
);

Parameter

[in] IoTarget

Ein Handle für ein lokales oder Remote-E/A-Zielobjekt, das aus einem vorherigen Aufruf von WdfDeviceGetIoTarget oder WdfIoTargetCreate oder von einer Methode abgerufen wurde, die ein spezialisiertes E/A-Ziel bereitstellt.

Rückgabewert

WdfIoTargetStart 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_DEVICE_STATE
Das Gerät wurde entfernt.
 

Diese Methode kann auch andere NTSTATUS-Werte zurückgeben.

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

Hinweise

Wenn Ihr Treiber wiederherstellbare Gerätefehler erkennen kann, möchten Sie möglicherweise, dass Ihr Treiber WdfIoTargetStop aufruft , um das Senden von Anforderungen vorübergehend zu beenden, und später WdfIoTargetStart aufrufen, um das Senden von Anforderungen fortzusetzen.

Wenn ein Treiber WdfUsbTargetPipeConfigContinuousReader aufruft, um einen fortlaufenden Reader für eine USB-Pipe zu konfigurieren, muss die Rückruffunktion EvtDeviceD0Entry des Treibers WdfIoTargetStart aufrufen, um den Reader zu starten.

Ihr Treiber muss WdfIoTargetStart und WdfIoTargetStop synchron aufrufen. Nachdem der Treiber eine dieser Funktionen aufgerufen hat, darf er die andere Funktion nicht aufrufen, bevor die erste funktion zurückgegeben wird.

Weitere Informationen zu WdfIoTargetStart finden Sie unter Steuern des Status eines allgemeinen E/A-Ziels.

Weitere Informationen zu E/A-Zielen finden Sie unter Verwenden von E/A-Zielen.

Beispiele

Das folgende Codebeispiel zeigt, wie eine EvtDeviceD0Entry-RückruffunktionWdfIoTargetStart aufrufen kann, wenn der Treiber einen fortlaufenden Reader für eine USB-Pipe verwendet.

NTSTATUS
MyEvtDeviceD0Entry(
    IN  WDFDEVICE Device,
    IN  WDF_POWER_DEVICE_STATE PreviousState
)
{
    PDEVICE_CONTEXT  pDeviceContext;
    NTSTATUS  status;

    pDeviceContext = GetMyDeviceContext(Device);

    status = WdfIoTargetStart(WdfUsbTargetPipeGetIoTarget(pDeviceContext->InterruptPipe));

    return status;
}

Anforderungen

Anforderung Wert
Zielplattform Universell
KMDF-Mindestversion 1.0
UMDF-Mindestversion 2.0
Kopfzeile wdfiotarget.h (include Wdf.h)
Bibliothek Wdf01000.sys (KMDF); WUDFx02000.dll (UMDF)
IRQL <=DISPATCH_LEVEL
DDI-Complianceregeln DriverCreate(kmdf), FailD0EntryIoTargetState(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf)

Weitere Informationen

EvtDeviceD0Entry

WdfDeviceGetIoTarget

WdfIoTargetCreate

WdfIoTargetStop

WdfUsbTargetPipeConfigContinuousReader