Technical Document #98

Technical Document #98
Can I access the same device, simultaneously, from several WinDriver applications?

It is possible to create several WinDriver-based driver processes that will access the same card, although we do not recommend this and it should not generally be required.

Should you decide to implement such a design, consider the synchronization issues carefully. To bypass the synchronization problems, we recommend you use only one point of access to your hardware. Use a single process to directly access your hardware, while the other processes should access the hardware only via this process. The advantage of this design is that only one point requires synchronization.

Please note, however, that we will not be able to provide technical support relating specifically to the implementation of such designs and related problems (such as synchronization problems that might occur) and you should therefore carefully consider if this is indeed the desired design in your case.

For USB, note that while multiple calls to WDU_Init() for the same device may succeed, after the first attach callback accepts control of the device no other attach notifications will be received until WDU_Uninit() is called for the relevant WDU_Init() call. Using a single process to perform a single WDU_Init() call with a single attach callback function, as suggested above, will eliminate problems resulting from multiple WDU_Init() calls.
For PCI/PCMCIA/ISA, refer to Technical Document #21 for further information regarding the significance of multiple calls to the WD_CardRegister function.