Aracılığıyla paylaş


Tak Çalıştır Küçük IRP'ler

Bu bölümde sürücülere gönderilen PnP IP'leri açıklanmaktadır. All PnP IRPs have the major function code IRP_MJ_PNP and a minor function code indicating the particular PnP request.

Bu bölümde, tek tek IRP'ler için başvuru bilgileri sağlanır. IRP'lerin gönderilme sırasının açıklaması, DispatchPnP yordamlarında IRP'lerin nasıl işleneceğinin bir tartışması ve PnP kavramları ve terminolojisi hakkında genel bir tartışma için bkz. Tak çalıştır.

Her IRP ve her sürücü türü için, IRP'yi işlemek için bir sürücü gereklidir, isteğe bağlı olarak IRP'yi işleyebilir veya IRP'yi işlememelidir. Sürücünüzün hangi IP'leri işleyeceğini belirlemek için aşağıdaki tabloya bakın ve ardından tek tek IRP'ler hakkında bilgi için başvuru sayfalarına bakın. IRP'ler tabloda işlevsel sırada ve IRP başvuru sayfalarında alfabetik sırada listelenir.

Belirli bir sürücü için tabloda bir IRP "Hayır" olarak işaretlenmişse, bu sürücü IRP'yi işlememelidir. Sürücünün IRP'yi, IRP'nin başvuru sayfasında açıklandığı gibi cihaz yığınındaki bir sonraki sürücüye geçirmesi gerekir.

PnP yöneticisi bu IP'leri gönderir. PnP sürücüleri bu IRP'lerden bazılarını gönderebilir, ancak yalnızca bu bölümde not edilenleri gönderebilir.

PnP IRP'leri için küçük işlev kodları ve bunları işleyen sürücü türleri şunlardır:

PnP IRP ikincil işlev kodu Value Kötü amaçlı olmayan cihaz için işlev veya filtre sürücüsü Veri yolu cihazı için işlev sürücüsü (veri yolu FDO için) Veri yolu sürücüsü veya veri yolu filtresi sürücüsü (alt PPO'lar için)
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 İsteğe Bağlı veya Gerekli
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 Hayır veya İsteğe Bağlı
- 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) Belirli durumlarda gerekli veya isteğe bağlı. Daha fazla ayrıntı için IRP'nin başvuru sayfasına bakın.

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

(3) Windows'un Windows 7 ve sonraki sürümlerinde desteklenir.