PnP 驱动程序设计指南

即插即用技术的功能包括:

  • 自动和动态识别已安装的硬件

  • 硬件资源分配(和重新分配)

  • 加载适当的驱动程序

  • 驱动程序与 PnP 系统交互的接口

  • 驱动程序和应用程序了解硬件环境中的更改的机制

若要支持 PnP,驱动程序必须遵循以下准则:

  • 它必须包含 DispatchPnP 例程。

    此调度例程必须处理 IRP_MJ_PNP 请求和关联的次要函数代码。 有关详细信息,请参阅 DispatchPnP 例程

  • 它不得搜索硬件。

    PnP 管理器负责确定硬件设备的存在。 当 PnP 管理器检测到设备时,它会通过调用其 AddDevice 例程通知驱动程序。 当系统启动时,或者用户向正在运行的系统添加设备或从中删除设备时,可以检测到硬件。

  • 它不能分配硬件资源。

    PnP 驱动程序必须向 PnP 管理器提供设备可能使用的资源列表。 PnP 管理器负责分配每个设备的资源,并在设备发送 IRP_MN_START_DEVICE 请求时通知设备驱动程序其资源分配情况。 因此,驱动程序必须能够处理各种硬件资源配置。

某些驱动程序通过系统提供的端口或类驱动程序被隔离保护,使其不受 PnP 和电源管理详细信息的影响。 例如,SCSI 端口驱动程序将 SCSI 微型端口驱动程序与电源和 PnP 系统的许多详细信息隔离开来,因此 SCSI 微型端口驱动程序不需要直接处理电源和 PnP IRP。 有关此类驱动程序,请参阅特定于驱动程序的文档,了解所需的 PnP 支持的详细信息。