System Internals

The topics in this section describe system hardware, firmware, and driver design.

In this section

Topic Description

Advances in Memory Management for Windows

Microsoft has implemented major enhancements in memory management for Windows Vista and Windows Server 2008. This paper describes the changes that Microsoft has implemented internally in the operating system and provides guidelines for application developers, driver writers, and hardware vendors to take advantage of these advances.

Common-buffer DMA? No translation required!

In common-buffer DMA, the driver and the device share the same area of memory for data transfer. If your driver uses common-buffer DMA, allocating that common buffer requires only a call to AllocateCommonBuffer. Your driver doesn't need to allocate contiguous memory or translate physical to virtual addresses. In fact, it shouldn't.

Designing for 64-bit Windows

The 64-bit editions of the Microsoft Windows operating system support both workstation and server computers. Implementing hardware and firmware support for a 64-bit system requires special considerations that differ from 32-bit platform design. This topic describes the special considerations for firmware, hard disk partitions, and device drivers. This topic does not address processor-related issues.

Impact of Session 0 Isolation on Services and Drivers in Windows

Information about isolation of services in and exclusion of applications from Session 0 in Windows, with guidelines for modifying application services and driver services to run in Windows.

Kernel patch protection: frequently asked questions

Kernel patch protection in the x64-based versions of Microsoft Windows Server 2003 with Service Pack 1 (SP1), Microsoft Windows XP, and later versions of Microsoft Windows for x64-based systems protects code and critical structures in the Windows kernel from modification by unknown code or data. This topic answers frequently asked questions about kernel patch protection in Windows.

Machine.inf Update Submission Procedure

This paper provides information about the procedure for submitting changes to the Machine.inf file for inclusion certain releases of the Windows operating system. It provides guidelines for device and chipset manufacturers to submit their updates to Microsoft.

Memory Management: What Every Driver Writer Needs to Know

Information about allocating and using memory in kernel-mode drivers for the Windows family of operating systems

Memory Support and Windows Operating Systems

Operating systems based on Microsoft Windows NT technologies have always provided applications with a flat 32-bit virtual address space that describes 4 gigabytes (GB) of virtual memory. The address space is usually split so that 2 GB of address space is directly accessible to the application and the other 2 GB is only accessible to the Windows executive software.

The 32-bit versions of the Windows 2000 Advanced Server and Windows NT Server 4.0, Enterprise Edition, operating systems were the first versions of Windows to provide applications with a 3-GB flat virtual address space, with the kernel and executive components using only 1 GB. In response to customer requests, Microsoft has expanded the availability of this support to the 32-bit version of Windows XP Professional and all 32-bit versions of Windows Server 2003.

Operating Systems and PAE Support

Addressing physical memory above 4 GB requires more than the 32 bits of address offered by the standard operating mode of Intel (32-bit) processors. To this end, Intel introduced the 36-bit physical addressing mode called PAE, starting with the Intel Pentium Pro processor.

This article describes some techniques that Microsoft Windows operating systems and several UNIX operating systems use to provide support to applications using PAE mode addressing. Because processes running in these environments have 32-bit pointers, the operating system must manage and present PAE's 36 bits of address in such a way that the applications can practically use it. The key question is: how does the operating system solve this problem? The performance, functionality, simplicity of programming, and reliability of how these issues are handled will determine the usefulness of the large memory support.

Physical Address Extension - PAE Memory and Windows

PAE is an Intel-provided memory address extension that enables support of greater than 4 GB of physical memory for most 32-bit (IA-32) Intel Pentium Pro and later platforms. This article provides information to help device driver developers implement Windows drivers that support PAE.

Services in Windows

Information about changes to Windows services that were introduced in Windows Vista.

Summary of Windows Synchronization Primitives

Microsoft Windows supports numerous synchronization primitives, each of which has unique characteristics. In any situation, the best primitive to use depends on the operations that require synchronization.

This paper summarizes the synchronization primitives available to kernel-mode drivers for the Microsoft Windows family of operating systems.

Supporting Systems That Have More Than 64 Processors

Information for software developers about changes that some software requires to support more than 64 processors on the 64-bit versions of Windows 7.

Using a device object namespace instead of a bus driver

Suppose you're writing a driver for a device that contains several different kinds of sensors. You want to allow clients to open individual sensors and you want to give more than one client simultaneous access to a given sensor, but you want to avoid the complexity of writing a bus driver that exposes each sensor through Plug and Play.

Watchdog timer hardware requirements for Windows

This hardware reference specification is for engineers who design watchdog timer hardware to operate with the Microsoft Windows Server 2003 operating system.

Topic Description
Hardware Watchdog Timers Design Specification

This specification is for engineers who are designing watchdog timer (WDT) hardware that will operate with the Microsoft Windows hardware watchdog timer driver (hardware WDT driver).

The hardware WDT driver provides basic watchdog support to a hardware timer exposed by the Microsoft hardware watchdog timer resource table (WDAT). The WDAT is a fixed resource table, defined by the Advanced Configuration and Power Interface (ACPI) Specification, Version 2.0.

See also

Firmware and Boot Environment

Patching Policy for x64-Based Systems

Memory Management ( Windows ) - MSDN - Microsoft

PAE/NX/SSE2 Support Requirement Guide

Diagnosing memory problems on your computer

Windows ACPI design guide for SoC platforms

Acquiring high-resolution time stamps (Windows)

Peripheral Component Interconnect (PCI) Bus Drivers

Send comments about this topic to Microsoft