|
|
| This newsletter contains archived content. No warranty is made as to technical accuracy of content or currency of URLs.
UMDF Beta Release Now Available
|
Microsoft has released User-Mode Driver Framework (UMDF) Beta for Microsoft Windows XP Service Pack 2 as part of the Windows Driver Kit (WDK) beta on the Microsoft Connect Web site.
To join the beta program and download the UMDF 1.0 beta package:
| 1.
|
|
| 2.
|
In the left navigation bar, click Available Connections.
|
| 3.
|
Sign in to the Web site by using a Windows Live ID or Microsoft Passport account.
If you do not have an account, click Sign Up Now in the New to Microsoft Connect? box and follow the steps to create credentials.
|
| 4.
|
Scroll to Microsoft Windows Driver Kit (WDK) Beta Program and click Apply.
|
| 5.
|
Complete the Registration page and then click Register. You will be immediately accepted into the WDK beta program.
|
| 6.
|
Please respond to the WDK survey to help us understand your driver development and testing needs.
|
| 7.
|
In the Announcements box, click WDK and WDF Content.
|
| 8.
|
Click Downloads in the menu, and then download the UMDF items in the list.
|
You can also download the WDK at this time, if you do not already have the WDK installed.
About UMDF
UMDF supports the creation of user-mode drivers that support protocol-based or serial bus–based devices. Such drivers handle the same types of I/O requests as kernel-mode drivers and are installed by INF files, just as kernel-mode drivers are. Drivers that run in user mode have access only to the user address space and therefore pose a much lower risk to system security and stability than kernel-mode drivers.
You can also download these WinHEC 2006 presentations:
If you're new to WDF as a driver model, see "WDF at Microsoft" at the bottom of this newsletter for a quick peek at why developers are excited about this powerful new solution that simplifies the job of building reliable, secure drivers.
WDF Tips
When does EvtCleanupCallback run?
Kernel-Mode Driver Framework (KMDF) objects are organized hierarchically, and KMDF deletes objects in hierarchical order. Object deletion starts from the object farthest from the parent and works up the object hierarchy toward the root. This new tip describes how KMDF deletes an object and the ordering of calls to the EvtCleanupCallback routine. The guidelines for a KMDF developer include:
| • |
Do not set the WDFREQUEST object as a parent to any object that requires cleanup at PASSIVE_LEVEL.
|
| • |
Do not attempt to call methods on an object from its EvtDestroyCallback.
|
WDF at Microsoft
The Windows Driver Foundation (WDF) is Microsoft's strategy for addressing these design goals. WDF is a conceptual driver model that includes several components, including UMDF, KMDF, and the WDF Driver Verification Tools--PREfast (PFD) and Static Driver Verifier (SDV).
Every week, developers in the Windows Division are invited to nominate and vote on their favorite feature in Windows Vista. WDF components have been heavy hitters, winning a string of "awards" in the last few weeks. Microsoft developers are adopting the WDF frameworks and tools. This is what Microsoft developers say about these tools.
UMDF. "UMDF extends the Windows Driver Foundation, which greatly simplifies writing device drivers, to allow one to create device drivers that run in a user-mode service rather than in the kernel. In previous versions of Windows, driver quality directly impacted system quality because most device drivers were run as part of the kernel. UMDF allows drivers that don't need to be in the kernel to be pulled out and ensures that a user-mode driver cannot crash the operating system. When drivers do experience problems, UMDF will use Windows Error Reporting to report the problem and can check for a solution. User-mode drivers will have a direct impact on end users by reducing system crashes and improving the user's overall experience with respect to devices.
"But there are many benefits for driver developers as well. Because UMDF is based on the Windows Driver Foundation, developers get to concentrate on controlling their device rather than controlling the operating system, as was the case for old WDM drivers. Driver developers do not need to be skilled in kernel-mode development--there is no more concern about IRQL or paging. Many of the standard user-mode support libraries (CRT, ATL, STL, COM, RPC, and WinSock) are available for the developer to use. Finally because drivers run in their own host process, one can develop, deploy, debug, and repeat on a single system by using the user-mode debugger rather than the traditional two-system approach with its reboots and clean installs."
KMDF. "The KMDF team has done a remarkable job of turning driver development on its ear. Prior to KMDF, if you wanted to write a Windows Driver you had to write a huge piece of software to do even the most basic device tasks. With KMDF this is all changed--a basic driver can be less than 50 lines of code, and even complex drivers don't have to worry about the old Windows Driver Model."
PREfast for Drivers. "PREfast For Drivers has done an awesome job of finding the defects in the real Windows drivers. The team has been successful in detecting previous defects in the drivers and reporting them to the driver developers. This has increased the quality of Windows drivers and the way the operating system works. So my votes are all for PFD."
Static Driver Verifier. "SDV detects driver errors that other driver verification tools, including Driver Verifier and PREfast for Drivers, miss. In particular, SDV monitors calls to Windows interfaces for drivers and verifies that the driver conforms to the interface rules. This method detects some straightforward errors, like calling at the wrong IRQL, but it also detects very subtle errors, like calling functions in the wrong order or calling a function without setting a parameter that prevents a cancellation race."
|