e-communication masthead image
e-communication logo image
Edition for
November 2, 2004
This newsletter contains archived content. No warranty is made as to technical accuracy of content or currency of URLs.

Multiprocessor Considerations for Kernel-Mode Drivers   

In the past, the typical Windows computer had only a single processor. Multiprocessor configurations could be found in high-end servers and computing-intensive labs, but such systems were the exception rather than the rule. As technology improves and prices decrease, desktop applications are becoming more CPU intensive, requiring processing power that only a few years ago was found mainly on servers and in labs.

Hyper-threaded processors, which Windows treats as two CPUs, are already becoming common in machines for home and desktop environments. Soon, most new computers will be multiprocessor systems. All new drivers must be designed and tested for such systems.

Because the Windows kernel is fully preemptible, writing drivers to run on multiprocessor systems is no different from writing drivers to run on single-processor systems. However, errors in synchronization and locking are more likely to occur on multiprocessor systems because code from a single driver can run simultaneously on more than one processor. A driver that has been tested and debugged on single-processor systems may fail when run on a multiple-processor system because of previously undetected bugs.

To write drivers that operate correctly on all Windows platforms, you should be familiar with the following:

  • Multiprocessor architectures that Windows supports
  • Simultaneous thread execution
  • Reentrancy and concurrency of standard driver routines
  • Driver synchronization requirements
  • Performance and scalability issues
  • Tools for testing on multiprocessor hardware

A new white paper from Microsoft guides you through the relevant issues and technical considerations for Windows drivers.

Multiprocessor Considerations for Kernel-Mode Drivers


News for Kernel-Mode Developers

Gearing Up for 64-bit Computing on Windows Server
The shift to mainstream 64-bit computing is underway. To help you gear up, Microsoft is hosting a series of live webcasts with technical experts at Microsoft. Upcoming Webcasts and archives of recent discussions are available on MSDN, including discussions about kernel-mode drivers and design and development issues for 64-bit.

64-bit Windows Computing on MSDN

What does DO_DEVICE_INITIALIZING really do?
When a device driver creates a device object by calling IoCreateDevice, the I/O manager sets DO_DEVICE_INITIALIZING in the Flags field of the DEVICE_OBJECT structure. The purpose of DO_DEVICE_INITIALIZING is to prevent other components from sending I/O to a device before the driver has finished initializing the device object. A new WHDC driver tip provides background informtion, guidelines, and sample code to help you understand why you should:

  • Clear the DO_DEVICE_INITIALIZING flag for any device objects your driver creates in routines other than DriverEntry (such as a Plug and Play driver's AddDevice routine).
  • Clear DO_DEVICE_INITIALIZING after initializing the device object and just before returning from the routine.

DO_DEVICE_INITIALIZING details and sample code

Windows Driver Foundation Beta Program Invitation
The Microsoft Windows Device Experience Group invites you to participate in the beta program for the Windows Driver Foundation.

Invitation and Introduction to WDF

Device-Class Tips & News

Media Transfer Protocol
The Media Transfer Protocol (MTP) facilitates communication between devices that connect to a computer or other host, exchange data, and then disconnect for standalone use. MTP also enables command and control of a connected device, including remote control of device functionality, monitoring of device-initiated events, and reading and setting of device properties. MTP was first shipped as part of the Microsoft Windows Media Device Manager 10 SDK.

MTP specification

MTP at WinHEC - Design issues, tools and resources for building and debugging MTP devices

More Device Fundamentals - Overview...

DDK MVP Highlight

Thomas Divine, DDK MVP, cites one of his favorites: NDIS Developer's Reference on ndis.com.

Kits, Tools, Services, and Programs

WHQL Test Specification for HCT 12.1
The revised Test Spec, for testing of Windows XP SP2 and Windows Server 2003 SP1, is available. The Test Spec defines what each test verifies in the Hardware Compatibility Test (HCT) kit.

Download WHQL Test Specification

Debugging Tools for Windows: New Beta Release
Beta versions of the 32-bit and 64=it debugging tools are available for download.

How to Install:

32-bit Beta Version 6.4.4.4

Native Itanium Beta and Native x64 Beta Version 6.4.4.4

Tips and Directions for Testing

Call Usage Verifier (CUV) is a driver development tool for Windows XP and later versions of Windows that you can use to find errors not detected by Driver Verifier and the checked build of Windows. CUV verifies parameters and tracks state for many commonly-used kernel-mode functions to detect driver errors related to initialization, consistent use of data structures, appropriate use of paged and nonpaged memory, and correct referencing of IRP stack locations. CUV is provided as a static library in the Windows 2003 Server SP1 Driver Development Kit (DDK). To use CUV, set the build environment variable VERIFIER_DDK_EXTENSIONS and build your driver, then run the driver with a kernel debugger attached. For thorough coverage, enable Driver Verifier and run the driver on the checked build of Windows.

Tools for Testing Drivers in the Windows DDK

More Tools for Testing and Tuning: Overview...

Security and Reliability

Windows Server Product Roadmap
Review the long-term product roadmap and philosophy for Windows Server, including the service packs, feature packs, update releases, and the next major release. Also, check the related details for the upcoming Windows Server 2003 x64 release.

Integrated Innovation for Windows Server

Windows Server 2003 x64

OEM Resources for Windows Server 2003

Install Critical Updates for Windows and Office

More Driver Security and Reliability...

What else is new on WHDC?

DDK MVP Expert Zone

Extreme MVP: If every driver writer would just...

Insights and Tips from DDK MVPs

WHDC Ask The Experts

Kernel Mode Drivers in Windows 64-bit Systems: Migration and Development
November 11, 2004
20:00-21:00 GMT

Details for WHDC Ask the Experts

See also Microsoft Storage Server Webcasts

Resources for Developers

Debugging Tools for Windows - Version 6.3.17.0

Which DDK and HCT to Use?

KB Articles for the DDK

Events and Errors Message Center

WinHEC and Driver DevCon

WinHEC US 2005
April 25-27, 2005
Washington State Convention and Trade Center

Driver DevCon 2005
April 25-28, 2005
NDA-only, Seattle Sheraton

WinHEC Taipei 2005
May 17-18, 2005
Taipei International Convention Center

Registration for these events begins in early 2005. To receive information about partner participation in November, please send e-mail to pavilion@microsoft.com.


To cancel your subscription to this newsletter, reply to this message with the word UNSUBSCRIBE in the Subject line. You can also unsubscribe at http://www.microsoft.com/misc/unsubscribe.htm. You can manage all your Microsoft.com communication preferences at this site.

 Legal Information.

This newsletter was sent by the Microsoft Corporation
1 Microsoft Way
Redmond, Washington, USA
98052

Sign up for other newsletters | Unsubscribe | Update your profile
© 2004 Microsoft Corporation Terms of Use | Privacy Statement
Microsoft