Irps send to bus driver by PnP Manager

On WindowsXP using build 3615 of ddk. I installed the toaster bus driver
along with an upper bus filter.
When i run "enum -p 1 " following is the information i get on a windows
debugger.
My question is number of IRPs are send by PnP Manager to the device stack
during enumerating a device but why the
following IRPs are not seen by the upper bus filter driver, they are only
seen by the bus driver

following irps not seen by upper bus filter driver:
IRP_MN_QUERY_ID, IRP_MN_QUERY_DEVICE_TEXT, IRP_MN_QUERY_RESOURCES,
IRP_MN_QUERY_BUS_INFORMATION, IRP_MN_QUERY_RESOURCE_REQUIREMENTS

following are Windbg messages:
BusEnum.SYS: Create
BusEnum.SYS: PlugIn called
BusEnum.SYS: Exposing PDO
======SerialNo: 1
======HardwareId: Toaster\MsToaster
======Length: 19
BusEnum.SYS: FdoData->NextLowerDriver = 0x8131e570
filter.sys: FilterDO IRP_MN_QUERY_DEVICE_RELATIONS
IRP:0x81293ce0
BusEnum.SYS: FDO IRP_MN_QUERY_DEVICE_RELATIONS
IRP:0x81293ce0
QueryDeviceRelation Type: BusRelations
#PDOS present = 1
#PDOs reported = 1
BusEnum.SYS: PDO IRP_MN_QUERY_ID IRP: 0x81270370
QueryId Type: BusQueryDeviceID
BusEnum.SYS: PDO IRP_MN_QUERY_CAPABILITIES IRP: 0x81270370
filter.sys: FilterDO IRP_MN_QUERY_CAPABILITIES
IRP:0x81293ce0
BusEnum.SYS: FDO IRP_MN_QUERY_CAPABILITIES IRP:0x81293ce0
BusEnum.SYS: PDO IRP_MN_QUERY_DEVICE_TEXT IRP: 0x81270370
DeviceTextDescription :Microsoft_Eliyas_Toaster_01
BusEnum.SYS: PDO IRP_MN_QUERY_DEVICE_TEXT IRP: 0x81270370
DeviceTextLocationInformation: Unknown
BusEnum.SYS: PDO IRP_MN_QUERY_ID IRP: 0x81270370
QueryId Type: BusQueryInstanceID
InstanceID: 01
BusEnum.SYS: PDO IRP_MN_QUERY_ID IRP: 0x81270370
QueryId Type: BusQueryHardwareIDs
BusEnum.SYS: PDO IRP_MN_QUERY_ID IRP: 0x81270370
QueryId Type: BusQueryCompatibleIDs
BusEnum.SYS: PDO IRP_MN_QUERY_RESOURCE_REQUIREMENTS IRP:
0x81270370
BusEnum.SYS: PDO IRP_MN_QUERY_BUS_INFORMATION IRP:
0x81270370
BusEnum.SYS: PDO IRP_MN_QUERY_RESOURCES IRP: 0x81270370
BusEnum.SYS: Close

Irps send to bus driver by PnP Manager>following IRPs are not seen by
the upper bus filter driver, they are only seen by the bus driver

following irps not seen by upper bus filter driver:

Because they are sent before any stacks are assembled and any filters
and FDOs are attached.

Max

Thanks for the reply Maxim but I tend to disagree Bus filter driver can be
attached on the top of the bus driver even before any child device is
enumerated and following irps are send during a child device enumeration.

IRP_MN_QUERY_ID, IRP_MN_QUERY_DEVICE_TEXT, IRP_MN_QUERY_RESOURCES,
IRP_MN_QUERY_BUS_INFORMATION, IRP_MN_QUERY_RESOURCE_REQUIREMENTS

-----Original Message-----
From: Maxim S. Shatskih [mailto:xxxxx@storagecraft.com]
Sent: Friday, June 21, 2002 8:01 AM
To: NT Developers Interest List
Subject: [ntdev] Re: Irps send to bus driver by PnP Manager

Irps send to bus driver by PnP Manager>following IRPs are not seen by the
upper bus filter driver, they are only seen by the bus driver

following irps not seen by upper bus filter driver:

Because they are sent before any stacks are assembled and any filters and
FDOs are attached.

Max


You are currently subscribed to ntdev as: xxxxx@itronix.com
To unsubscribe send a blank email to %%email.unsub%%

> Thanks for the reply Maxim but I tend to disagree Bus filter driver
can be

attached on the top of the bus driver

Neither “UpperFilters” nor “LowerFilters” can be attached this way.
In fact, PnP needs IRP_MN_QUERY_ID results to decide what filters to
attach. :slight_smile:

Your statement is true only for bus filters which filter
MN_QUERY_RELATIONS way up and attach filters to all PDOs reported in
the relations IRP. This is possible, but not recommended by MS.

Max