Diagnostics

Windows has APIs and services that support diagnostics in and of your desktop apps. They provide:

  • Debugging and error handling.
  • Support for profiling the performance of your apps.
  • Support for troubleshooting and error reporting.
  • System monitoring and event notification.
  • Network monitoring and diagnostics.
  • Assessment of system state.

In this section

Topic Description
Assessment Execution Engine
The Windows Assessment Execution Engine (AXE) enables the management and execution of Windows system assessments. Assessments can help a person understand the state of a system and remedy problems with performance, reliability, or functionality. AXE provides infrastructure needed to manage assessments using a UX tool or script, run assessments, make measurements, process raw data into results, run diagnostics, and publish the results.
Debugging and Error Handling
Describes debugging and error handling.
Hardware Counter Profiling
Applications use the Hardware Counter Profiling (HCP) SDK to capture thread profiling data such as cycle time and the reasons for context switches. You can also use HCP to capture counter data for hardware performance counters that you have configured on the system.
Network Diagnostics Framework
The Network Diagnostics Framework (NDF) provides a way for component and application developers to simplify network troubleshooting for users. Users can attempt to diagnose and repair a network problem using a single troubleshooting tool.
Network Monitor
Network Monitor captures network traffic for display and analysis. It enables you to perform tasks such as analyzing previously captured data in user-defined methods and extract data from defined protocol parsers.
Performance Counters
Counters are used to provide information as to how well the operating system or an application, service, or driver is performing. The counter data can help determine system bottlenecks and fine-tune system and application performance. The operating system, network, and devices provide counter data that an application can consume to provide users with a graphical view of how well the system is performing.
Performance Logs and Alerts
Performance Logs and Alerts (PLA) provides application programmers the ability to generate alert notifications based on performance counter thresholds. Programmers can also use PLA to query performance data, create event tracing sessions, capture a computer's configuration, and trace the API calls in some of the Win32 system DLLs.
Process Snapshotting
Process snapshotting enables you to capture process state, in part or whole. It is similar to the Tool Help API, but with one important advantage: it can efficiently capture the virtual address contents of a process using the Windows internal POSIX fork clone capability. The process snapshot can be dumped into a file using the MiniDumpWriteDump function.
Process Status API
The process status application programming interface (PSAPI) is a helper library that makes it easier for you to obtain information about processes and device drivers.
System Event Notification Service
Applications designed for use by mobile users require a unique set of connectivity functions and notifications. In the past these individual applications were required to implement these features internally. The System Event Notification Service (SENS) now provides these capabilities in the operating system, creating a uniform connectivity and notification interface for applications. Using SENS developers can determine connection bandwidth and latency information from within their application and optimize the application's operation based on those conditions.
System Monitor
System Monitor (SYSMON) is the application programming interface (API) that you use to configure the Microsoft System Monitor ActiveX control. The System Monitor control lets you view real-time and previously logged performance counter data such as memory, disk, and processor counter data.
Tool Help Library
The functions provided by the tool help library make it easier for you to obtain information about currently executing applications.
Windows Error Reporting
The error reporting feature enables users to notify Microsoft of application faults, kernel faults, unresponsive applications, and other application specific problems. Microsoft can use the error reporting feature to provide customers with troubleshooting information, solutions, or updates for their specific problems. Developers can use this infrastructure to receive information that can be used to improve their applications.
Windows Events
Describes event tracing and logging.
Windows Performance Analyzer (WPA)
Windows Performance Analyzer (WPA) is a set of performance monitoring tools used to produce in-depth performance profiles of Microsoft Windows operating systems and applications.
Windows Performance Toolkit (WPT)
The Windows Performance Toolkit consists of performance monitoring tools that produce in-depth performance profiles of Microsoft Windows operating systems and applications. This documentation discusses both Windows Performance Recorder (WPR) and Windows Performance Analyzer (WPA).
Windows Troubleshooting Platform
Windows Troubleshooting Platform (WTP) provides ISVs, OEMs, and administrators the ability to write troubleshooting packs that are used to discover and resolve issues found on the computer.