Don, This is from the topic "Introduction to Device Interfaces": "Typically, drivers register for only one interface class. However, drivers for devices that have specialized functionality beyond that defined for their standard interface class might also register for an additional class."PortCls registers the standard interfaces and you'll be adding a registration for a custom interface. There is no conflict here as long as your handler passes all messages except the ones for your interface on to PortCls.
Tom Don Bell wrote:
On 4/10/07, Don Bell <0dbell@xxxxxxxxx> wrote:In a "low level" WDM driver, I would of course use IoRegisterDeviceInterface() to register the device interface. Thanks to the book that I have, I also know that it should be done *after creating* the device, but *before attaching* it to the device stack.No wonder I am so confused... The book indeed instructs for calling IoRegisterDeviceInterface() *before attaching* the device object to the device stack. However, the WDK documentation says: "After creating the device object **and attaching it** to the device stack, one driver calls IoRegisterDeviceInterface..." Well, now at least I know that I can afford calling IoRegisterDeviceInterface() after calling PcAddAdapterDevice(). However, I am still confused about the role of IoRegisterDeviceInterface() in the world of PortCls. I tried to document my qualms in microsoft.public.development.device.drivers: http://tinyurl.com/yqeway Many thanks, Don ****************** WDMAUDIODEV addresses: Post message: mailto:wdmaudiodev@xxxxxxxxxxxxx Subscribe: mailto:wdmaudiodev-request@xxxxxxxxxxxxx?subject=subscribeUnsubscribe: mailto:wdmaudiodev-request@xxxxxxxxxxxxx?subject=unsubscribeModerator: mailto:wdmaudiodev-moderators@xxxxxxxxxxxxx URL to WDMAUDIODEV page: http://www.wdmaudiodev.com/