Windows Device Driver Development
Contact us to discuss your device driver needs.
One of the most basic questions asked by hardware developers is, “what sort of drivers will I need to support my end users on a variety of Windows platforms?” It’s a surprisingly challenging question to answer. The legacy consumer versions of Windows (Windows 95 and Windows 98) use a combination of VxD and Drv style drivers. Development is awkward, often using assembly language in lieu of high level languages (which are generally easier to debug and maintain). To address these challenges, Microsoft introduced WDM; the Windows Driver Model. The WDM features a more modular style of layered drivers; it’s often possible to begin with Microsoft-supplied driver components and add or modify functionality through “filter drivers” which intercept data at strategic locations within the driver stack. One major complication is that WDM is still evolving. For example, WDM support in XP is substantially different than support under Windows 98 Second Edition, and the differences depend on the subsystem that one is discussing — audio, networking, etc. To further complicate matters, Windows NT, before it was merged with the consumer OS path to form XP, used yet another driver model. The NT Driver Model has much in common with WDM, but there are also some important differences.
Art & Logic has worked with all of these technologies. From the requirements gathering phase through the design phase we will work with you to establish the target platforms you need to support, then we will structure development to ensure compatibility with as many operating systems as possible. With a clear design we can minimize the amount of driver model-specific code that needs to be written, focusing on the unique functionality of your hardware. And when you’re ready to support Mac OS X, our modular design principles permit us to migrate as much code as possible without redesign.
Long-Term Technology Relationships
Art & Logic takes a flexible, long-term approach to technology and design decisions. We use our knowledge of most major software technologies to help you choose the best platform for your application. If the right tools don’t exist, we can build them from scratch or assemble pre-existing components.
Of course, your long-term support plans, existing systems, schedule, and budget weigh heavily into these decisions. We take the time to get to know our clients and the business requirements for their software.
Learn more about advice and planning.
For more information, contact:

Andrew Sherbrooke
Lead Engineer
Please use the become a client form to begin a discussion about your project.

