WdfIoTargetStart 函式 (wdfiotarget.h)

[適用於 KMDF 和 UMDF]

WdfIoTargetStart 方法會開始將佇列要求傳送至本機或遠端 I/O 目標。

語法

NTSTATUS WdfIoTargetStart(
  [in] WDFIOTARGET IoTarget
);

參數

[in] IoTarget

本機或遠端 I/O 目標物件的句柄,該物件是從先前呼叫 WdfDeviceGetIoTargetWdfIoTargetCreate 取得,或從特製化 I/O 目標所提供的方法取得。

傳回值

如果作業成功,WdfIoTargetStart 會傳回STATUS_SUCCESS。 否則,此方法可能會傳回下列其中一個值:

傳回碼 Description
STATUS_INVALID_DEVICE_STATE
裝置已移除。
 

這個方法也可能傳回其他 NTSTATUS值

如果驅動程式提供無效的物件句柄,就會發生錯誤檢查。

備註

如果您的驅動程式可以偵測可復原的裝置錯誤,您可能希望驅動程式呼叫 WdfIoTargetStop 以暫時停止傳送要求,然後稍後呼叫 WdfIoTargetStart 繼續傳送要求。

此外,如果驅動程式呼叫 WdfUsbTargetPipeConfigContinuousReader 來設定 USB 管道的連續讀取器,驅動程式的 EvtDeviceD0Entry 回呼函式必須呼叫 WdfIoTargetStart 來啟動讀取器。

您的驅動程序必須同步呼叫 WdfIoTargetStartWdfIoTargetStop 。 在驅動程式呼叫其中一個函式之後,它不得在第一個函式傳回之前呼叫另一個函式。

如需 WdfIoTargetStart 的詳細資訊,請參閱 控制一般 I/O 目標的狀態

如需 I/O 目標的詳細資訊,請參閱 使用 I/O 目標

範例

下列程式代碼範例示範如果驅動程式對 USB 管道使用連續讀取器, EvtDeviceD0Entry 回呼函式如何呼叫 WdfIoTargetStart

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;
}

規格需求

需求
目標平台 Universal
最小 KMDF 版本 1.0
最低UMDF版本 2.0
標頭 wdfiotarget.h (包含 Wdf.h)
程式庫 Wdf01000.sys (KMDF) ;WUDFx02000.dll (UMDF)
IRQL <=DISPATCH_LEVEL
DDI 合規性規則 DriverCreate (kmdf) FailD0EntryIoTargetState (kmdf ) 、 KmdfIrql (kmdf) KmdfIrql2 (kmdf) 、 KmdfIrqlExplicit (kmdf)

另請參閱

EvtDeviceD0Entry

WdfDeviceGetIoTarget

WdfIoTargetCreate

WdfIoTargetStop

WdfUsbTargetPipeConfigContinuousReader