プラグ アンド プレイのマイナー 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 の一部を送信できますが、このセクションに記載している IRP に限ります。
PnP IRP のマイナー関数コードと、それらを処理するドライバーの種類を次に示します。
PnP IRP マイナー関数コード | Value | 非バス デバイスの関数またはフィルター ドライバー | バス デバイスのファンクション ドライバー (バス 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) |
- EjectionRelations | 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 | 0煮10 | いいえ | いいえ | 必須 (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 に対応。