IQueueCallbackDeviceIoControl::OnDeviceIoControl 方法 (wudfddi.h)
警告
UMDF 2 是最新版的 UMDF,並取代 UMDF 1。 所有新的UMDF驅動程式都應該使用UMDF 2撰寫。 未將新功能新增至 UMDF 1,而且較新版本的 Windows 10 上,UMDF 1 的支援有限。 通用 Windows 驅動程式必須使用 UMDF 2。 如需詳細資訊,請參閱使用UMDF使用者入門。
當應用程式透過 Microsoft Win32 OnDeviceIoControl 函式在裝置上執行特定作業時,會呼叫 OnDeviceIoControl 方法來處理裝置 I/O 控制要求。
語法
void OnDeviceIoControl(
[in] IWDFIoQueue *pWdfQueue,
[in] IWDFIoRequest *pWdfRequest,
[in] ULONG ControlCode,
SIZE_T InputBufferSizeInBytes,
SIZE_T OutputBufferSizeInBytes
);
參數
[in] pWdfQueue
要求從中抵達之 I/O 佇列物件的 IWDFIoQueue 介面指標。
[in] pWdfRequest
代表架構要求物件的 IWDFIoRequest 介面指標。
[in] ControlCode
驅動程式定義或系統定義的 I/O 控制項程式代碼 (IOCTL) ,可識別要執行且與要求相關聯的特定作業。
InputBufferSizeInBytes
要求輸入緩衝區的大小,以位元組為單位。
OutputBufferSizeInBytes
要求輸出緩衝區的大小,以位元組為單位。
傳回值
無
備註
驅動程式會在驅動程式呼叫 IWDFDevice::CreateIoQueue 方法來建立 I/O 佇列或設定預設 I/O 佇列時,註冊 IQueueCallbackDeviceIoControl 介面。
驅動程式可以為所有 I/O 佇列實作單一 OnDeviceIoControl 方法,或針對每個 I/O 佇列實作個別 的 OnDeviceIoControl 方法。
OnDeviceIoControl 方法會從佇列接收每個裝置 I/O 控制要求類型。 (要求類型是由 request WDF_REQUEST_TYPE 列舉類型的WdfRequestDeviceIoControl 值所識別。)
如需與佇列相關聯的驅動程式方法以及架構呼叫的詳細資訊,請參閱 I/O 佇列事件回呼函式。 OnDeviceIoControl 方法必須處理每個收到的裝置 I/O 控制要求。 如需 UMDF 驅動程式如何處理 I/O 要求的詳細資訊,請參閱 處理 I/O 要求。
驅動程式可以呼叫 IWDFIoRequest::GetDeviceIoControlParameters、 IWDFIoRequest::GetInputMemory 和 IWDFIoRequest::GetOutputMemory 方法來擷取要求和輸入和輸出緩衝區的相關信息。
規格需求
需求 | 值 |
---|---|
目標平台 | Windows |
標頭 | wudfddi.h (包含 Wudfddi.h) |