Поделиться через


Подключаемые и play незначительные irps

В этом разделе описаны ip-адреса PnP, отправляемые драйверам. All PnP IRPs have the major function code IRP_MJ_PNP and a minor function code indicating the particular PnP request.

В этом разделе содержатся справочные сведения для отдельных irPs. Ознакомьтесь с описанием порядка отправки IRP в Подключаемый модуль и play , обсуждение способа обработки irPs в подпрограммах DispatchPnP и общее обсуждение концепций и терминологии PnP.

Для каждого IRP и каждого типа драйвера драйвер либо требуется для обработки IRP, может при необходимости обрабатывать IRP, либо не должен обрабатывать IRP. Ознакомьтесь с таблицей ниже, чтобы определить, какие irPs ваш драйвер будет обрабатывать, а затем ознакомьтесь со справочными страницами для получения сведений об отдельных IRP. IrPs перечислены в функциональном порядке в таблице и в алфавитном порядке на справочных страницах IRP.

Если IRP помечен как "Нет" в таблице для определенного драйвера, этот драйвер не должен обрабатывать IRP. Драйвер должен передать IRP следующему драйверу в стеке устройств, как описано на справочной странице для IRP.

Диспетчер PnP отправляет эти ip-адреса. Драйверы PnP могут отправлять некоторые из этих ip-адресов, но только те, которые указаны в этом разделе.

Ниже приведены дополнительные коды функций для PnP IRPs и типы драйверов, обрабатывающие их:

Дополнительный код функции PnP IRP Value Драйвер функции или фильтра для устройства, отличного отbus Драйвер функции для устройства шины (для FDO шины) Драйвер шины или драйвер фильтра шины (для дочерних PDOS)
IRP_MN_START_DEVICE 0x00 Required Required Required
IRP_MN_QUERY_REMOVE_DEVICE 0x01 Required Required Required
IRP_MN_REMOVE_DEVICE 0x02 Required Required Required
IRP_MN_CANCEL_REMOVE_DEVICE 0x03 Required Required Required
IRP_MN_STOP_DEVICE 0x04 Required Required Required
IRP_MN_QUERY_STOP_DEVICE 0x05 Required Required Required
IRP_MN_CANCEL_STOP_DEVICE 0x06 Required Required Required
IRP_MN_QUERY_DEVICE_RELATIONS 0x07
- BusRelations x Optional (1) Required No (2)
- EjectionRelations x No No Optional
- RemovalRelations x Optional Optional No
- TargetDeviceRelation x No No Required
IRP_MN_QUERY_INTERFACE 0x08 Optional Optional Required (1)
IRP_MN_QUERY_CAPABILITIES 0x09 Optional Необязательный или требуемый
IRP_MN_QUERY_RESOURCES 0x0A No No Required (1)
IRP_MN_QUERY_RESOURCE_REQUIREMENTS 0x0B No No Required (1)
IRP_MN_QUERY_DEVICE_TEXT 0x0C No No Required (1)
IRP_MN_FILTER_RESOURCE_REQUIREMENTS 0x0D Optional (1) Optional (1) No
IRP_MN_READ_CONFIG 0x0F No No Required (1)
IRP_MN_WRITE_CONFIG 0x10 No No Required (1)
IRP_MN_EJECT 0x11 No No Required
IRP_MN_SET_LOCK 0x12 No No Required (1)
IRP_MN_QUERY_ID 0x13
- BusQueryDeviceID x No No Required
- BusQueryHardwareIDs x No No Optional
- BusQueryCompatibleIDs x No Нет или необязательно
- BusQueryInstanceID x No No Optional
- BusQueryContainerID x No No Required (3)
IRP_MN_QUERY_PNP_DEVICE_STATE 0x14 Optional Optional Optional
IRP_MN_QUERY_BUS_INFORMATION 0x15 No No Required (1)
IRP_MN_DEVICE_USAGE_NOTIFICATION 0x16 Required (1) Required (1) Required (1)
IRP_MN_SURPRISE_REMOVAL 0x17 Required Required Required
IRP_MN_DEVICE_ENUMERATED 0x19 No No Required (1)

(1) Обязательный или необязательный в определенных ситуациях. Дополнительные сведения см. на странице справки по IRP.

(2) Bus filter drivers might handle a query for BusRelations.

(3) Поддерживается в Windows 7 и более поздних версиях Windows.