Prev: Identifying volume shadow copies from a minifilter driver
Next: implementation of call back in Driver
From: rf on 27 Jan 2010 12:54 Hello, is it possible to independently control multiple instances of a driver interface? I have an NDIS5 protocol driver that binds to multiple NDIS drivers. Using an interface that I register in the protocol driver, I want to notify my application of changes from ANY of the bound NDIS drivers. This works fine for a single binding. My problem is that IoSetDeviceInterfaceState does not differentiate between different instances of the interface that I've registered (via IoRegisterDeviceInterface). Currently, my protocol driver calls IoRegisterDeviceInterface for each NDIS driver to which it binds. The returned 'SymbolicLinkName' is indeed different for each binding. However, if I call IoSetDeviceInterfaceState on two different registered interaces, the calls seem to override one another. For example, if I try to ENABLE one instance of the interface and DISABLE another instance of the interface, my application only receives the DISABLE notification. If I ENABLE both instances, my application only receives one notification. I can see in the registry that there are in fact different instances registered below my interface GUID. My question is: can multiple instances of an interface be controlled independently? Thanks in advance, Rick
From: Doron Holan [MSFT] on 27 Jan 2010 18:09 you need to also pass a unique ReferenceString for each instnace if you are registering more than one instance of the same GUID d -- This posting is provided "AS IS" with no warranties, and confers no rights. "rf" <rf(a)discussions.microsoft.com> wrote in message news:DF003654-3FFA-40D1-A37A-C67CA439DFBF(a)microsoft.com... > Hello, is it possible to independently control multiple instances of a > driver > interface? > > I have an NDIS5 protocol driver that binds to multiple NDIS drivers. > Using > an interface that I register in the protocol driver, I want to notify my > application of changes from ANY of the bound NDIS drivers. This works > fine > for a single binding. > > My problem is that IoSetDeviceInterfaceState does not differentiate > between > different instances of the interface that I've registered (via > IoRegisterDeviceInterface). > > Currently, my protocol driver calls IoRegisterDeviceInterface for each > NDIS > driver to which it binds. The returned 'SymbolicLinkName' is indeed > different for each binding. However, if I call IoSetDeviceInterfaceState > on > two different registered interaces, the calls seem to override one > another. > For example, if I try to ENABLE one instance of the interface and DISABLE > another instance of the interface, my application only receives the > DISABLE > notification. If I ENABLE both instances, my application only receives > one > notification. > > I can see in the registry that there are in fact different instances > registered below my interface GUID. > > My question is: can multiple instances of an interface be controlled > independently? > > Thanks in advance, > Rick > >
From: rf on 28 Jan 2010 13:14
Thanks for the response; I thought that I had already tried that but I'll check it out and see if it helps. Rick "Doron Holan [MSFT]" wrote: > you need to also pass a unique ReferenceString for each instnace if you are > registering more than one instance of the same GUID > > d > > -- > > This posting is provided "AS IS" with no warranties, and confers no rights. > > > "rf" <rf(a)discussions.microsoft.com> wrote in message > news:DF003654-3FFA-40D1-A37A-C67CA439DFBF(a)microsoft.com... > > Hello, is it possible to independently control multiple instances of a > > driver > > interface? > > > > I have an NDIS5 protocol driver that binds to multiple NDIS drivers. > > Using > > an interface that I register in the protocol driver, I want to notify my > > application of changes from ANY of the bound NDIS drivers. This works > > fine > > for a single binding. > > > > My problem is that IoSetDeviceInterfaceState does not differentiate > > between > > different instances of the interface that I've registered (via > > IoRegisterDeviceInterface). > > > > Currently, my protocol driver calls IoRegisterDeviceInterface for each > > NDIS > > driver to which it binds. The returned 'SymbolicLinkName' is indeed > > different for each binding. However, if I call IoSetDeviceInterfaceState > > on > > two different registered interaces, the calls seem to override one > > another. > > For example, if I try to ENABLE one instance of the interface and DISABLE > > another instance of the interface, my application only receives the > > DISABLE > > notification. If I ENABLE both instances, my application only receives > > one > > notification. > > > > I can see in the registry that there are in fact different instances > > registered below my interface GUID. > > > > My question is: can multiple instances of an interface be controlled > > independently? > > > > Thanks in advance, > > Rick > > > > > . > |