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::GetDeviceIoControlParametersIWDFIoRequest::GetInputMemoryIWDFIoRequest::GetOutputMemory 方法來擷取要求和輸入和輸出緩衝區的相關信息。

規格需求

需求
目標平台 Windows
標頭 wudfddi.h (包含 Wudfddi.h)

另請參閱