Windows Device Driver Development
I am an independent software engineer specializing in Microsoft Windows device driver development.
My experience includes legacy drivers, Plug and Play drivers, drivers for PCI adapters, filter drivers for devices, and filter drivers for file systems. Many of my more recent projects have been filter drivers for the storage device class and filter drivers for the file systems. I have some hardware experience and I have used hardware ICE debuggers and JTAG equipment. I am not just a filter driver developer. I do understand hardware, the PCI specification and technology, protocol analyzers, and the like. I know what IRPs are and understand a thread’s context and even DMA transfers and MDLs
Over the more recent years I’ve implemented quite a few Microsoft Multi-path I/O (MPIO) Device Specific Modules (DSMs). I have worked extensively with Microsoft’s Vitrual Disk Service (VDS) APIs for applications and hardware providers. I have worked with Microsoft’s Volume Shadow-copy Service (VSS) APIs for applications, writers, and hardware providers.
I understand and use the Windows Logo Kit (WLK) for testing and certifying drivers. I also take driver verifier quite seriously as well as the new OACR (lint on steroids for driver developers). It is extremely important to write high quality device driver code. The legendary blue screen of death (BSOD) became a legend because of poor quality device driver code.
I have over 25 years of experience in the software industry. I am old enough to have developed MS-DOS© TSR (terminate and stay resident) and virtual device drivers (vxd’s) for Windows 3.11 (video cards and Ethernet adapters).
I have experience with most of the technologies of the Windows Driver Kit (the WDK, formerly known as the DDK) and I am quite familiar with the Windows kernel and the APIs available in kernel space.
I am always interested in new opportunities and enjoy working across the entire life-cycle of software products. I am happy to assist in everything from new driver development for a new hardware device to debugging and repairing existing drivers to porting driver code from legacy APIs to the Windows Device Frameworks (known as KMDF and UMDF).
If you need assistance with a driver or just need a driver for a specific purpose please contact me for more information and to talk openly regarding your needs. I’m always full of free opinions (well, you get what you pay for
) and always willing to properly protect your ideas and results (NDAs welcome).
If you have a need for my expertise please click here for more information.
Be well, do good work, and keep in touch,
Robert.
