Click here to learn
about this Sponsor:
Home  |  News  |  Articles  |  Polls  |  Forum  |  Directory

Keywords: Match:
Maximizing driver quality in Windows XP Embedded -- Part 1
by Nick Nehrhood [June 12, 2007]

Foreword: In this technical whitepaper, Windows XP Embedded team member Nick Nehrhood discusses a tool that helps developers assess the quality of device driver code. In Part 1, Nehrhood describes how to use the Verifier tool. Part 2, "coming soon," will discuss what to do when Verifer reports a problem.



Maximizing Driver Quality in Windows XP Embedded

Part 1: Using the Verifier Tool


by Nick Nehrhood

A question arose a few weeks back about how third parties can ensure that the drivers included in their Windows XP Embedded (XPe) runtime installation are of the highest quality. Considering that more than likely the people who are building a device are not the device driver developers or testers, it's an interesting topic to answer. There is, fortunately, a tool that Microsoft releases as a part of both the operating system and the Windows Driver Kit called Driver Verifier (I'll call this just "Verifier" from here on).

Verifier runs on the live installation of Windows on which the driver that you want to verify is installed. Verifier doesn't require the driver source code to perform its analysis.

Verifier.exe includes a GUI and command line utility to configure driver verification. Options are set in the registry at key HKLM\System\CurrentControlSet\Control\Session Manager\Memory Management in the values VerifyDriverLevel and VerifyDrivers. When Windows boots, the kernel's memory manager reads these options and applies the correct monitoring for the selected drivers.

The value VerifyDriverLevel contains a bitmask representing the verification types that were enabled and VerifyDrivers contains a space delimited list of the driver binaries to watch or an asterisk ('*') character if all drivers are chosen. Note that if you boot into Safe Mode the Verifier settings are ignored.

Unfortunately the Verifier.exe binary doesn't exist in the XPe database. You can get it by downloading the Windows Server 2003 Windows Driver Kit or from any XP Professional installation in the path %windir%\System32.

For all screen shots, click on the image for a larger view.

The first screen

The first screen you'll come to when launching Verifier.exe lets you choose one of the initial options. Choosing "Create standard settings" takes you to the Drivers screen below. If you choose "Create custom settings (for code developers)" you'll be taken to the following Settings screen.


Settings

This screen lets you select between predefined or individual settings. Selecting predefined settings takes you to the Drivers screen. Individual settings takes you to the following Individual Settings screen.


Individual Settings

Select individual settings here.


Drivers

After the settings are defined you now have to choose which drivers to verify. You have the choice of selecting all unsigned drivers, all drivers for older versions of Windows, all drivers, or finally you can select individual drivers from a list of installed drivers.


Individual Drivers

Choosing individual drivers brings up this screen. Otherwise you will skip this screen and go to the last screen that details what Verifier will do after the reboot.


The Summary Screen

This screen shows what settings will be in effect when the machine is rebooted.


You may be asking yourself "Ok that's fine, but how do I get anything useful from this utility?" I find that the most useful method is to use the kernel debugger. If Verifier finds anything it displayd the information there and/or causes a bugcheck with extra information if the issue is critical enough.

The other options, which I've never personally used, are to tell Verifier to output to a log file or to monitor counters. To read more about these other options check out this article. To read more about how to use a debugger then you can check out the Using a Debugger article.

There are two other articles worth taking a look at that describe in far greater detail how to use Verifier. The first is a MS Knowledge Base Article on using Verifier to troubleshoot Windows Drivers. The second is a MSDN Article on Driver Verifier which includes all of the parameters how-to, definitions for all options, etc.

Coming later will be Part 2 of this article, which addresses the other major scenario that's related to the one above -- how to improve driver quality when you do have source code access.


Copyright (c) 2007 Microsoft Corp. All rights reserved. Reproduced by WindowsForDevices.com with permission. This article was originally published on the Windows XP Embedded team blog here.



About the author: Nick Nehrhood's fascination with computers started at age 10 when his uncle showed him an Amiga. He is known as the "hardware guru" of the XP Embedded Team where he has been since 2001. Still a "child at heart," Nick's spare time interests include gaming, software development, and being a "Wikipedia addict."



Related stories:

(Click here for further information)


7 Advantages of D2D Backup
For decades, tape has been the backup medium of choice. But, now, disk-to-disk (D2D) backup is gaining in favor. Learn why you should make the move in this whitepaper.

4 Legal Reasons to Control Internet Access
The Internet is obviously a valuable resource for many organizations. However, many are exposed to legal liability concerns because they fail to control Internet access. Learn if you're safe in this white paper.

Rapidly Resolve J2EE Application Problems
Whether you are in the process of building J2EE applications or have J2EE applications already running in production, you must ensure that they deliver the expected ROI. Learn how in this white paper.

Load Testing 2.0 for Web 2.0
There are many unknowns in stress testing Web 2.0 applications. Find out how to test the performance of Web 2.0 in this white paper.

Build Better Games Online
For the game infrastructure providers, life is complex. Making money from games has become more complicated. Why? Find out in this white paper.

