隨插即用次要 IRP

本節說明傳送給驅動程式的 PnP IRP。 所有 PnP IRP 都有主要函式程式碼 IRP_MJ_PNP ,以及指出特定 PnP 要求的次要函式程式碼。

本節提供個別 IRP 的參考資訊。 如需 IRP 傳送順序的描述、如何處理DispatchPnP 常式中的 IRP 的討論,以及 PnP 概念和術語的一般討論,請參閱隨插即用

對於每個 IRP 和每種驅動程式類型,驅動程式是處理 IRP 的必要專案,可以選擇性地處理 IRP,或不得處理 IRP。 請參閱下表,以識別驅動程式將處理的 IRP,然後查閱參考頁面以取得個別 IRP 的相關資訊。 IRP 會依資料表中的功能順序列出,並以 IRP 參考頁面的字母順序列出。

如果特定驅動程式的資料表中將 IRP 標示為「否」,該驅動程式不得處理 IRP。 驅動程式必須將 IRP 傳遞給裝置堆疊中的下一個驅動程式,如 IRP 的參考頁面所述。

PnP 管理員會傳送這些 IRP。 PnP 驅動程式可以傳送其中一些 IRP,但只會傳送本節中所述的部分。

以下是 PnP IRP 的次要函式程式碼,以及處理它們的驅動程式類型:

PnP IRP 次要函式程式碼 非匯流排裝置的函式或篩選驅動程式 匯流排 FDO) 的匯流排裝置 (函式驅動程式 子 PDO 的匯流排驅動程式或匯流排篩選驅動程式 ()
IRP_MN_START_DEVICE 0x00 必要 必要 必要
IRP_MN_QUERY_REMOVE_DEVICE 0x01 必要 必要 必要
IRP_MN_REMOVE_DEVICE 0x02 必要 必要 必要
IRP_MN_CANCEL_REMOVE_DEVICE 0x03 必要 必要 必要
IRP_MN_STOP_DEVICE 0x04 必要 必要 必要
IRP_MN_QUERY_STOP_DEVICE 0x05 必要 必要 必要
IRP_MN_CANCEL_STOP_DEVICE 0x06 必要 必要 必要
IRP_MN_QUERY_DEVICE_RELATIONS 0x07
- BusRelations x 選擇性 (1) 必要 無 (2)
- 退出Relations x 選擇性
- RemovalRelations x 選用 選用
- TargetDeviceRelation x 必要
IRP_MN_QUERY_INTERFACE 0x08 選用 選擇性 必要 (1)
IRP_MN_QUERY_CAPABILITIES 0x09 選擇性 選擇性或必要
IRP_MN_QUERY_RESOURCES 0x0A 必要 (1)
IRP_MN_QUERY_RESOURCE_REQUIREMENTS 0x0B 必要 (1)
IRP_MN_QUERY_DEVICE_TEXT 0x0C 必要 (1)
IRP_MN_FILTER_RESOURCE_REQUIREMENTS 0x0D 選擇性 (1) 選擇性 (1)
IRP_MN_READ_CONFIG 0x0F 必要 (1)
IRP_MN_WRITE_CONFIG 0x10 必要 (1)
IRP_MN_EJECT 0x11 必要
IRP_MN_SET_LOCK 0x12 必要 (1)
IRP_MN_QUERY_ID 0x13
- BusQueryDeviceID x 必要
- BusQueryHardwareIDs x 選擇性
- BusQueryCompatibleIDs x 否或選擇性
- BusQueryInstanceID x 選擇性
- BusQueryContainerID x 必要 (3)
IRP_MN_QUERY_PNP_DEVICE_STATE 0x14 選用 選用 選擇性
IRP_MN_QUERY_BUS_INFORMATION 0x15 必要 (1)
IRP_MN_DEVICE_USAGE_NOTIFICATION 0x16 必要 (1) 必要 (1) 必要 (1)
IRP_MN_SURPRISE_REMOVAL 0x17 必要 必要 必要
IRP_MN_DEVICE_ENUMERATED 0x19 必要 (1)

(1) 在某些情況下為必要或選擇性。 如需詳細資訊,請參閱 IRP 的參考頁面。

(2) 匯流排篩選驅動程式可能會處理 BusRelations 的查詢。

(3) Windows 7 和更新版本的 Windows 支援。