Windows Hardware Driver Central
This newsletter contains archived content. No warranty is made as to technical accuracy of content or currency of URLs.

The Microsoft Hardware Newsletter provides manufacturers and developers the latest technical details for how to succeed with the Windows platform. Stay up to date on beta and final product releases, and specifications for new technologies. Register now, if you're not already receiving the Microsoft Hardware Newsletter.
From the Editor
From the Editor  
When I first heard PREfast discussed in a WinHEC planning meeting, my mind drifted to what you use in the wash cycle to keep your favorite sweatshirt from dyeing your underwear pink. After I learned more (including to always italicize the "f"), the analogy remains apt: PREfast belongs in your development cycle--to be used long before you hang your code out to dry.
We have all heard stories from developers about some bug that eluded the most exhaustive testing, only to be found by an important client after the product shipped. Lately, the way the story goes is this: "And then I ran PREfast on my driver source code and found the bug we've been hunting for the last four years."
But we don't want you to be telling this common story. We want you to use PREfast as soon as possible in the life of your driver.
PREfast is a static analysis tool that you can run on your driver source code as soon as the code compiles. PREfast simulates execution of all possible code paths, even the obscure ones that execute only on the third Tuesday of the month if the moon is full, which can be darned hard to re-create with conventional test suites. And PREfast can check for a number of errors that are specific to Windows drivers.
To get started with the tool, read PREfast Step-by-Step for instructions, tips, and guidelines that will help you get the most out of PREfast during your development cycle. Then be sure to catch Static Analysis and Verification of Drivers and the WDF Tools Lab: PREfast for Drivers at Driver DevCon.
Still haven't registered for DevCon? If learning first-hand on live code about PREfast and other tools isn't enough to motivate you to register now, here are more good reasons.
WHDC after Dark: As usual, we claim no responsibility for what happens when your boss catches you clicking these links. We have our hands full explaining to our boss why we put them here.
Dedicated to the art of hurling: This website is special to us, as we have a few medievalists on staff. (They misunderstood the parts of the job description that asked for expertise in class drivers and a common written language that no one speaks.)
If you missed this while channel surfing: The non-classicists among us took up power-tool drag races as a peaceful break from writing about writing Windows drivers.
Radar love: you can drive 64: After racing our Wheel Standin' Weed Wackers, we paused to update the hour-by-hour agenda details for WinHEC and Driver DevCon.
Whichever event you choose, space is filling fast for WinHEC and Driver DevCon, so register now--we'll see you there next month!
Annie Pearson
for the WHDC team
Top

News for Kernel-Mode Developers
Good programming and testing techniques can help you prevent problems as well as find them. The following should be standard practices for all driver writers:
Always use pool tags when allocating memory. Driver Verifier, GFlags, PoolMon, and PoolTag use these tags to track pool allocations, and the debuggers display a buffer's tag along with its contents.
Validate the length of every buffer before accessing it.
Validate every user-space address by probing within an exception handler.
Check the returned status every time you try to allocate or access memory. Never assume that an operation cannot fail. If an error occurs, return a failure status from the driver or modify and retry the operation if appropriate. Remember: if an attempt to access memory fails because of an invalid pointer and your driver fails to catch the error when it occurs, the driver could propagate the addressing error, resulting in errors that appear much later and seem unrelated to the driver.
Always use Driver Verifier.
Test every driver on both single-processor and multiprocessor hardware. Because Windows treats hyper-threaded processors as two CPUs, you can perform minimal multiprocessor testing on a machine with a single hyper-threaded processor. In effect, a dual-processor hyper-threaded machine provides four processors and serves as better test system. The new multicore processors would be an even better test system than the hyper-threaded systems.
For more information about allocating and using memory in kernel-mode drivers, see Memory Management: What Every Driver Writer Needs to Know.
Top

Device Fundamentals Tips and News
WHDC has published a new document that presents programming guidelines and a set of reference pages for the Intel High Definition (HD) Audio device driver interface (DDI). Audio and modem drivers call the routines in this DDI to manage hardware codecs that are attached to an HD Audio bus interface controller.
In Windows codenamed "Longhorn," Microsoft intends to provide the following drivers as part of the operating system:
A bus driver for managing an HD Audio bus interface controller.
A Universal Audio Architecture (UAA) class driver for managing a UAA-compliant audio codec (or possibly more than one codec) that is connected to an HD Audio controller.
Microsoft also intends to develop a similar HD Audio bus driver and UAA class driver for systems that run Windows Server 2003, Windows XP, and Windows 2000. For information about the architecture of the HD Audio controller, see the Intel High Definition Audio Specification. For an overview of UAA, see Universal Audio Architecture.
The HD Audio bus driver implements the HD Audio DDI, which kernel-mode audio and modem drivers use to communicate with hardware codecs that are attached to the HD Audio controller. The HD Audio bus driver exposes the HD Audio DDI to its children, which are instances of the audio and modem drivers that manage the codecs.
Contrary to popular belief, Internet Protocol version 6 (IPv6)-capable devices, computers, and routers can provide users with virtually all the benefits of IPv6 without having to wait for Internet service provider (ISP) support for native IPv6 connectivity. This is possible through IPv6 transition technologies that support IPv6 communications over an Internet Protocol version 4 (IPv4) network infrastructure.
This article provides recommendations for an IPv6 feature set for home routers that are compatible with scenarios supported by the Microsoft Windows family of operating systems.
Top

