特定于设备类型的 I/O 请求

Windows 驱动程序工具包 (WDK) 的特定于设备的部分提供有关由系统提供的驱动程序为最常见的设备类型处理的特定于设备的 I/O 请求的信息。

如果新驱动程序满足以下任一条件,新的内核模式驱动程序必须处理与系统提供的驱动程序相同的 I/O 请求集:

  • 新驱动程序将替换相同类型的设备的系统驱动程序。

  • 新驱动程序支持系统中已有类型的另一台设备。

  • 新驱动程序是一个中间 (筛选器) 驱动程序,在两个系统提供的驱动程序之间分层。

此类新驱动程序必须处理系统IRP_MJ_驱动程序处理的每一个 IRP_MJ_XXX 请求。 在大多数情况下,新的设备驱动程序还应处理 IRP_MJ_DEVICE_CONTROL 请求的同一组 IOCTL_XXX 代码,即使新驱动程序必须模拟相应的系统提供的驱动程序的行为。 否则,新驱动程序可能会中断预期会遵守这些类型的请求的用户模式应用程序。

有关驱动程序可以在 I/O 状态块中设置的 NTSTATUS 值(作为特定请求的返回值)的信息,请参阅 使用 NTSTATUS 值。 有关可以在错误日志数据包中指定的 NTSTATUS 值的信息,请参阅 日志记录错误。 使用此信息来确定新驱动程序为类似设备类型返回的适当状态值,或帮助确定驱动程序为新设备类型返回的适当状态值。

有关各种类型的驱动程序以及每个驱动程序需要支持的请求详细信息,请参阅以下内容:

串行设备和驱动程序

系统提供的并行驱动程序

存储驱动程序

HID 体系结构

USB 客户端驱动程序的 I/O 请求

IEEE 1394 驱动程序堆栈

访问 PCMCIA 设备的属性内存

对于所有其他类型的驱动程序,请参阅相应驱动程序类型的文档。