隨插即用次要 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 支援。