WdfIoTargetStart 函式 (wdfiotarget.h)
[適用於 KMDF 和 UMDF]
WdfIoTargetStart 方法會開始將佇列要求傳送至本機或遠端 I/O 目標。
語法
NTSTATUS WdfIoTargetStart(
[in] WDFIOTARGET IoTarget
);
參數
[in] IoTarget
本機或遠端 I/O 目標物件的句柄,該物件是從先前呼叫 WdfDeviceGetIoTarget 或 WdfIoTargetCreate 取得,或從特製化 I/O 目標所提供的方法取得。
傳回值
如果作業成功,WdfIoTargetStart 會傳回STATUS_SUCCESS。 否則,此方法可能會傳回下列其中一個值:
傳回碼 | Description |
---|---|
|
裝置已移除。 |
這個方法也可能傳回其他 NTSTATUS值。
如果驅動程式提供無效的物件句柄,就會發生錯誤檢查。
備註
如果您的驅動程式可以偵測可復原的裝置錯誤,您可能希望驅動程式呼叫 WdfIoTargetStop 以暫時停止傳送要求,然後稍後呼叫 WdfIoTargetStart 繼續傳送要求。
此外,如果驅動程式呼叫 WdfUsbTargetPipeConfigContinuousReader 來設定 USB 管道的連續讀取器,驅動程式的 EvtDeviceD0Entry 回呼函式必須呼叫 WdfIoTargetStart 來啟動讀取器。
您的驅動程序必須同步呼叫 WdfIoTargetStart 和 WdfIoTargetStop 。 在驅動程式呼叫其中一個函式之後,它不得在第一個函式傳回之前呼叫另一個函式。
如需 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) |