On Windows 95, a 32-bit multithreaded driver will not work when a 16-bit application tries to use it. A 32-bit multithreaded driver will work, on the other hand, with a 32-bit application. The restriction on 16-bit applications occurs because Windows 95 does not support multiple threads within a 16-bit process space.
The options for driver writers are as follows:
1. Write a driver that is multithreaded when running in a 32-bit process space, but single-threaded when running in a 16-bit process space. This allows maximum interoperability and performance.
2. Write a multithreaded driver that does not work with 16-bit applications on Windows 95. The driver will have decreased interoperability, but will be simpler to write. A 16-bit driver can be written as well.
3. Write a single-threaded driver that works with either 16- or 32-bit applications on Windows 95. The driver will have maximum interoperability, but decreased performance.