In earlier Windows 95/98, the device driver was VxD (Virtual Device Driver), where X represents a certain type of device. Since Windows 2000, development of drivers must be based on WDM (Windows Driver Model). However, if DDK is used to develop WDM, it is difficult to develop it, it is not as easy as developing user-Mode Applications. Therefore, generally users use third-party tools such as WinDriver and DriverStudio. To improve this situation, Microsoft launched a new driver development environment WDF (Windows Driver
). The relationship between WDF and WDM is somewhat similar to that between MFC and Windows SDK. If you have programming experience, you can see why WDF development is easier than WDM. WDF has two modes: kmdf (kernel-mode driver) and umdf (User-Mode Driver:
1. Kernel Mode Driver kmdf (kernel-mode driver framework ):
These drivers are executed as part of the kernel-mode operating system components and manage I/O, Plug and Play, memory, processes and threads, and security. Kernel-mode drivers are generally layered. For more information about kmdf, see "getting started with kernel-mode driver framework" in msdn ".
2. User-mode driver framework ):
These drivers generally provide interfaces between Win32 applications and kernel-mode drivers or other operating system components. User-mode drivers support devices based on protocols or serial bus, such as cameras and portable music players. For more information about kmdf, see "Introduction to umdf" in msdn.
3. Both kernel-mode drivers and user-mode drivers are built in the same environment. This environment is called wdk. They are built using the same object model, use the same basic load, which is WDF. The WDF driver model provides an object-oriented and event-driven driver development framework, greatly reducing the development difficulty. From now on, developers who have mastered the drivers of Windows devices will change from "professional" to "common. Therefore, third-party tools such as WinDriver and DriverStudio also exit the historical stage.
4. kmdf is the underlying driver of the Windows system. The file name is :*. sys and Vista provide kmdf for more than 20 thousand peripherals, including USB. Therefore, for fx2 with USB, you only need to write umdf related to fx2. umdf is a user-layer driver, file Name :*. DLL.