Plug and Play RUNTIME Minor
Bagian ini menjelaskan IRP PnP yang dikirim ke driver. Semua RUNTIME PnP memiliki kode fungsi utama IRP_MJ_PNP dan kode fungsi minor yang menunjukkan permintaan PnP tertentu.
Bagian ini menyediakan informasi referensi untuk IRP individual. Lihat Plug and Play untuk deskripsi urutan pengiriman IRP, diskusi tentang cara menangani runtime integrasi dalam rutinitas DispatchPnP, dan diskusi umum tentang konsep dan terminologi PnP.
Untuk setiap IRP dan setiap jenis driver, driver diperlukan untuk menangani IRP, dapat secara opsional menangani IRP, atau tidak boleh menangani IRP. Lihat tabel di bawah ini untuk mengidentifikasi IRP mana yang akan ditangani driver Anda lalu lihat halaman referensi untuk informasi tentang runtime integrasi individual. RUNPS tercantum dalam urutan fungsional dalam tabel dan dalam urutan alfabet di halaman referensi IRP.
Jika IRP ditandai "Tidak" dalam tabel untuk driver tertentu, driver tersebut tidak boleh menangani IRP. Driver harus meneruskan IRP ke driver berikutnya di tumpukan perangkat seperti yang dijelaskan di halaman referensi untuk IRP.
Manajer PnP mengirimkan IRP ini. Driver PnP dapat mengirim beberapa IRP ini, tetapi hanya yang disebutkan di bagian ini.
Berikut ini adalah kode fungsi minor untuk runtime integrasi PnP, dan jenis driver yang menanganinya:
Kode fungsi minor PnP IRP | Nilai | Fungsi atau driver filter untuk perangkat nonbus | Driver fungsi untuk perangkat bus (untuk bus FDO) | Sopir bus atau driver filter bus (untuk PDO anak) |
---|---|---|---|---|
IRP_MN_START_DEVICE | 0x00 | Diperlukan | Diperlukan | Diperlukan |
IRP_MN_QUERY_REMOVE_DEVICE | 0x01 | Diperlukan | Diperlukan | Diperlukan |
IRP_MN_REMOVE_DEVICE | 0x02 | Diperlukan | Diperlukan | Diperlukan |
IRP_MN_CANCEL_REMOVE_DEVICE | 0x03 | Diperlukan | Diperlukan | Diperlukan |
IRP_MN_STOP_DEVICE | 0x04 | Diperlukan | Diperlukan | Diperlukan |
IRP_MN_QUERY_STOP_DEVICE | 0x05 | Diperlukan | Diperlukan | Diperlukan |
IRP_MN_CANCEL_STOP_DEVICE | 0x06 | Diperlukan | Diperlukan | Diperlukan |
IRP_MN_QUERY_DEVICE_RELATIONS | 0x07 | |||
- BusRelations | x | Opsional (1) | Diperlukan | Tidak (2) |
- EjectionRelations | x | Tidak | Tidak | Opsional |
- RemovalRelations | x | Opsional | Opsional | Tidak |
- TargetDeviceRelation | x | Tidak | Tidak | Diperlukan |
IRP_MN_QUERY_INTERFACE | 0x08 | Opsional | Opsional | Diperlukan (1) |
IRP_MN_QUERY_CAPABILITIES | 0x09 | Opsional | Opsional atau Diperlukan | |
IRP_MN_QUERY_RESOURCES | 0x0A | Tidak | Tidak | Diperlukan (1) |
IRP_MN_QUERY_RESOURCE_REQUIREMENTS | 0x0B | Tidak | Tidak | Diperlukan (1) |
IRP_MN_QUERY_DEVICE_TEXT | 0x0C | Tidak | Tidak | Diperlukan (1) |
IRP_MN_FILTER_RESOURCE_REQUIREMENTS | 0x0D | Opsional (1) | Opsional (1) | Tidak |
IRP_MN_READ_CONFIG | 0x0F | Tidak | Tidak | Diperlukan (1) |
IRP_MN_WRITE_CONFIG | 0x10 | Tidak | Tidak | Diperlukan (1) |
IRP_MN_EJECT | 0x11 | Tidak | Tidak | Diperlukan |
IRP_MN_SET_LOCK | 0x12 | Tidak | Tidak | Diperlukan (1) |
IRP_MN_QUERY_ID | 0x13 | |||
- BusQueryDeviceID | x | Tidak | Tidak | Diperlukan |
- BusQueryHardwareIDs | x | Tidak | Tidak | Opsional |
- BusQueryCompatibleIDs | x | Tidak | Tidak atau Opsional | |
- BusQueryInstanceID | x | Tidak | Tidak | Opsional |
- BusQueryContainerID | x | Tidak | Tidak | Diperlukan (3) |
IRP_MN_QUERY_PNP_DEVICE_STATE | 0x14 | Opsional | Opsional | Opsional |
IRP_MN_QUERY_BUS_INFORMATION | 0x15 | Tidak | Tidak | Diperlukan (1) |
IRP_MN_DEVICE_USAGE_NOTIFICATION | 0x16 | Diperlukan (1) | Diperlukan (1) | Diperlukan (1) |
IRP_MN_SURPRISE_REMOVAL | 0x17 | Diperlukan | Diperlukan | Diperlukan |
IRP_MN_DEVICE_ENUMERATED | 0x19 | Tidak | Tidak | Diperlukan (1) |
(1) Diperlukan atau opsional dalam situasi tertentu. Lihat halaman referensi untuk IRP untuk detail selengkapnya.
(2) Driver filter bus mungkin menangani kueri untuk BusRelations.
(3) Didukung di Windows 7 dan versi Windows yang lebih baru.