Windows XP's second beta shows positive signs of being able to quickly ascertain device driver attributes and migrate device settings to the new operating systems' operation. Microsoft first introduced the Device Driver Verifier during Windows 2000, and has expanded on its functionality in the first two beta releases of Windows XP Professional. The intent of this article is to define how the Device Driver Verifier works, and what the implications are for Windows XP developers and users.
Responding to the problems with memory management on device driver installation and operation, Microsoft has chosen to architect the Device Driver Verifier to do the following:
It replaces the default operating system routines with routines that are specifically developed to catch mistakes.
It makes driver verifier functionality multithreaded, so that several device drivers can be monitored at the same time.
It has the design objective of targeting failures and corruption to device drivers before overall system integrity is affected.
Acting within the kernel mode, it can target specific device drivers for continual checking.
How the Device Driver Verifier Works
At the kernel mode of Windows XP, the Device Driver Verifier monitors device driver installation routines during installation to make sure that their respective system calls don't impede overall system performance. As was discussed in the article on Device Driver Rollback and the broader reliability features of Windows XP, the Device Driver Verifier completes this process of checking the validity and compatibility of drivers transparently to the user. Developing for Windows XP, many companies building device drivers with their applications will most likely opt for checking multiple drivers at once—a feature that is new to Windows XP's development environment.
Microsoft has isolated device drivers from memory used by typical application tasks, specifically by taking driver tasks away from the normal memory heap manager. Allocations of memory for the Driver Verifier and the resultant drivers it works with are driven through an allocation or special pool of memory. Also, to minimize conflicts over virtual addresses, Microsoft has increased the lag time between the use of virtual addresses overall. One of the other key design criteria with the Verifier is its capability to run in low-resource scenarios. Developers for the Windows XP platform, for example, can create simulated low-resource environments in which both random driver allocation and operating system functions fail. This will be especially useful for those companies targeting entry-level applications using the Windows XP Professional and Windows XP Home versions.