WdfDeviceInitSetIoType 函数 (wdfdevice.h)
[适用于 KMDF 和 UMDF]
WdfDeviceInitSetIoType 方法设置驱动程序如何访问指定设备的读取和写入请求中包含的数据缓冲区的方法或首选项。
语法
void WdfDeviceInitSetIoType(
[in] PWDFDEVICE_INIT DeviceInit,
[in] WDF_DEVICE_IO_TYPE IoType
);
参数
[in] DeviceInit
指向 WDFDEVICE_INIT 结构的指针。
[in] IoType
一个WDF_DEVICE_IO_TYPE类型的枚举器,用于标识驱动程序将用于访问它接收的读取和写入请求的数据缓冲区的方法。
返回值
无
备注
KMDF 如果要使用 KMDF 版本 1.13 或更高版本编写新驱动程序,则应改用 WdfDeviceInitSetIoTypeEx。 从 KMDF 筛选器驱动程序调用 WdfDeviceInitSetIoType 不起作用。 对于筛选器驱动程序,框架使用由驱动程序堆栈中下一个较低级别的驱动程序指定的 I/O 类型。
UMDF 如果要将调用 WdfDeviceInitSetIoType 的 KMDF 驱动程序转换为 UMDF 版本 2.0 或更高版本,则转换后的驱动程序可以继续调用 WdfDeviceInitSetIoType ,而不会出现问题。 但是,如果要使用 UMDF 版本 2.0 或更高版本编写全新的驱动程序,则应改用 WdfDeviceInitSetIoTypeEx。
如果驱动程序调用 WdfDeviceInitSetIoType,它必须在调用 WdfDeviceCreate 之前执行此操作。 有关调用 WdfDeviceCreate 的详细信息,请参阅 创建框架设备对象。
如果驱动程序不调用 WdfDeviceInitSetIoType,框架会将驱动程序的缓冲区访问方法设置为 指定设备的 WdfDeviceIoBuffered。
有关缓冲区访问方法的详细信息,请参阅 访问数据缓冲区。
示例
下面的代码示例指示驱动程序在访问设备时将使用直接 I/O 方法。
WdfDeviceInitSetIoType(
DeviceInit,
WdfDeviceIoDirect
);
要求
要求 | 值 |
---|---|
目标平台 | 通用 |
最低 KMDF 版本 | 1.0 |
最低 UMDF 版本 | 2.0 |
标头 | wdfdevice.h (包括 Wdf.h) |
Library | Wdf01000.sys (KMDF) ;WUDFx02000.dll (UMDF) |
IRQL | <= DISPATCH_LEVEL |
DDI 符合性规则 | ChildDeviceInitAPI (kmdf) 、 ControlDeviceInitAPI (kmdf) 、 DeviceInitAPI (kmdf) 、 DriverCreate (kmdf) 、 KmdfIrql (kmdf) 、 KmdfIrql2 (kmdf) 、 KmdfIrqlExplicit (kmdf) , PdoDeviceInitAPI (kmdf) |