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) |