|
Microsoft Analysis Tools for Enhancing Windows Driver Performance
Performance analysis tools track driver activities and return data that Windows driver developers and other software developers can use to track down the inefficiencies in your code. They can also help find interactions between driver and other system components that might affect performance. Microsoft offers, at no charge, the following performance analysis tools that can help you develop and test a high-performance Windows device driver:
- Perfmon (perfmon.exe), available in Microsoft® Windows® XP or Microsoft Windows ServerTM 2003, is a tool that monitors and logs any of the processes running on your computer you specify in real-time. Use Perfmon to gather general performance data. Perfmon is GUI-based but can be started by typing Perfmon at a command prompt.
- Kernrate (kernrate.exe), available as part of Microsoft Windows 2003 Resource Kit Tools, is a tool that tracks CPU utilization. Download the Microsoft Windows 2003 Resource Kit Tools (a single 12 MB file) at:
http://www.microsoft.com/downloads/details.aspx?FamilyID=9D467A69-57FF-4AE7-96EE-B18C4790CFFD&displaylang=en
- The Kernrate Viewer (KrView), available as a download from the Microsoft WHDC Web site, transfers data from Kernrate into an easily viewable Microsoft Office Excel format. Download KrView at:
http://www.microsoft.com/whdc/hwdev/resources/ HWservices/krview.mspx
Send your feedback or suggestions to krview@microsoft.com.
- Event Tracing for Windows (ETW), available in the Microsoft Platform Software Development Kit (SDK), tracks driver-defined activities. For more information on ETW, see the white paper "Enabling Drivers with Event Tracing for Windows" at:
http://www.microsoft.com/whdc/hwdev/driver/ EventTrace.mspx.
- The Windows software trace preprocessor (WPP), available in the Microsoft Windows Server 2003 Driver Development Kit (DDK) logs driver data in the event tracing log. Details on using WPP are available in the tracedrv sample (src\general\tracedrv) in the Windows DDK.
Also consider using bus analyzers to monitor bus activity. Bus analyzers are hardware devices that capture and analyze I/O activity between your device and the operating system. Analyzers for standard buses such as PCI and USB can be obtained from several manufacturers.
Debugging Tools for Windows Version 6.3.11 Beta Available
The Microsoft Debugging Tools for Windows version 6.3.11 beta supports debugging user-mode and kernel-mode applications, services, and device drivers for all Microsoft Windows NT®-based operating systems, including the next generation of Microsoft Windows, codenamed "Longhorn." Debugging Tools for Windows contains the newest beta versions of Microsoft Windows Debugger (WinDbg), CDB, NTSD, KD, and many other tools.
WinDbg uses a graphical user interface (GUI) and provides source-level debugging for the Windows kernel, kernel-mode drivers, and system services, as well as for user-mode applications and drivers. Based on customer feedback, the latest beta version of WinDbg features a user-customizable GUI. With WinDbg, developers can view source code, set breakpoints, view variables (including C++ objects), and view stack traces. The other debugging tools (CDB, NTSD, and KD) are all console-based debuggers.
Debugging Tools for Windows 6.3.11 features an improved user interface
Some of the enhancements made to Debugging Tools for Windows since version 6.3.5 include:
- Support for the next generation of Microsoft Windows, codenamed "Longhorn"
- New user interface (UI) management capabilities in WinDbg
- Internal debugger support for Unicode
- Numerous !analyze improvements
- Fixed symbol server problems using certain firewall products
- Greatly improved extension interface documentation (debugext.chm)
- Numerous bug fixes to various commands and extensions based on customer feedback
For the complete list of enhancements, see the What's New for Debugging Tools for Windows Web site at:
http://www.microsoft.com/whdc/ddk/debugging/ whatsnew.mspx
Choosing between 32-bit or 64-bit beta versions
The Debugging Tools for Windows version 6.3.11 beta is available in a 32-bit version for x86 binaries, a 64-bit version for Itanium binaries, and a 64-bit version for AMD64 binaries.
The 32-bit beta package is sufficient for most debugging scenarios with x86 host machines, even when the target machine contains a 64-bit processor. For example, when you perform kernel debugging of an AMD64 target machine from an x86 host machine, you must use the 32-bit beta package. If you have a system with a 64-bit processor and you are debugging an application on it, you must use the native 64-bit package. For more information about the native 64-bit beta package, see the Debugging Tools for Windows Native 64-bit Versions Web site at:
http://www.microsoft.com/whdc/ddk/debugging/ default64bit.mspx.
Call to Action
Download and use the latest beta version of Debugging Tools for Windows to debug your device drivers under these Microsoft operating systems:
- Preview version (pre-alpha) of Microsoft Windows codenamed "Longhorn" available to MSDN® subscribers and provided to attendees of the Microsoft Professional Developers Conference (PDC 2003)
- Microsoft Windows Server 2003 (32-bit or 64-bit)
- Microsoft Windows XP (32-bit or 64-bit)
- Microsoft Windows 2000
- Windows NT 4.0
Note: This beta version of Debugging Tools for Windows requires Microsoft Internet Explorer 5.0 or later and up to 20 MB of hard-disk space for installation.
Windows NT 4.0 users must update their Windows Installer to version 1.1.
To install the Windows Installer v1.1, visit:
http://msdl.microsoft.com/download/symbols/debuggers/ setup/instmsi.exe.
To download Debugging Tools for Windows Beta Version 6.3.11, visit:
http://www.microsoft.com/whdc/ddk/ debugging/default.mspx.
For help with debugging issues, see the article "How to Obtain Support for Windows Driver Development" in this newsletter.
To provide feedback about this beta version of Debugging Tools for Windows, send an e-mail message to:
windbgfb@microsoft.com.
Note: Requests for technical support sent to the windbgfb@microsoft.com address will not be answered.
How to Obtain Support for Windows Driver Development
Microsoft has several product support resources available for Microsoft Windows driver developers using the Windows Driver Development Kit (DDK):
- Microsoft Knowledge Base (KB) articles on Microsoft Help and Support
- Public newsgroups monitored by Microsoft professionals
- Fee-based consultation from Microsoft Product Support Services
Searching the Microsoft Knowledge Base for driver-related support
Microsoft Help and Support maintains a database of technical articles written by Microsoft Product Support experts covering known issues with Microsoft products and their fixes. Driver developers should consult the Microsoft Knowledge Base when an error occurs during the development or testing of their code to see if it is a known issue and the related fix.
To search the Knowledge Base:
- Visit http://support.microsoft.com/default.aspx.
- On the Welcome page, click the Search the Knowledge Base link.
- Select your version of Windows from the Select a Microsoft Product drop down box.
Note: Selecting the latest version of Windows will often result in KB articles that apply to previous versions of Windows. For example, selecting "Microsoft Windows Server 2003" may contain information on issues related to Microsoft Windows XP and/or Microsoft Windows 2000.
- Enter the keywords that describe your issue in the Search for… field.
Tip: Avoid asking a question like why does my server crash and only enter the words that describe the issue or exact error message.
- Narrow your search by specifying the options available in the Using, Search Type, and Date Range fields.
- Click the Go button to begin your search.
To browse a list of KB articles that apply to general Windows driver development, including known bugs and how-to articles, enter these keywords in the Search for… field:
Tip: Combining these keywords with specific nouns like "driver," "1394," and "isoch" will further narrow your search.
Using Microsoft-monitored public newsgroups
Specific questions about Windows driver development can often be answered by developers that have experienced similar challenges. Microsoft driver developers, testing professionals, and Windows DDK support professionals participate in these public newsgroups:
news://msnews.microsoft.com/microsoft.public.development. device.drivers
news://microsoft.public.win32.programmer.kernel
news://msnews.microsoft.com/microsoft.public.windbg
In addition to these Microsoft-monitored public newsgroups, driver developers are encouraged to post questions in the numerous third-party newsgroups and list servers on driver development available on the Internet. For example, Open System Resources (OSR), Inc. hosts three e-mail lists for driver developers:
- NTDEV: Dedicated to the design, implementation, maintenance, and support of Windows kernel-mode drivers
- NTFSD: For developers of Windows file system or file system filter drivers
- WINDBG: Discusses issues, best practices, and tips for debugging Windows drivers
For instructions on how to participate in OSR-hosted list servers, visit:
http://www.osronline.com/page.cfm?name=ListServer
Fee-based consultation from Microsoft Product Support Services
If your issue cannot be resolved using the previously mentioned resources, you may wish to contact Microsoft Product Support Services. Fee-based support options ranging from pay-per-incident to hourly consulting are available for the Windows operating system, Windows driver development, and the use of the Windows DDK.
Driver developers may only receive support for supported Windows operating systems and their related DDKs. For example, a driver developer cannot receive support from Microsoft when using the Windows 98 DDK to write drivers for unsupported legacy operating systems like Microsoft Windows 95.
For current information on supported versions of Windows, see:
http://microsoft.com/lifecycle.
Contract-based consultation from Microsoft Product Support Services
Driver development support is also available through Microsoft Support contracts. Depending on the Microsoft operating system you purchased and for which you are developing drivers, a support contract may allow for support on a per-incident incident and/or consulting basis, such as "how to" or issues involving significant debugging.
What Windows DDK Should I Use?
|
If you write drivers for this operating system…
|
Use this Windows DDK
|
Use this Hardware Compatibility Test (HCT) Kit
|
|
Windows Server 2003
(AMD64)
|
Windows Server 2003
Service Pack 1 DDK (Currently in unsupported beta and available only to MSDN
subscribers)
|
HCT 12 (Currently in
unsupported beta and available only to MSDN subscribers)
|
|
Windows Server 2003
family (x86 and Intel Itanium)
|
Windows Server 2003 DDK
|
HCT 11.2
|
|
Windows XP Family
|
Windows Server 2003 DDK
|
HCT 11.2
|
|
Windows Millennium
Edition
|
Windows XP SP1 DDK
(Available to MSDN subscribers in the archives at MSDN Subscriber Downloads)
|
HCT 9.6
(This product has been discontinued and is unsupported)
|
|
Windows 2000 Family
|
Windows Server 2003 DDK
|
HCT 11.2
|
|
Windows 98 Second Edition
|
Windows 98 DDK (Available
to MSDN subscribers in the archives at MSDN Subscriber Downloads)
|
HCT 9.502
(Download from related the Device
Testing or System
Testing Web page)
|
|
Microsoft Windows NT
Workstation
(Unsupported)
Microsoft Windows NT 4.0
Server
|
Windows NT 4.0 DDK (Available
to MSDN subscribers in the archives at MSDN Subscriber Downloads)
|
HCT 9.502
(Download from related the Device
Testing or System
Testing Web page)
|
Note: To install the HCT 9.502 updates, you must have HCT 9.5 installed (available as a 140 MB download) at:
http://download.microsoft.com/download/ whistler/Tools/Tools/W98NT42KMeXP/EN-US/hct19991122.exe.
To obtain help for driver development efforts related to a supported Microsoft Windows operating system and its corresponding DDK, contact Microsoft Product Support Services. For a list of available Microsoft Product Support options and their prices, visit:
http://support.microsoft.com/default.aspx? scid=fh;en-us;Prodoffer11a&sd=GN.
Come Together at WinHEC 2004
WinHEC is the single opportunity each year for the industry to come together on critical technology issues and future directions for Windows, and to interact with Microsoft engineers and other industry leaders.
At WinHEC 2004 in Seattle, Microsoft Chairman and Chief Software Architect Bill Gates will present the opening keynote about Microsoft investments and industry opportunities for the Microsoft Windows platform.
WinHEC 2004 features a wide range of technical sessions and driver development seminars.
- More sessions and an additional day, with deeper technical content for engineers and developers-at 2003 registration costs!
- A new track especially for product planners and decision makers
- Expanded "Ask the Experts" and "Birds of a Feather" discussions, offering opportunities to get answers to your toughest questions
Register before March 22 and save $300!
For more information on the conference and instructions for registering, see:
http://www.microsoft.com/whdc/winhec
|