Windows 驱动程序工具包 (WDK) 的设备特定部分提供信息,说明系统提供的驱动程序如何处理最常见设备类型的特定 I/O 请求。
如果新驱动程序满足以下任一条件,新的内核模式驱动程序必须处理与系统提供的驱动程序相同的 I/O 请求集:
新驱动程序替换相同类型的设备的系统驱动程序。
新驱动程序支持系统中已有类型的另一台设备。
新驱动程序是中间(筛选器)驱动程序,分层在两个系统提供的驱动程序之间。
此类新驱动程序必须处理系统提供的驱动程序处理的每个 IRP_MJ_XXX 请求。 在大多数情况下,新设备驱动程序还应处理IRP_MJ_DEVICE_CONTROL请求的同一组IOCTL_XXX 代码,即使新驱动程序必须模拟相应的系统提供的驱动程序的行为。 否则,新驱动程序可能会破坏用户模式应用程序,这些应用程序预期此类请求能够被遵循。
有关驱动程序可以在 IRP 的 I/O 状态块中设置的 NTSTATUS 值的信息,作为特定请求的返回值,请参阅 “使用 NTSTATUS 值”。 有关可在错误日志数据包中指定的 NTSTATUS 值的信息,请参阅 日志记录错误。 使用此信息可以决定新驱动程序为类似类型的设备返回的相应状态值,或作为确定驱动程序为新类型设备返回的适当状态值方面的帮助。
有关各种驱动程序以及每个驱动程序支持所需的请求的详细信息,请参阅以下内容:
有关所有其他类型的驱动程序,请参阅相应的驱动程序类型的文档。