Building a Virtual Infrastructure from Servers to Storage
This white paper discusses the virtual storage solutions that reduce cost, increase storage utilization, and address the challenges of backing up and restoring Server environments.

Gaining Faster Wireless Connections with WiMAX
Welcome to what is quickly becoming the hyperconnected world where anything that would benefit from being connected to the network will be connected. Learn more in this white paper.

Is Your Desktop a Security Threat?
The new wave of sophisticated crimeware not only targets specific companies, but also targets desktops and laptops as backdoor entryways into those business’ operations and resources. Learn how to stay safe in this white paper.

Increasing SAN Reliability by 100 Percent
Storage area networks (SAN) are a strong part of storage plans. Learn how to increase your reliability and uptime by 100 percent in this case study.

 


Got a HOT tip?   please tell us!
Free weekly newsletter
Enter your email...
Click here for a profile of each sponsor:
PLATINUM SPONSORS
(Become a sponsor)

ADVERTISEMENT
(Advertise here)


Check out the latest Windows-powered...

mobile phones!

other cool
gadgets

HOT TOPICS
Microsoft targets PNDs with new embedded OS
Microsoft tips .NET MF 3.0 highlights
Microsoft previews Windows Embedded Standard
Microsoft offers free Windows CE 6.0 textbook
Microsoft renames embedded operating systems
Microsoft unveils Windows Mobile 6.1
New Atom models target low-cost PCs
REFERENCE GUIDES
Windows Device Showcase
Intro to Windows Embedded
Intro to Shared Source
Real-time Windows Embedded
Windows Embedded books
Join our Windows Embedded discussion forums:
Windows XP Embedded
Windows CE
Windows Mobile


Windows Embedded developer newsgroups
Windows CE
XP Embedded
PocketPC
Smartphone

Microsoft's Windows Embedded resources
Embedded dev center
Mobile dev center
Windows CE tutorials
XP Embedded tutorials
Windows Embedded seminars
Windows Embedded application categories
3rd-party partners


BREAKING NEWS

• Upated JVM supports Windows CE
• Windows Mobile 6.1 phone has GPS
• Windows CE thin client hides in wall sockets
• Portable spectrum analyzer runs Windows CE
• VoIP client gains add-ons, API
• Windows Mobile phone has dual active SIMs
• Access gives away Windows Mobile utilities
• Intel's Atom powers mini-ITX board
• Microsoft revamps Windows Mobile website
• Low-cost phone bundles IM client
• Pico-ITX board bears twins
• Microsoft details finalists in student competition
• Intrinsyc revs Windows CE-based software platform
• $300 mini-laptop runs Windows CE
• Microsoft releases server virtualization technology


MOST POPULAR (last 90 days)
Windows Mobile 6 SDKs available for download
Guide to HTC's Windows Mobile smartphone platforms
Microsoft unveils Windows Mobile 6.1
HTC announces unlocked Windows Mobile 6.1 phone
UMPC squeezes in optical drive
Running Windows Mobile 6.1 on your desktop computer
Microsoft releases Windows XP Service Pack 3
Mobile Firefox gets speedup, design tweaks
MOST POPULAR (Classics from the vault)
The Windows Mobile Phones Showcase
Windows XP Embedded USB boot
Troubleshooting Windows XPe's blue screen "Stop 0x0000007B" error
Asus reveals $190 mini notebook
HTC adds GPS to Windows Mobile Touch line
Windows Mobile VPN client plays with Cisco
Guide to HTC's Windows Mobile smartphone platforms
Customizing Windows XP Embedded thin clients
The Windows Mobile Pocket PCs Showcase

Also visit our sister sites:


Sign up for WindowsForDevices.com's...

news feed

Home  |  News  |  Articles  |  Polls  |  Forum  |  Directory  |  About  |  Contact
 

Ziff Davis Enterprise Home | Contact Us | Advertise | Link to Us | Reprints | Magazine Subscriptions | Newsletters
Tech RSS Feeds | White Papers | ROI Calculators | Tech Podcasts | Tech Video | VARs | Channel News

Baseline | Careers | Channel Insider | CIO Insight | DesktopLinux | DeviceForge | DevSource | eSeminars |
eWEEK | Enterprise Network Security | LinuxDevices | Linux Watch | Microsoft Watch | Mid-market | Networking | PDF Zone |
Publish | Security IT Hub | Strategic Partner | Web Buyer's Guide | Windows for Devices

Developer Shed | Dev Shed | ASP Free | Dev Articles | Dev Hardware | SEO Chat | Tutorialized | Scripts |
Code Walkers | Web Hosters | Dev Mechanic | Dev Archives | igrep

Use of this site is governed by our Terms of Service and Privacy Policy. Except where otherwise specified, the contents of this site are copyright © 1999-2008 Ziff Davis Enterprise Holdings Inc. All Rights Reserved. Reproduction in whole or in part in any form or medium without express written permission of Ziff Davis Enterprise is prohibited. Windows is a trademark or registered trademark of Microsoft Corporation in the United States and/or other countries and is used by WindowsForDevices under license from owner. All other marks are the property of their respective owners. WindowsForDevices is an independent publication not affiliated with Microsoft Corporation.