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

Windows 驱动程序工具包 (WDK) 的设备特定部分提供信息,说明系统提供的驱动程序如何处理最常见设备类型的特定 I/O 请求。

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

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

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

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

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

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

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

串行设备和驱动程序

System-Supplied 并行驱动程序

存储驱动程序

HID 体系结构

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

IEEE 1394 驱动程序堆栈

访问 PCMCIA 设备的属性内存

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