dynamic emuneration?

Hi all,

This may sound silly at this point, but I’m confused about dynamic
enumeration of devices found by a bus implementation. Specifically a
kmdf implementation using 7600.16385.

In the toaster bus (dynamic) sample, the bus driver wind up calling
BusDoStaticEnumeration() which searches the registry and does a
*PlugIn() for the children it finds.

In my case, my bus discovers child devices and now I need to make them
known to the system.

Is is simply a matter of calling my own *Plugin() method (similar to
toaster bus)? (this smells correct…)

If that is correct, do/should I still parse the registry as well?

I guess I’m also confused about the role of the registry and how that
is/was configured. How was that populated? by the .inx file of the
toaster bus?

Or the .inx file of the toaster func driver(s)? Both?

Obviously I’m missing some big pieces on how separate, but related
drivers get installed and configured. :slight_smile:

Pointers to documentation also appreciated.

Thanks,
-PWM

Please ignore this silly question. Too many hours staring at a screen,
mixed with a wee bit of panic. :slight_smile:

All I had to do was read a little bit…

Thanks,
-PWM

On Wed, 2009-11-11 at 00:15 +0000, Peter W. Morreale wrote:

Hi all,

This may sound silly at this point, but I’m confused about dynamic
enumeration of devices found by a bus implementation. Specifically a
kmdf implementation using 7600.16385.

In the toaster bus (dynamic) sample, the bus driver wind up calling
BusDoStaticEnumeration() which searches the registry and does a
*PlugIn() for the children it finds.

In my case, my bus discovers child devices and now I need to make them
known to the system.

Is is simply a matter of calling my own *Plugin() method (similar to
toaster bus)? (this smells correct…)

If that is correct, do/should I still parse the registry as well?

I guess I’m also confused about the role of the registry and how that
is/was configured. How was that populated? by the .inx file of the
toaster bus?

Or the .inx file of the toaster func driver(s)? Both?

Obviously I’m missing some big pieces on how separate, but related
drivers get installed and configured. :slight_smile:

Pointers to documentation also appreciated.

Thanks,
-PWM


NTDEV is sponsored by OSR

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

If you are not receiving events from the hw that would translate into child stacks being enumerated or removed, the backing store you use to “script” how your bus enumerates devices is purely up to you. You can script it via the registry, a txt file, an IOCTL, whatever your heart desires (within reason :slight_smile: ). Typically the INF itself does not lay down this information b/c it can change over time and if you touch an INF, you must resign the entire package. The toaster func driver does not write the values down b/c that would be the chicken before the egg, the toaster func driver’s INF is only applied once you have enumerated a child for it

hth
d

-----Original Message-----
From: xxxxx@lists.osr.com [mailto:xxxxx@lists.osr.com] On Behalf Of Peter W. Morreale
Sent: Tuesday, November 10, 2009 4:16 PM
To: Windows System Software Devs Interest List
Subject: [ntdev] dynamic emuneration?

Hi all,

This may sound silly at this point, but I’m confused about dynamic
enumeration of devices found by a bus implementation. Specifically a
kmdf implementation using 7600.16385.

In the toaster bus (dynamic) sample, the bus driver wind up calling
BusDoStaticEnumeration() which searches the registry and does a
*PlugIn() for the children it finds.

In my case, my bus discovers child devices and now I need to make them
known to the system.

Is is simply a matter of calling my own *Plugin() method (similar to
toaster bus)? (this smells correct…)

If that is correct, do/should I still parse the registry as well?

I guess I’m also confused about the role of the registry and how that
is/was configured. How was that populated? by the .inx file of the
toaster bus?

Or the .inx file of the toaster func driver(s)? Both?

Obviously I’m missing some big pieces on how separate, but related
drivers get installed and configured. :slight_smile:

Pointers to documentation also appreciated.

Thanks,
-PWM


NTDEV is sponsored by OSR

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