获取有关 I/O 请求的信息
在处理 I/O 请求之前,驱动程序必须确定请求类型。 当基于框架的驱动程序为设备 创建 I/O 队列 时,它通常会设置 I/O 队列和请求处理程序,以便每个队列或请求处理程序接收特定类型的请求, (读取、写入或设备 I/O 控制) 。
确定请求类型后,驱动程序必须获取请求的输入和输出缓冲区(如果需要)。 有关获取请求缓冲区的信息,请参阅 访问 Framework-Based 驱动程序中的数据缓冲区。
为了提供有关驱动程序已接收的 I/O 请求的其他信息,框架请求对象定义了以下方法:
WdfRequestGetIoQueue,它返回从中传递 I/O 请求的 I/O 队列的句柄。
WdfRequestGetRequestorMode,它 (请求发起方的用户或内核) 返回处理器访问模式。
WdfRequestGetFileObject,它返回与请求关联的框架文件对象的句柄。
WdfRequestWdmGetIrp,它返回与请求关联的 WDM IRP 结构。
WdfRequestGetParameters,用于检索 WDM 格式的非 IRP 请求参数。
驱动程序完成 I/O 请求后,驱动程序堆栈中的其他驱动程序可以调用其他请求对象方法来获取请求完成信息。 有关这些附加方法的详细信息,请参阅 完成 I/O 请求。