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
|
|
|
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.
Still haven't registered for DevCon? If learning first-hand on live code about PRE fast 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.)
|
Annie Pearson
for the WHDC team
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.
|
|
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.
|
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:
| • |
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.
|
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.
|
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).
|
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.
|
|