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 控制要求類型。 (要求類型是由要求 WDF_REQUEST_TYPE 列舉類型的 WdfRequestDeviceIoControl 值來識別。
如需與佇列和架構呼叫相關聯之驅動程式方法的詳細資訊,請參閱 I/O 佇列事件回呼函式。 OnDeviceIoControl 方法必須處理每個收到的裝置 I/O 控制要求。 如需 UMDF 驅動程式如何處理 I/O 要求的詳細資訊,請參閱 處理 I/O 要求。
驅動程式可以呼叫 IWDFIoRequest::GetDeviceIoControlParameters、IWDFIoRequest::GetInputMemory,以及 IWDFIoRequest::GetOutputMemory 方法來擷取要求和輸入和輸出緩衝區的相關信息。
要求
要求 | 價值 |
---|---|
目標平臺 | 窗戶 |
標頭 | wudfddi.h (包括 Wudfddi.h) |