Freigeben über


WdfIoTargetStart-Funktion (wdfiotarget.h)

[Gilt für KMDF und UMDF]

Die WdfIoTargetStart- Methode startet das Senden von in die Warteschlange gestellten Anforderungen an ein lokales oder Remote-E/A-Ziel.

Syntax

NTSTATUS WdfIoTargetStart(
  [in] WDFIOTARGET IoTarget
);

Die Parameter

[in] IoTarget

Ein Handle für ein lokales oder Remote-E/A-Zielobjekt, das von einem vorherigen Aufruf an WdfDeviceGetIoTarget oder WdfIoTargetCreateabgerufen wurde, oder von einer Methode, 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-Wertezurückgeben.

Wenn der Treiber ein ungültiges Objekthandle bereitstellt, tritt eine Fehlerüberprüfung auf.

Bemerkungen

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 rufen Sie später WdfIoTargetStart auf, um das Senden von Anforderungen fortzusetzen.

Wenn ein Treiber WdfUsbTargetPipeConfigContinuousReader aufruft, um einen kontinuierlichen Reader für ein USB-Pipe zu konfigurieren, muss die EvtDeviceD0Entry- Rückruffunktion 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 das erste zurückgegeben wird.

Weitere Informationen zu WdfIoTargetStartfinden Sie unter Controlling a General I/O Target's State.

Weitere Informationen zu E/A-Zielen finden Sie unter Using I/O Targets.

Beispiele

Das folgende Codebeispiel zeigt, wie eine EvtDeviceD0Entry- Rückruffunktion WdfIoTargetStartaufrufen 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
Minimale KMDF-Version 1.0
Mindest-UMDF-Version 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)

Siehe auch

EvtDeviceD0Entry

WdfDeviceGetIoTarget-

WdfIoTargetCreate

WdfIoTargetStop-

WdfUsbTargetPipeConfigContinuousReader