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)

另请参阅