Hi all
I’m writing a 1394 device driver and implemented until now only the
necessary stuff for a driver like the DriverEntry(), AddDevice(),
DriverUnload() and some Dispatch() routines and of course an inf file
with the device and vendor ID to recognize the device. That all works
like I expected if I plug and unplug my device on the 1394 bus. So far
so good for plugging in one device. If I now plug in a second device, I
expect that my AddDevice() routine should be called a second time now to
register a new device and create another device object with another
device extension. But instead of that, my PNP dispatch routine only
receives a PNP MN dispatch of 0x135? I have not a clue what this means,
and the AddDevice() routine is also not called. Do I understand anything
wrong how the sequence of loading a driver works? The two devices have
the same vendor and device ID so they should be recognized as the same
devices and therefore the same driver should be loaded, is that correct?
Thanks in advance for any help
Daniel
Little Correction: the PNP MN code is 135 (dec.) not 0x135 and therefore
0x87 and this means bus reset. That makes sense because the 1394 bus is
resetted if a new device is plugged in or out. But nevertheless, why is
AddDevice() not called?
Hallo,
I think I know the answer, because I had the same problem some time ago.
Each firewire device has a unique identifier (like the ethernet mac
address). The identifier is part of the device name, e.g.:
\?\1394#a35&1#ffffffff350a00#{…
In this example the identifier is 0xffffffff. So if your 2 devices are
completely identical, addDevice is called only once.
Uwe
Daniel Luethi wrote:
Hi all
I’m writing a 1394 device driver and implemented until now only the
necessary stuff for a driver like the DriverEntry(), AddDevice(),
DriverUnload() and some Dispatch() routines and of course an inf file
with the device and vendor ID to recognize the device. That all works
like I expected if I plug and unplug my device on the 1394 bus. So far
so good for plugging in one device. If I now plug in a second device,
I expect that my AddDevice() routine should be called a second time
now to register a new device and create another device object with
another device extension. But instead of that, my PNP dispatch routine
only receives a PNP MN dispatch of 0x135? I have not a clue what this
means, and the AddDevice() routine is also not called. Do I understand
anything wrong how the sequence of loading a driver works? The two
devices have the same vendor and device ID so they should be
recognized as the same devices and therefore the same driver should be
loaded, is that correct?
Thanks in advance for any help
Daniel
Questions? First check the Kernel Driver FAQ at
http://www.osronline.com/article.cfm?id=256
You are currently subscribed to ntdev as: xxxxx@gmx.de
To unsubscribe send a blank email to xxxxx@lists.osr.com
Dear Uwe
I think you could be right, they have indeed exactely the same number.
So it means I have to change this number, otherwise no chance to load
the driver twice, once for each device. Hmm…
uwe kirst wrote:
Hallo,
I think I know the answer, because I had the same problem some time ago.
Each firewire device has a unique identifier (like the ethernet mac
address). The identifier is part of the device name, e.g.:
\?\1394#a35&1#ffffffff350a00#{…
In this example the identifier is 0xffffffff. So if your 2 devices are
completely identical, addDevice is called only once.
Uwe
Daniel Luethi wrote:
> Hi all
>
> I’m writing a 1394 device driver and implemented until now only the
> necessary stuff for a driver like the DriverEntry(), AddDevice(),
> DriverUnload() and some Dispatch() routines and of course an inf file
> with the device and vendor ID to recognize the device. That all works
> like I expected if I plug and unplug my device on the 1394 bus. So far
> so good for plugging in one device. If I now plug in a second device,
> I expect that my AddDevice() routine should be called a second time
> now to register a new device and create another device object with
> another device extension. But instead of that, my PNP dispatch routine
> only receives a PNP MN dispatch of 0x135? I have not a clue what this
> means, and the AddDevice() routine is also not called. Do I understand
> anything wrong how the sequence of loading a driver works? The two
> devices have the same vendor and device ID so they should be
> recognized as the same devices and therefore the same driver should be
> loaded, is that correct?
>
> Thanks in advance for any help
> Daniel
>
>
> —
> Questions? First check the Kernel Driver FAQ at
> http://www.osronline.com/article.cfm?id=256
>
> You are currently subscribed to ntdev as: xxxxx@gmx.de
> To unsubscribe send a blank email to xxxxx@lists.osr.com
>
>