- You need to access hardware from your application, or from several applications. Check out The WinDriver architecture.
- Notes:
- Choose WinDriver when possible. WinDriver requires no previous knowledge in driver development, DDK, or operating system internals.
- Writing your driver with WinDriver will enable it to be source code compatible between all major operating systems.
- WinDriver's Kernel PlugIn feature enables you to implement sections of your code directly in the kernel (ring 0) for optimal performance (for PCI/ISA).
- Examples:
- Controlling hardware through the Parallel Port.
- Controlling hardware through the Serial Ports.
- PCI IO Card Control.
- Digital / analog Input / Output.
- Data acquisition.
- Audio cards.
- Voice encoders / decoders.
- MPEG encoders/decoders.
- USB HID Devices.
- USB web cameras.
- USB scanners.
- Robotic and automation control.
- Controlling a PCI multi processor device.
WinDriver should be used whenever you need to access your hardware directly from your application(s). WinDriver also allows you to run performance critical parts of your code at Ring 0 (using the Kernel PlugIn feature) and thus to achieve optimal performance (for PCI/ISA).
Choose KernelDriver when:
- You need to write a "Standard" driver / Miniport driver. (e.g. NDIS, SCSI, Video, etc.)
- You need to write a "Filter" or "Layered" driver (i.e. a driver that communicates with other drivers)
- You need to write a driver that emulates an existing driver.
KernelDriver includes a wizard, which simplify the development process of full kernel mode drivers on all supported OSs for this tool-kit, and also includes wrapper C++ classes and samples for Windows NT 4.0.
- Examples:
- NDIS network device drivers.
- Serial port device drivers.
- Video Drivers.
- Keyboard Drivers.
- USB to Serial port driver.
- USB to NDIS driver.
- Hard Drive drivers.
- SCSI device drivers.
- Driver that encrypts / decrypts data passed to / from the hard drive.
- File filter drivers.
- Intermediate driver.
KernelDriver should be used whenever you need to write a kernel mode driver due to architectural reasons (Miniport drivers, Filters, etc...).
KernelDriver requires basic knowledge in the OS architecture for the target OS. On Windows you will also need Microsoft's DDK to develop the driver.
Choose HardwareDebugger when:
- You need to graphically diagnose / test new ISA, PCI, PCMCIA or USB hardware.
- You don't need to write a driver at this stage.
- Notes:
- The HardwareDebugger is included with WinDriver and KernelDriver.
- Examples:
- Bringing up new PCI or ISA hardware.
- Testing new USB devices.
- "Peeking" and "Poking" at memory or I/O.
- Listening to Interrupts.
- Use as an educational tool to learn about ISA / PCI / USB / PCMCIA busses.