Mulitple device adapter

  • Thread starter Thread starter John
  • Start date Start date
J

John

I have a device that has the capability of being two devices. XP will
only see one device. XP will show that the device has 4 baddrs.
However, the first 2 are for the main device and the last 2 are for
the secondary channel.

Here's my problem. How do I add the secondary device. In my Add Device
routine, I call IoCreateDevice to add the device and do the normal
IoAttachDeviceToDeviceStack() for the secondary.

During the Start Device process, I do what I have do to. ie load
firmware, Connect the Interrupt for both devices, create symbolic link
for both devices.

Everything looks ok, except that I can not open the secondary device.
I have no problems with the first.

Any idea? Or what would make XP not recognize the secondary channel
because I did create the device?

John
 
Thanks, I'll take a look the link

Registers are not shared. However, interrupts are. But I can modify
the ISR to determine which device is generating the interrupt and
process it accordingly.

John
 
If interrupts are shared write a simple bus driver, trying to hack something
is not worth it. If you use KMDF a bus driver is pretty easy, but right now
at least it cannot be used as a system install device (i.e. if you press F6
during XP install to add a driver this had better not be KMDF).


--
Don Burn (MVP, Windows DDK)
Windows 2k/XP/2k3 Filesystem and Driver Consulting
Website: http://www.windrvr.com
Blog: http://msmvps.com/blogs/WinDrvr
Remove StopSpam to reply
 
I woundn't begin to know how to write a bus driver.
I did find an example in, "Programming the Microsoft Windows Driver
Model" 2nd edition by Walter Oney. It has a chapter on how to
implement a multifunction device where it would treat the second
device as a child device of the primary. If this works, Interrupts can
be handle by the primary device, if the child device is generating
the interrupt.
 
Back
Top