System Fundamentals Tips and News
Designers, developers, and business planners are getting ready for Windows XP Professional x64 Edition and Windows Server 2003 x64 Editions. At WinHEC 2005, you can:
Learn about business opportunities with the 64-bit roadmap for Windows Server and Windows Client in the "Roadmap for Best Practices: How to Succeed with Windows" track.
Attend technical sessions outlining new 64-bit architectures and operating systems.
Get hands-on experience with new 64-bit hardware and software.
Get ready for the upcoming demand of 64-bit computing. Microsoft, Intel, and HP are joining to bring technical training to a city near you.
Download the trial software to receive the "release candidate 2" version of Windows Server 2003 Enterprise x64 Edition, which supports both AMD64 processors and Intel EM64T processors.
Top

Kits, Tools, Services, and Programs
Buy selected Microsoft Press books at Borders between now and April 4, 2005, and save up to 40 percent. Start by visiting the Borders website to find a Borders store near you. Many of these titles are of interest to driver developers and system designers.
Windows XP Service Pack 2 exposes compatibility issues in applications not seen previously. The Microsoft Application Compatibility Toolkit 4.0 provides methods and information to resolve the most commonly encountered application compatibility issues. It provides vital assistance to anyone deploying Windows XP SP2.
Top

Security and Reliability
The Microsoft Windows Malicious Software Removal Tool checks computers running Windows XP, Windows 2000, and Windows Server 2003 for infections by specific, prevalent malicious software--including Blaster, Sasser, and Mydoom--and helps remove any infection it finds. When detection and removal are complete, the tool displays a report describing the outcome, including which, if any, malicious software was detected and removed.
Security as a Life Cycle Issue: How best to implement an Application Security Assurance Program (ASAP).

Top

WHDC Events
We plan the WinHEC technical tracks around collections of related topics and issues. But some topics cut across the WinHEC tracks. To help you find information on other topics, we created "Virtual Track" lists:
Designing and Testing for 64-bit Computing: Everyone is raising the speed limit! Several sessions explore the technical and business issues for new client and server platforms running 64-bit editions of Windows operating systems, including roadmaps and business opportunities related to Windows 64-bit editions for both client and server.
Designing Server Systems: Many WinHEC sessions explore technical and business issues for server systems, especially the networking and storage aspects of server design and engineering.
Building Connected Devices: WinHEC offers the opportunity to explore specific technical aspects of PC-to-device connectivity and protocols, and related technical and business issues.
Designing and Building Mobile Systems: Many sessions focus on technical issues for mobile PCs, including Tablet PC issues. Other sessions explore related technical and business issues for mobility and mobile PC design.
Microsoft Programs and the Driver Life Cycle for Windows Longhorn: Several sessions at WinHEC discuss current program issues or preview proposed logo program requirements for Windows Longhorn.
Through Driver Install Frameworks tools and other advances, Microsoft is simplifying the ability to quickly create robust, flexible driver installation packages. Windows Driver Foundation (WDF) was designed to solve many driver development issues and simplify the driver development life cycle. The goal for WDF is to help driver developers create more stable and reliable drivers--and to help them do it easier and faster. Driver DevCon presents a host of technical sessions and hands-on labs to help you practice with and understand the value of these advances.
Top

e-communication logo image

Edition for
March 22, 2005
In This Issue:
From the Editor
News for Kernel-Mode Developers
Device Fundamentals Tips and News
Systems Fundamentals Tips and News
Kits, Tools, Services, and Programs
Security and Reliability
WHDC Events
DDK MVP Expert Zone
Events for Engineers and Developers
WinHEC 2005
April 25-27, 2005
Seattle, WA
Session details
Driver DevCon 2005
April 25-28, 2005
NDA-only, Seattle, WA
Session details
Mobile & Embedded DevCon 2005
May 9-12, 2005
Las Vegas, Nevada
WinHEC Taipei 2005
May 17-18, 2005
Taipei International Convention Center
Resources for Developers
Debugging Tools for Windows: v6.4.7.2
Which DDK and HCT to Use
KB Articles for the DDK
Events and Errors Message Center
Windows Logo Program System and Device Requirements v.3.0 - 0.5 Preview
Hardware Newsletter Archives
To cancel your subscription to this newsletter, reply to this message with the word UNSUBSCRIBE in the Subject line. You can also unsubscribe at the Microsoft.com website. You can manage all your Microsoft.com communication preferences at this site.

Legal Information.

This newsletter was sent by the Microsoft Corporation
One Microsoft Way
Redmond, Washington, USA
98052
Sign up for other newsletters | Unsubscribe | Update your profile
© 2005 Microsoft Corporation Terms of Use | Privacy Statement
Microsoft