Hi,
I have one question about relation between creating child device in a
typical static bus driver.
I know one typical bus driver has 2 roles. In FDO role it enumerates child
devices
and create PDOs for it’s childs. I can’t understand when and where
Function drivers for child devices loaded and child devices can come into
existance?
When a bus driver creates a child PDO, that PDO is queried by the PnP
Manager for its device identification strings. That information is used by
the PnP Manager to find an existing function driver for that type of device
and load it (if it needs loading) and call its AddDevice interface to
establish the function driver relationship.
see IRP_MN_QUERY_ID.
Mark Roddy
On Mon, Sep 1, 2014 at 8:17 AM, elahe shekuhi wrote:
> Hi,
>
> I have one question about relation between creating child device in a
> typical static bus driver.
>
> I know one typical bus driver has 2 roles. In FDO role it enumerates
> child devices
> and create PDOs for it’s childs. I can’t understand when and where
> Function drivers for child devices loaded and child devices can come into
> existance?
>
>
>
>
> — NTDEV is sponsored by OSR Visit the list at:
> http://www.osronline.com/showlists.cfm?list=ntdev OSR is HIRING!! See
> http://www.osr.com/careers For our schedule of WDF, WDM, debugging and
> other seminars visit: http://www.osr.com/seminars To unsubscribe, visit
> the List Server section of OSR Online at
> http://www.osronline.com/page.cfm?name=ListServer
Thank you Mark for your attention.
I can’t understand how PnP manager load driver for child devices that have
been new discovered.
suppose driver name for bus is bus.sys and driver name for child device is
child.sys.
When bus driver creates one PDO for first new added child device, How PnP
Manager find child.sys, load and then call AddDevice routine?
On Mon, Sep 1, 2014 at 7:47 PM, Mark Roddy wrote:
> When a bus driver creates a child PDO, that PDO is queried by the PnP
> Manager for its device identification strings. That information is used by
> the PnP Manager to find an existing function driver for that type of device
> and load it (if it needs loading) and call its AddDevice interface to
> establish the function driver relationship.
>
> see IRP_MN_QUERY_ID.
>
>
> Mark Roddy
>
>
> On Mon, Sep 1, 2014 at 8:17 AM, elahe shekuhi wrote:
>
>> Hi,
>>
>> I have one question about relation between creating child device in a
>> typical static bus driver.
>>
>> I know one typical bus driver has 2 roles. In FDO role it enumerates
>> child devices
>> and create PDOs for it’s childs. I can’t understand when and where
>> Function drivers for child devices loaded and child devices can come into
>> existance?
>>
>>
>>
>>
>> — NTDEV is sponsored by OSR Visit the list at:
>> http://www.osronline.com/showlists.cfm?list=ntdev OSR is HIRING!! See
>> http://www.osr.com/careers For our schedule of WDF, WDM, debugging and
>> other seminars visit: http://www.osr.com/seminars To unsubscribe, visit
>> the List Server section of OSR Online at
>> http://www.osronline.com/page.cfm?name=ListServer
>
>
> — NTDEV is sponsored by OSR Visit the list at:
> http://www.osronline.com/showlists.cfm?list=ntdev OSR is HIRING!! See
> http://www.osr.com/careers For our schedule of WDF, WDM, debugging and
> other seminars visit: http://www.osr.com/seminars To unsubscribe, visit
> the List Server section of OSR Online at
> http://www.osronline.com/page.cfm?name=ListServer
The inf for child.sys will list the same hardware id that the bus driver reports for the pdo. The inf is processed, the driver is installed and then loaded.
d
Bent from my phone
From: elahe shekuhimailto:xxxxx
Sent: ?9/?2/?2014 1:29 AM
To: Windows System Software Devs Interest Listmailto:xxxxx
Subject: Re: [ntdev] Creating FDOs for child devices
Thank you Mark for your attention.
I can’t understand how PnP manager load driver for child devices that have been new discovered.
suppose driver name for bus is bus.sys and driver name for child device is child.sys.
When bus driver creates one PDO for first new added child device, How PnP Manager find child.sys, load and then call AddDevice routine?
On Mon, Sep 1, 2014 at 7:47 PM, Mark Roddy > wrote:
When a bus driver creates a child PDO, that PDO is queried by the PnP Manager for its device identification strings. That information is used by the PnP Manager to find an existing function driver for that type of device and load it (if it needs loading) and call its AddDevice interface to establish the function driver relationship.
see IRP_MN_QUERY_ID.
Mark Roddy
On Mon, Sep 1, 2014 at 8:17 AM, elahe shekuhi > wrote:
Hi,
I have one question about relation between creating child device in a typical static bus driver.
I know one typical bus driver has 2 roles. In FDO role it enumerates child devices
and create PDOs for it’s childs. I can’t understand when and where Function drivers for child devices loaded and child devices can come into existance?
— NTDEV is sponsored by OSR Visit the list at: http://www.osronline.com/showlists.cfm?list=ntdev OSR is HIRING!! See http://www.osr.com/careers For our schedule of WDF, WDM, debugging and other seminars visit: http://www.osr.com/seminars To unsubscribe, visit the List Server section of OSR Online at http://www.osronline.com/page.cfm?name=ListServer
— NTDEV is sponsored by OSR Visit the list at: http://www.osronline.com/showlists.cfm?list=ntdev OSR is HIRING!! See http://www.osr.com/careers For our schedule of WDF, WDM, debugging and other seminars visit: http://www.osr.com/seminars To unsubscribe, visit the List Server section of OSR Online at http://www.osronline.com/page.cfm?name=ListServer
— NTDEV is sponsored by OSR Visit the list at: http://www.osronline.com/showlists.cfm?list=ntdev OSR is HIRING!! See http://www.osr.com/careers For our schedule of WDF, WDM, debugging and other seminars visit: http://www.osr.com/seminars To unsubscribe, visit the List Server section of OSR Online at http://www.osronline.com/page.cfm?name=ListServer</mailto:xxxxx></mailto:xxxxx>
>When bus driver creates one PDO for first new added child device, How PnP Manager find
child.sys, load and then call AddDevice routine?
PnP sends QUERY_ID to the PDO.
PDO responds.
Then PnP uses the QUERY_ID result string to locate the device registry key.
If it is absent, or present but not populated - then PnP builds it, and, to do this, it invokes (via inverted call) the user-mode PnP service which does INF scanning to find the proper INF for the device, using the strings from QUERY_ID.
Then the device registry key is fully done (using the values from the INF), and PnP loads the proper driver and calls its AddDevice.
–
Maxim S. Shatskih
Microsoft MVP on File System And Storage
xxxxx@storagecraft.com
http://www.storagecraft.com
Thanks a lot friends for your attention.
On Tue, Sep 2, 2014 at 9:40 PM, Maxim S. Shatskih
wrote:
> >When bus driver creates one PDO for first new added child device, How PnP
> Manager find
> >child.sys, load and then call AddDevice routine?
>
> PnP sends QUERY_ID to the PDO.
>
> PDO responds.
>
> Then PnP uses the QUERY_ID result string to locate the device registry key.
>
> If it is absent, or present but not populated - then PnP builds it, and,
> to do this, it invokes (via inverted call) the user-mode PnP service which
> does INF scanning to find the proper INF for the device, using the strings
> from QUERY_ID.
>
> Then the device registry key is fully done (using the values from the
> INF), and PnP loads the proper driver and calls its AddDevice.
>
> –
> Maxim S. Shatskih
> Microsoft MVP on File System And Storage
> xxxxx@storagecraft.com
> http://www.storagecraft.com
>
>
> —
> NTDEV is sponsored by OSR
>
> Visit the list at: http://www.osronline.com/showlists.cfm?list=ntdev
>
> OSR is HIRING!! See http://www.osr.com/careers
>
> For our schedule of WDF, WDM, debugging and other seminars visit:
> http://www.osr.com/seminars
>
> To unsubscribe, visit the List Server section of OSR Online at
> http://www.osronline.com/page.cfm?name=ListServer
>