即插即用技术的功能包括:
自动和动态识别已安装的硬件
硬件资源分配(和重新分配)
加载适当的驱动程序
驱动程序与 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 支持的详细信息。