# Technical features new to Windows Vista

Windows Vista (formerly codenamed Windows "Longhorn") has many significant new features compared with previous Microsoft Windows versions, covering most aspects of the operating system.
In addition to the new user interface, security capabilities, and developer technologies, several major components of the core operating system were redesigned, most notably the audio, print, display, and networking subsystems; while the results of this work will be visible to software developers, end-users will only see what appear to be evolutionary changes in the user interface.
As part of the redesign of the networking architecture, IPv6 has been incorporated into the operating system, and a number of performance improvements have been introduced, such as TCP window scaling. Prior versions of Windows typically needed third-party wireless networking software to work properly; this is no longer the case with Windows Vista, as it includes comprehensive wireless networking support.
For graphics, Windows Vista introduces a new as well as major revisions to Direct3D. The new display driver model facilitates the new Desktop Window Manager, which provides the tearing-free desktop and special effects that are the cornerstones of the Windows Aero graphical user interface. The new display driver model is also able to offload rudimentary tasks to the GPU, allow users to install drivers without requiring a system reboot, and seamlessly recover from rare driver errors due to illegal application behavior.
At the core of the operating system, many improvements have been made to the memory manager, process scheduler, heap manager, and I/O scheduler. A Kernel Transaction Manager has been implemented that can be used by data persistence services to enable atomic transactions. The service is being used to give applications the ability to work with the file system and registry using atomic transaction operations.

## Audio

Windows Vista features a completely re-written audio stack designed to provide low-latency 32-bit floating point audio, higher-quality digital signal processing, bit-for-bit sample level accuracy, up to 144 dB of dynamic range and new audio APIs created by a team including Steve Ball and Larry Osterman. The new audio stack runs at user level, thus reducing impact on system stability. Also, the new Universal Audio Architecture (UAA) model has been introduced, replacing WDM audio, which allows compliant audio hardware to automatically work under Windows without needing device drivers from the audio hardware vendor.
There are three major APIs in the Windows Vista audio architecture:
* Windows Audio Session API – Very low-level API for rendering audio, render/capture audio streams, adjust volume etc. This API also provides low latency for audio professionals through WaveRT (wave real-time) port driver.
* Multimedia Device API – For enumerating and managing audio endpoints.
* Device Topology API – For discovering the internals of an audio card's topology.

### Audio stack architecture

Applications communicate with the audio driver through Sessions, and these Sessions are programmed through the Windows Audio Session API (WASAPI). In general, WASAPI operates in two modes. In exclusive mode (also called DMA mode), unmixed audio streams are rendered directly to the audio adapter and no other application's audio will play and signal processing has no effect. Exclusive mode is useful for applications that demand the least amount of intermediate processing of the audio data or those that want to output compressed audio data such as Dolby Digital, DTS or WMA Pro over S/PDIF. WASAPI exclusive mode is similar to kernel streaming in function, but no kernel mode programming is required. In shared mode, audio streams are rendered by the application and optionally applied per-stream audio effects known as Local Effects (LFX) (such as per-session volume control). Then the streams are mixed by the global audio engine, where a set of global audio effects (GFX) may be applied. Finally, they're rendered on the audio device.
After passing through WASAPI, all host-based audio processing, including custom audio processing, can take place. Host-based processing modules are referred to as Audio Processing Objects, or APOs. All these components operate in user mode, only the audio driver runs in kernel mode.
The Windows Kernel Mixer (KMixer) is completely gone. DirectSound and MME are emulated as Session instances rather than being directly connected to the audio driver. This does have the effect of preventing DirectSound from being hardware-accelerated, and completely removes support for DirectSound3D and EAX extensions, however APIs such as ASIO and OpenAL are not affected.

### Audio performance

Windows Vista also includes a new Multimedia Class Scheduler Service (MMCSS) that allows multimedia applications to register their time-critical processing to run at an elevated thread priority, thus ensuring prioritized access to CPU resources for time-sensitive DSP processing and mixing tasks.
For audio professionals, a new WaveRT port driver has been introduced that strives to achieve real-time performance by using the multimedia class scheduler and supports audio applications that reduce the latency of audio streams. All the existing audio APIs have been re-plumbed and emulated to use these APIs internally, all audio goes through these three APIs, so that most applications "just work".

#### Issues

A fault in the MME WaveIn/WaveOut emulation was introduced in Windows Vista: if sample rate conversion is needed, audible noise is sometimes introduced, such as when playing audio in a web browser that uses these APIs. This is because the internal resampler, which is no longer configurable, defaults to linear interpolation, which was the lowest-quality conversion mode that could be set in previous versions of Windows. The resampler can be set to a high-quality mode via a hotfix for Windows 7 and Windows Server 2008 R2 only.

### Audio signal processing

New digital signal processing functionalities such as Room Correction, Bass Management, Loudness Equalization and Speaker Fill have been introduced. These adapt and modify an audio signal to take best advantage of the speaker configuration a given system has. Windows Vista also includes the ability to calibrate speakers to a given room's acoustics automatically using a software wizard.
Windows Vista also includes the ability for audio drivers to include custom DSP effects, which are presented to the user through user-mode System Effect Audio Processing Objects (sAPOs). These sAPOs are also reusable by third-party software.

### Audio devices support

Windows Vista builds on the Universal Audio Architecture, a new class driver definition that aims to reduce the need for third-party drivers, and to increase the overall stability and reliability of audio in Windows.
* Support for Intel High Definition Audio devices (which replaces Intel's previous AC'97 audio hardware standard)
* Extended support for USB audio devices:
** Built-in decoding of padded AC-3 (Dolby Digital), MP3, WMA and WMA Pro streams and outputting as S/PDIF.
** Support for MIDI "Elements".
** New support for asynchronous endpoints.
* IEEE 1394 (aka FireWire) audio support was slated for a future release of Windows Vista, to be implemented as a full class driver, automatically supporting IEEE 1394 AV/C audio devices.
* Support for audio jack sensing which can detect the audio devices that are plugged into the various audio jacks on a device and inform the user about their configuration.
* Endpoint Discovery and Abstraction: Audio devices are expressed in terms of audio endpoints such as microphones, speakers, headphones. For example, each recording input (Microphone, Line in etc.) is treated as a separate device, which allows recording from both at the same time.

### Other audio enhancements

* A new set of user interface sounds have been introduced, including a new startup sound created with the help of King Crimson's Robert Fripp. The new sounds are intended to complement the Windows Aero graphical user interface, with the new startup sound consisting of two parallel melodies that are played in an intentional "Win-dows Vis-ta" rhythm. According to Jim Allchin, the new sounds are intended to be gentler and softer than the sounds used in previous versions of Windows.
* The new Volume Mixer displays a percentage value showing the current system volume while the volume level is being changed. Previous versions of Windows only displayed a volume meter.
* Windows Vista also allows controlling system-wide volume or volume of individual audio devices and individual applications separately. This feature can be used from the new Volume Control windows or programmatically using the overhauled audio API. Different sounds can be redirected to different audio devices as well.
* Windows Vista includes integrated microphone array support which is intended to increase the accuracy of the speech recognition feature and allow a user to connect multiple microphones to a system so that the inputs can be combined into a single, higher-quality source.
Microsoft has also included a new high quality voice capture DirectX Media Object (DMO) as part of DirectShow that allows voice capture applications such as instant messengers and speech recognition applications to apply Acoustic Echo Cancellation and microphone array processing to speech signals.

### Speech recognition

Windows Vista is the first Windows operating system to include fully integrated support for speech recognition. Under Windows 2000 and XP, Speech Recognition was installed with Office 2003, or was included in Windows XP Tablet PC Edition.
A brief speech-driven tutorial is included to help familiarize a user with speech recognition commands. Training could also be completed to improve the accuracy of speech recognition.
Windows Vista includes speech recognition for 8 languages at release time: English (U.S. and British), Spanish, German, French, Japanese and Chinese (traditional and simplified). Support for additional languages is planned for post-release.
Speech recognition in Vista utilizes version 5.3 of the Microsoft Speech API (SAPI) and version 8 of the Speech Recognizer.

### Speech synthesis

Speech synthesis was first introduced in Windows with Windows 2000, but it has been significantly enhanced for Windows Vista (code name Mulan). The old voice, Microsoft Sam, has been replaced with two new, more natural sounding voices of generally greater intelligibility: Anna and Lili, the latter of which is capable of speaking Chinese. The screen-reader Narrator which uses these voices has also been updated. Microsoft Agent and other text to speech applications now use the newer SAPI 5 voices.

## Print

Windows Vista includes a redesigned print architecture, built around Windows Presentation Foundation. It provides high-fidelity color printing through improved use of color management, removes limitations of the current GDI-based print subsystem, enhances support for printing advanced effects such as gradients, transparencies, etc., and for color laser printers through the use of XML Paper Specification (XPS).
The print subsystem in Windows Vista implements the new XPS print path as well as the legacy GDI print path for legacy support. Windows Vista transparently makes use of the XPS print path for those printers that support it, otherwise using the GDI print path. On documents with intensive graphics, XPS printers are expected to produce much greater quality prints than GDI printers.
In a networked environment with a print server running Windows Vista, documents will be rendered on the client machine, rather than on the server, using a feature known as Client Side Rendering. The rendered intermediate form will just be transferred to the server to be printed without additional processing, making print servers more scalable by offloading rendering computation to clients.

### XPS print path

The XPS Print Path introduced in Windows Vista supports high quality 16-bit color printing. The XPS print path uses XML Paper Specification (XPS) as the print spooler file format, that serves as the page description language (PDL) for printers. The XPS spooler format is the intended replacement for the Enhanced Metafile (EMF) format which is the print spooler format in the Graphics Device Interface (GDI) print path. XPS is an XML-based (more specifically XAML-based) color-managed device and resolution independent vector-based paged document format which encapsulates an exact representation of the actual printed output. XPS documents are packed in a ZIP container along with text, fonts, raster images, 2D vector graphics and DRM information. For printers supporting XPS, this eliminates an intermediate conversion to a printer-specific language, increasing the reliability and fidelity of the printed output. Microsoft claims that major printer vendors are planning to release printers with built-in XPS support and that this will provide better fidelity to the original document.
At the core of the XPS print path is XPSDrv, the XPS-based printer driver which includes the filter pipeline. It contains a set of filters which are print processing modules and an XML-based configuration file to describe how the filters are loaded. Filters receive the spool file data as input, perform document processing, rendering and PDL post-processing, and then output PDL data for the printer to consume. Filters can perform a single function such as watermarking a page or doing color transformations or they can perform several print processing functions on specific document parts individually or collectively and then convert the spool file to the page description language supported by the printer.
Windows Vista also provides improved color support through the Windows Color System for higher color precision and dynamic range. It also supports CMYK colorspace and multiple ink systems for higher print fidelity. The print subsystem also has support for named colors simplifying color definition for images transmitted to printer supporting those colors.
The XPS print path can automatically calibrate color profile settings with those being used by the display subsystem. Conversely, XPS print drivers can express the configurable capabilities of the printer, by virtue of the XPS PrintCapabilities class, to enable more fine-grained control of print settings, tuned to the individual printing device.
Applications which use the Windows Presentation Foundation for the display elements can directly print to the XPS print path without the need for image or colorspace conversion. The XPS format used in the spool file, represents advanced graphics effects such as 3D images, glow effects, and gradients as Windows Presentation Foundation primitives, which are processed by the printer drivers without rasterization, preventing rendering artifacts and reducing computational load. When the legacy GDI Print Path is used, the XPS spool file is used for processing before it is converted to a GDI image to minimize the processing done at raster level.

### Print schemas

Print schemas provide an XML-based format for expressing and organizing a large set of properties that describe either a job format or print capabilities in a hierarchically structured manner. Print schemas are intended to address the problems associated with internal communication between the components of the print subsystem, and external communication between the print subsystem and applications.

## Networking

Windows Vista contains a new networking stack, which brings large improvements in all areas of network-related functionality. It includes a native implementation of IPv6, as well as complete overhaul of IPv4. IPv6 is now supported by all networking components, services, and the user interface. In IPv6 mode, Windows Vista can use the Link Local Multicast Name Resolution (LLMNR) protocol to resolve names of local hosts on a network which does not have a DNS server running. The new TCP/IP stack uses a new method to store configuration settings that enables more dynamic control and does not require a computer restart after settings are changed. The new stack is also based on a strong host model and features an infrastructure to enable more modular components that can be dynamically inserted and removed.
The user interface for configuring, troubleshooting and working with network connections has changed significantly from prior versions of Windows as well. Users can make use of the new "Network Center" to see the status of their network connections, and to access every aspect of configuration. The network can be browsed using Network Explorer, which replaces Windows XP's "My Network Places". Network Explorer items can be a shared device such as a scanner, or a file share. Network Location Awareness uniquely identifies each network and exposes the network's attributes and connectivity type. Windows Vista graphically presents how different devices are connected over a network in the Network Map view, using the LLTD protocol. In addition, the Network Map uses LLTD to determine connectivity information and media type (wired or wireless). Any device can implement LLTD to appear on the Network Map with an icon representing the device, allowing users one-click access to the device's user interface. When LLTD is invoked, it provides metadata about the device that contains static or state information, such as the MAC address, IPv4/IPv6 address, signal strength etc.
Support for wireless networks is built into the network stack itself, and does not emulate wired connections, as was the case with previous versions of Windows. This allows implementation of wireless-specific features such as larger frame sizes and optimized error recovery procedures. Windows Vista uses various techniques like Receive Window Auto-scaling, Explicit Congestion Notification, TCP Chimney offload and Compound TCP to improve networking performance. Quality of service (QoS) policies can be used to prioritize network traffic, with traffic shaping available to all applications, even those that do not explicitly use QoS APIs. Windows Vista includes in-built support for peer-to-peer networks and SMB 2.0. For improved network security, Windows Vista supports for 256-bit and 384-bit Diffie-Hellman (DH) algorithms, as well as for 128-bit, 192-bit and 256-bit Advanced Encryption Standard (AES) is included in the network stack itself, while integrating IPsec with Windows Firewall.

## Kernel and core OS changes

* The new Kernel Transaction Manager enables atomic transaction operations across different types of objects, most significantly file system and registry operations.
* The memory manager and processes scheduler have been improved. The scheduler was modified to use the cycle counter register of modern processors to keep track of exactly how many CPU cycles a thread has executed, rather than just using an interval-timer interrupt routine, resulting in more deterministic application behaviour. Many kernel data structures and algorithms have been rewritten. Lookup algorithms now run in constant time, instead of linear time as with previous versions.
* Windows Vista includes support for condition variables and reader-writer locks.
* Process creation overhead is reduced by significant improvements to DLL address-resolving schemes.
* Windows Vista introduces a Protected Process, which differs from usual processes in the sense that other processes cannot manipulate the state of such a process, nor can threads from other processes be introduced in it. A Protected Process has enhanced access to DRM-functions of Windows Vista. However, currently, only the applications using Protected Video Path can create Protected Processes.
* Thread Pools have been upgraded to support multiple pools per process, as well as to reduce performance overhead using thread recycling. It also includes Cleanup Groups that allow cleanup of pending thread-pool requests on process shutdown.
* Threaded DPC , conversely to an ordinary DPC (Deferred Procedure Call), decreases the system latency improving the performance of time-sensitive applications, such as audio or video playback.
* Data Redirection: Also known as data virtualization, this virtualizes the registry and certain parts of the file system for applications running in the protected user context if User Account Control is turned on, enabling legacy applications to run in non-administrator accounts. It automatically creates private copies of files that an application can use when it does not have permission to access the original files. This facilitates stronger file security and helps applications not written with the least user access principle in mind to run under stronger restrictions. Registry virtualization isolates write operations that have a global impact to a per-user location. Reads and writes in the HKLM\Software section of the Registry by user-mode applications while running as a standard user, as well as to folders such as "Program Files", are "redirected" to the user's profile. The process of reading and writing on the profile data and not on the application-intended location is completely transparent to the application.
* Windows Vista supports the PCI Express 1.1 specification, including PCI Express Hot Plug and ASPM. PCI Express registers, including capability registers, are supported, along with save and restore of configuration data. If BIOS indicates it supports PCI Express Native Control, Windows Vista will try to control features like ASPM; otherwise such PCI Express features may be controlled by BIOS.
* Native support and generic driver for Advanced Host Controller Interface (AHCI) specification for Serial ATA drives, SATA Native Command Queuing, Hot plugging, and AHCI Link Power Management.
* Full support for the ACPI 2.0 specification, and parts of ACPI 3.0. Support for throttling power usage of individual devices has been improved.
* Windows Vista SP1 supports Windows Hardware Error Architecture (WHEA).
* Kernel-mode Plug-And-Play enhancements include support for PCI multilevel rebalance, partial arbitration of resources to support PCI subtractive bridges, asynchronous device start and enumeration operations to speed system startup, support for setting and retrieving custom properties on a device, an enhanced ejection API to allow the caller to determine if and when a device has been successfully ejected, and diagnostic tracing to facilitate improved reliability.
* The startup process for Windows Vista has changed completely in comparison to earlier versions of Windows. The NTLDR boot loader has been replaced by a more flexible system, with NTLDR's functionality split between two new components: winload.exe and Windows Boot Manager. A notable change is that the Windows Boot Manager is invoked by pressing the space bar instead of the F8 function key. The F8 key still remains assigned for advanced boot options once the Windows Boot Manager menu appears.
* On UEFI systems, beginning with Windows Vista Service Pack 1, the x64 version of Windows Vista has the ability to boot from a disk with a GUID Partition Table.
* Windows Vista includes a completely overhauled and rewritten Event logging subsystem, known as Windows Event Log which is XML-based and allows applications to more precisely log events, offers better views, filtering and categorization by criteria, automatic log forwarding, centrally logging and managing events from a single computer and remote access.
* Windows Vista includes an overhauled Task Scheduler that uses hierarchical folders of tasks. The Task Scheduler can run programs, send email, or display a message. The Task Scheduler can also now be triggered by an XPath expression for filtering events from the Windows Event Log, and can respond to a workstation's lock or unlock, and as well as the connection or disconnection to the machine from a Remote Desktop. The Task Scheduler tasks can be scripted in VBScript, JScript, or PowerShell.
* Restart Manager: The Restart Manager works with Microsoft's update tools and websites to detect processes that have files in use and to gracefully stop and restart services to reduce the number of reboots required after applying updates as far as possible for higher levels of the software stack. Kernel updates, logically, still require the system to be restarted. In addition, the Restart Manager provides a mechanism for applications to stop and then restart programs. Applications that are written specifically to take advantage of the new Restart Manager features using the API can be restarted and restored to the same state and with the same data as before the restart. Using the Application Recovery and Restart APIs in conjunction with the Restart Manager enables applications to control what actions are taken on their behalf by the system when they fail or crash such as recovering unsaved data or documents, restarting the application, and diagnosing and reporting the problem using Windows Error Reporting.
* When shutting down or restarting Windows, previous Windows versions either forcibly terminated applications after waiting for few seconds, or allowed applications to entirely cancel shutdown without informing the user. Windows Vista now informs the user in a full-screen interface if there are running applications when exiting Windows or allows continuing with or cancelling the initiated shutdown. The reason registered, if any, for cancelling a shutdown by an application using the new ShutdownBlockReasonCreate API is also displayed.
* Clean service shutdown: Services in Windows Vista have the capability of delaying the system shutdown in order to properly flush data and finish current operations. If the service stops responding, the system terminates it after 3 minutes. Crashes and restart problems are drastically reduced since the Service Control Manager is not terminated by a forced shutdown anymore.

### Boot process

Windows Vista introduces an overhaul of the previous Windows NT operating system loader architecture NTLDR. Used by versions of Windows NT since its inception with Windows NT 3.1, NTLDR has been completely replaced with a new architecture designed to address modern firmware technologies such as the Unified Extensible Firmware Interface. The new architecture introduces a firmware-independent data store and is backward compatible with previous versions of the Windows operating system.

### Memory management

* Windows Vista features a Dynamic System Address Space that allocates virtual memory and kernel page tables on-demand. It also supports very large registry sizes.
* Includes enhanced support for Non-Uniform Memory Access (NUMA) and systems with large memory pages. Windows Vista also exposes APIs for accessing the NUMA features.
* Memory pages can be marked as read-only, to prevent data corruption.
* New address mapping scheme called Rotate Virtual Address Descriptors (VAD). It is used for the advanced Video subsystem.
* Swapping in of memory pages and system cache include prefetching and clustering, to improve performance.
* Performance of Address Translation Buffers has been enhanced.
* Heap layout has been modified to provide higher performance on 64-bit and Symmetric multiprocessing (SMP) systems. The new heap structure is also more scalable and has low management overhead, especially for large heaps.
* Windows Vista automatically tunes up the heap layout for improved fragmentation management. The Low Fragmentation Heap (LFH) is enabled by default.
* Lazy initialization of heap initializes only when required, to improve performance.
* The Windows Vista memory manager does not have a 64 kb read-ahead cache limitation unlike previous versions of Windows and can thus improve file system performance dramatically.

### File systems

* Transactional NTFS allows multiple file/folder operations to be treated as a single operation, so that a crash or power failure won't result in half-completed file writes. Transactions can also be extended to multiple machines.
* Image Mastering API (IMAPI v2) enables DVD burning support for applications, in addition to CD burning. IMAPI v2 supports multiple optical drives, even recording to multiple drives simultaneously, unlike IMAPI in Windows XP which only supported recording with one optical drive at a time. In addition, multiple filesystems are supported. Applications using IMAPI v2 can create, and burn disc images—it is extensible in the sense that developers can write their own specific media formats and create their own file systems for its programming interfaces. IMAPI v2 is implemented as a DLL rather than as a service as was the case in Windows XP, and is also scriptable using VBScript. IMAPI v2 is also available for Windows XP. With the Windows Feature Pack for Storage installed, IMAPI 2.0 supports Recordable Blu-ray Disc (BD-R) and Rewritable Blu-ray Disc (BD-RE) media as well. Windows DVD Maker can burn DVD-Video discs, while Windows Explorer can burn data on DVDs (DVD±R, DVD±R DL, DVD±R RW) in addition to DVD-RAM and CDs.
* Live File System: A writable UDF file system. The Windows UDF file system (UDFS) implementation was read-only in OS releases prior to Windows Vista. In Windows Vista, Packet writing (incremental writing) is supported by UDFS, which can now format and write to all mainstream optical media formats (MO, CDR/RW, DVD+R/RW, DVD-R/RW/RAM). Write support is included for UDF format versions up to and including 2.50, with read support up to 2.60. UDF symbolic links, however, are not supported.
* Common Log File System (CLFS) API provides a high-performance, general-purpose log-file subsystem that dedicated user-mode and kernel-mode client applications can use and multiple clients can share to optimize log access and for data and event management.
* File encryption support superior to that available in Encrypting File System in Windows XP, which will make it easier and more automatic to prevent unauthorized viewing of files on stolen laptops or hard drives.
* File System Mini Filters model which are kernel mode non-device drivers, to monitor filesystem activity, have been upgraded in Windows Vista. The Registry filtering model adds support for redirecting calls and modifying parameters and introduces the concept of altitudes for filter registrations.
* Registry notification hooks, introduced in Windows XP, and recently enhanced in Windows Vista, allow software to participate in registry related activities in the system.
* Support of UNIX-style symbolic links. Previous Windows versions had support for a type of cross-volume reparse points known as junction points and hard links. However, junction points could be created only for directories and stored absolute paths, whereas hardlinks could be created for files but were not cross-volume. NTFS symbolic links can be created for any object and are cross-volume, cross-host (work over UNC paths), and store relative paths. However, the cross-host functionality of symbolic links does not work over the network with previous versions of Windows or other operating systems, only with computers running Windows Vista or a later Windows operating system. Symbolic links can be created, modified and deleted using the Mklink utility which is included with Windows Vista. Microsoft has published some developer documentation on symbolic links in the MSDN documentation. In addition, Windows Explorer is now symbolic link-aware and deleting a symbolic link from Explorer just deletes the link itself and not the target object. Explorer also shows the symbolic link target in the object's properties and shows a shortcut icon overlay on a junction point.
* A new tab, "Previous Versions", in the Properties dialog for any file or folder, provides read-only snapshots of files on local or network volumes from an earlier point in time. This feature is based on the Volume Shadow Copy technology.
* A new file-based disk image format called Windows Imaging Format (WIM), which can be mounted as a partition, or booted from. An associated tool called ImageX provides facilities to create and maintain these image files.
* Self-healing NTFS: In previous Windows versions, NTFS marked the volume "dirty" upon detecting file-system corruption and CHKDSK was required to be run by taking the volume "offline". With self-healing NTFS, an NTFS worker thread is spawned in the background which performs a localized fix-up of damaged data structures, with only the corrupted files/folders remaining unavailable without locking out the entire volume. The self-healing behavior can be turned on for a volume with the fsutil repair set C: 1 command where C presents the volume letter.
* New /B switch in CHKDSK for NTFS volumes which clears marked bad sectors on a volume and reevaluates them.
* Windows Vista has support for hard disk drives with large physical sector sizes (> 512 bytes per sector drives) if the drive supports 512-bytes logical sectors / emulation (called Advanced Format/512E). Drives with both 4k logical and 4k physical sectors are not supported.
* The NLS casing table in NTFS has been updated so that partitions formatted with Windows Vista will be able to see the proper behavior for the 100+ mappings that have been added to Unicode but were not added to Windows.
* Windows Vista Service Pack 1 and later have built-in support for exFAT.

### Drivers

Windows Vista introduces an improved driver model, Windows Driver Foundation which is an opt-in framework to replace the older Windows Driver Model. It includes:
* Windows Display Driver Model (WDDM), previously referred to as Longhorn Display Driver Model (LDDM), designed for graphics performance and stability.
* A new Kernel-Mode Driver Framework, which will also be available for Windows XP and Windows 2000.
* A new user-mode driver model called the User-Mode Driver Framework. In Windows Vista, WDDM display drivers have two components, a kernel mode driver (KMD) that is very streamlined, and a user-mode driver that does most of the intense computations. With this model, most of the code is moved out of kernel mode. The audio subsystem also runs largely in user-mode to prevent impacting negatively on kernel performance and stability. Also, printer drivers in kernel mode are not supported. User-mode drivers are not able to directly access the kernel but use it through a dedicated API. User-mode drivers are supported for devices which plug into a USB or FireWire bus, such as digital cameras, portable media players, PDAs, mobile phones and mass storage devices, as well as "non-hardware" drivers, such as filter drivers and other software-only drivers. This also allows for drivers which would typically require a system reboot (video card drivers, for example) to install or update without needing a reboot of the machine. If the driver requires access to kernel-mode resources, developers can split the driver so that part of it runs in kernel-mode and part of it runs in user-mode. These features are significant because a majority of system crashes can be traced to improperly installed or unstable third-party device drivers. If an error occurs the new framework allows for an immediate restart of the driver and does not impact the system. User-Mode Driver Framework is available for Windows XP and is included in Windows Media Player 11.
* Kernel-mode drivers on 64-bit versions of Windows Vista must be digitally signed; even administrators will not be able to install unsigned kernel-mode drivers. A boot-time option is available to disable this check for a single session of Windows. Installing user-mode drivers will still work without a digital signature.
* Signed drivers are required for usage of PUMA, PAP (Protected Audio Path), and PVP-OPM subsystems.
* Driver packages that are used to install driver software are copied in their entirety into a "Driver Store", which is a repository of driver packages and located in C:\Windows\System32\DriverStore. In essence, DriverStore is similar to WinSxS but stored for device drivers. This ensures that drivers that need to be repaired or reinstalled won't need to ask for source media to get "fresh" files. The Driver Store can also be preloaded with drivers by an OEM or IT administrator to ensure that commonly used devices (e.g. external peripherals shipped with a computer system, corporate printers) can be installed immediately. Adding, removing and viewing drivers from the "Driver Store" is done using PnPUtil.exe A new setting in Device Manager allows deleting the drivers from the Driver Store when uninstalling the hardware.
* Since Windows Vista, there has a "delete the driver software for this device" clickbox in confirmation dialog when uninstalling a hardware device in Device Manager.
* Support for Windows Error Reporting; information on an "unknown device" is reported to Microsoft when a driver cannot be found on the system, via Windows Update, or supplied by the user. OEMs can hook into this system to provide information that can be returned to the user, such as a formal statement of non-support of a device for Windows Vista, or a link to a web site with support information, drivers, etc.

### Processor Power Management

Windows Vista includes the following changes and enhancements in processor power management:
* Native operating system support for PPM on multiprocessor systems, including systems using processors with multiple logical threads, multiple cores, or multiple physical sockets.
* Support for all ACPI 2.0 and 3.0 processor objects.
* User configurable system cooling policy, minimum and maximum processor states.
* Operating system coordination of performance state transitions between dependent processors.
* Elimination of the processor dynamic throttling policies used in Windows XP and Windows Server 2003.
* More flexible use of the available range of processor performance states through system power policy.
* The static use of any linear throttle state on systems that are not capable of processor performance states.
* Exposure of multiple power policy parameters that original equipment manufacturers (OEMs) may tune to optimize Windows Vista use of PPM features.
* In-box drivers for processors from all leading processor manufacturers at that time. (Intel, AMD, VIA)
* A generic processor driver that allows the use of processor-specific controls for performance state transitions.
* An improved C3 entry algorithm, where a failed C3 entry does not cause demotion to C2.
* Removal of support for legacy processor performance state interfaces.
* Removal of support for legacy mobile processor drivers.

### System performance

* SuperFetch caches frequently-used applications and documents in memory, and keeps track of when commonly used applications are usually loaded, so that they can be pre-cached and it also prioritizes the programs currently used over background tasks. SuperFetch aims to negate the negative performance effect of having anti-virus or backup software run when the user is not at the computer. Superfetch is able to learn at what time of a given day an application is used and so it can be pre-cached.
* ReadyBoost, makes PCs running Windows Vista more responsive by using flash memory on a USB drive (USB 2.0 only), SD card, Compact Flash, or other form of flash memory, in order to boost system performance. When such a device is plugged in, the Windows Autoplay dialog offers an additional option to use it to speed up the system; an additional "ReadyBoost" tab is added to the drive's properties dialog where the amount of space to be used can be configured.
* ReadyBoot uses an in-RAM cache to optimize the boot process if the system has 700MB or more memory. The size of the cache depends on the total RAM available, but is large enough to create a reasonable cache and yet allow the system the memory it needs to boot smoothly. ReadyBoot uses the same ReadyBoost service.
* ReadyDrive is the name Microsoft has given to its support for hybrid drives, a new design of hard drive developed by Samsung and Microsoft. Hybrid drives incorporate non-volatile memory into the drive's design, resulting in lower power needs, as the drive's spindles do not need to be activated for every write operation. Windows Vista can also make use of the NVRAM to increase the speed of booting and returning from hibernation.
* Windows Vista features Prioritized I/O which allows developers to set application I/O priorities for read/write disk operations, similar to how currently application processes/threads can be assigned CPU priorities. I/O has been enhanced with I/O asynchronous cancellation and I/O scheduling based on thread priority. Background applications running in low priority I/O do not disturb foreground applications. Applications like Windows Defender, Automatic Disk Defragmenter and Windows Desktop Search (during indexing) already use this feature. Windows Media Player 11 also supports this technology to offer glitch-free multimedia playback.
* The Offline Files feature, which maintains a client-side cache of files shared over a network, has been significantly improved. When synchronizing the changes in the cached copy to the remote version, the Bitmap Differential Transfer protocol is used so that only the changed blocks in the cached version are transferred, but when retrieving changes from the remote copy, the entire file is downloaded. are synchronized on a per-share basis and encrypted on a per-user basis and users can force Windows to work in offline mode or online mode or sync manually from the Sync Center. The Sync Center can also report sync errors and resolve sync conflicts. Also, if network connectivity is restored, file handles are redirected to the remote share transparently.
* Delayed service start allows services to start a short while after the system has finished booting and initial busy operations, so that the system boots up faster and performs tasks quicker than before.
* Enable advanced performance option for hard disks: When enabled, the operating system may cache disk writes as well as disk reads. In previous Windows operating systems, only the disk's internal disk caching, if any, was utilised for disk write operations when the disk cache was enabled by the user. Enabling this option causes Windows to make use of its own local cache in addition to this, which speeds up performance, at the expense of a little more risk of data loss during a sudden loss of power.

## Programmability
### .NET Framework 3.0

Windows Vista is the first client version of Windows to ship with the .NET Framework. The .NET Framework is a set of managed code APIs that is slated to succeed Win32. The Win32 API is also present in Windows Vista, but does not give direct access to all the new functionality introduced with the .NET Framework. In addition, .NET Framework is intended to give programmers easier access to the functionality present in Windows itself.
.NET Framework 3.0 includes APIs such as ADO.NET, ASP.NET, Windows Forms, among others, and adds four core frameworks to the .NET Framework:
* Windows Presentation Foundation (WPF)
* Windows Communication Foundation (WCF)
* Windows Workflow Foundation (WF)
* Windows CardSpace

#### WPF

Windows Presentation Foundation (codenamed Avalon) is the overhaul of the graphical subsystem in Windows and the flagship resolution independent API for 2D and 3D graphics, raster and vector graphics (XAML), fixed and adaptive documents (XPS), advanced typography, animation (XAML), data binding, audio and video in Windows Vista. WPF enables richer control, design, and development of the visual aspects of Windows programs. Based on DirectX, it renders all graphics using Direct3D. Routing the graphics through Direct3D allows Windows to offload graphics tasks to the GPU, reducing the workload on the computer's CPU. This capability is used by the Desktop Window Manager to make the desktop, all windows and all other shell elements into 3D surfaces. WPF applications can be deployed on the desktop or hosted in a web browser (XBAP).
The 3D capabilities in WPF are limited compared to what's available in Direct3D. However, WPF provides tighter integration with other features like user interface (UI), documents, and media. This makes it possible to have 3D UI, 3D documents, and 3D media. A set of built-in controls is provided as part of WPF, containing items such as button, menu, and list box controls. WPF provides the ability to perform control composition, where a control can contain any other control or layout. WPF also has a built-in set of data services to enable application developers to bind data to the controls. Images are supported using the Windows Imaging Component. For media, WPF supports any audio and video formats which Windows Media Player can play. In addition, WPF supports time-based animations, in contrast to the frame-based approach. This delinks the speed of the animation from how slow or fast the system is performing. Text is anti-aliased and rendered using ClearType.
WPF uses Extensible Application Markup Language (XAML), which is a variant of XML, intended for use in developing user interfaces. Using XAML to develop user interfaces also allows for separation of model and view. In XAML, every element maps onto a class in the underlying API, and the attributes are set as properties on the instantiated classes. All elements of WPF may also be coded in a .NET language such as C#. The XAML code is ultimately compiled into a managed assembly in the same way all .NET languages are, which means that the use of XAML for development does not incur a performance cost.

#### WCF

Windows Communication Foundation (codenamed Indigo) is a new communication subsystem to enable applications, in one machine or across multiple machines connected by a network, to communicate. WCF programming model unifies Web Services, .NET Remoting, Distributed Transactions, and Message Queues into a single Service-oriented architecture model for distributed computing, where a server exposes a service via an interface, defined using XML, to which clients connect. WCF runs in a sandbox and provides the enhanced security model all .NET applications provide.
WCF is capable of using SOAP for communication between two processes, thereby making WCF based applications interoperable with any other process that communicates via SOAP. When a WCF process communicates with a non-WCF process, XML based encoding is used for the SOAP messages but when it communicates with another WCF process, the SOAP messages are encoded in an optimized binary format, to optimize the communication. Both the encodings conform to the data structure of the SOAP format, called Infoset.
Windows Vista also incorporates Microsoft Message Queuing 4.0 (MSMQ) that supports subqueues, poison messages (messages which continually fail to be processed correctly by the receiver), and transactional receives of messages from a remote queue.

#### WF

Windows Workflow Foundation is a Microsoft technology for defining, executing and managing workflows. This technology is part of .NET Framework 3.0 and therefore targeted primarily for the Windows Vista operating system. The Windows Workflow Foundation runtime components provide common facilities for running and managing the workflows and can be hosted in any CLR application domain.
Workflows comprise 'activities'. Developers can write their own domain-specific activities and then use them in workflows. Windows Workflow Foundation also provides a set of general-purpose 'activities' that cover several control flow constructs. It also includes a visual workflow designer. The workflow designer can be used within Visual Studio 2005, including integration with the Visual Studio project system and debugger.

#### Windows CardSpace

Windows CardSpace (codenamed InfoCard), a part of .NET Framework 3.0, is an implementation of Identity Metasystem, which centralizes acquiring, usage and management of digital identity. A digital identity is represented as logical Security Tokens, that each consist of one or more Claims, which provide information about different aspects of the identity, such as name, address etc.
Any identity system centers around three entities — the User who is to be identified, an Identity Provider who provides identifying information regarding the User, and Relying Party who uses the identity to authenticate the user. An Identity Provider may be a service like Active Directory, or even the user who provides an authentication password, or biometric authentication data.
A Relying Party issues a request to an application for an identity, by means of a Policy that states what Claims it needs and what will be the physical representation of the security token. The application then passes on the request to Windows CardSpace, which then contacts a suitable Identity Provider and retrieves the Identity. It then provides the application with the Identity along with information on how to use it.
Windows CardSpace also keeps a track of all Identities used, and represents them as visually identifiable virtual cards, accessible to the user from a centralized location. Whenever an application requests any identity, Windows CardSpace informs the user about which identity is being used and needs confirmation before it provides the requestor with the identity.
Windows CardSpace presents an API that allows any application to use Windows CardSpace to handle authentication tasks. Similarly, the API allows Identity Providers to hook up with Windows CardSpace. To any Relying Party, it appears as a service which provides authentication credentials.

#### Other .NET Framework APIs

* Microsoft UI Automation (UIA) is a managed code API replacing Microsoft Active Accessibility to drive user interfaces. UIA is designed to serve both assistive technology and test-automation requirements.
* .NET Framework 3.0 also includes a managed code speech API which has similar functionality to SAPI 5 but is suitable to be used by managed code applications.

### Media Foundation

Media Foundation is a set of COM-based APIs to handle audio and video playback that provides DirectX Video Acceleration 2.0 and better resilience to CPU, I/O, and memory stress for glitch-free low-latency playback of audio and video. It also enables high color spaces through the multimedia processing pipeline. DirectShow and Windows Media SDK will be gradually deprecated in future versions.

### Search

The Windows Vista Instant Search index can also be accessed programmatically using both managed as well as native code. Native code connects to the index catalog by using a Data Source Object retrieved from Windows Vista shell's Indexing Service OLE DB provider. Managed code use the MSIDXS ADO.NET provider with the index catalog name. A catalog on a remote machine can also be specified using a UNC path. The criteria for the search is specified using a SQL-like syntax.
The default catalog is called SystemIndex and it stores all the properties of indexed items with a predefined naming pattern. For example, the name and location of documents in the system is exposed as a table with the column names System. ItemName and System. ItemURL respectively. An SQL query can directly refer these tables and index catalogues and use the MSIDXS provider to run queries against them. The search index can also be used via OLE DB, using the CollatorDSO provider. However, OLE DB provider is read-only, supporting only SELECT and GROUP ON SQL statements.
The Windows Search API can also be used to convert a search query written using Advanced Query Syntax (or Natural Query Syntax, the natural language version of AQS) to SQL queries. It exposes a method GenerateSQLFromUserQuery method of the ISearchQueryHelper interface. Searches can also be performed using the search-ms: protocol, which is a pseudo protocol that lets searches be exposed as an URI. It contains all the operators and search terms specified in AQS. It can refer to saved search folders as well. When such a URI is activated, Windows Search, which is registered as a handler for the protocol, parses the URI to extract the parameters and perform the search.

### Networking

Winsock Kernel (WSK) is a new transport-independent kernel-mode Network Programming Interface (NPI) for that provides TDI client developers with a sockets-like programming model similar to those supported in user-mode Winsock. While most of the same sockets programming concepts exist as in user-mode Winsock such as socket, creation, bind, connect, accept, send and receive, Winsock Kernel is a completely new programming interface with unique characteristics such as asynchronous I/O that uses IRPs and event callbacks to enhance performance. TDI is supported in Windows Vista for backward compatibility.
Windows Vista includes a specialized QoS API called qWave (Quality Windows Audio/Video Experience), which is a pre-configured quality of service module for time dependent multimedia data, such as audio or video streams. qWave uses different packet priority schemes for real-time flows (such as multimedia packets) and best-effort flows (such as file downloads or e-mails) to ensure that real time data gets as little delays as possible, while providing a high quality channel for other data packets.
Windows Filtering Platform allows external applications to access and hook into the packet processing pipeline of the networking subsystem.

### Cryptography

Windows Vista features an update to the Microsoft Crypto API known as Cryptography API: Next Generation (CNG). CNG is an extensible, user mode and kernel mode API that includes support for Elliptic curve cryptography and a number of newer algorithms that are part of the National Security Agency (NSA) Suite B. It also integrates with the smart card subsystem by including a Base CSP module which encapsulates the smart card API so that developers do not have to write complex CSPs.

## Other features and changes

* Support for Unicode 5.0
* A number of new fonts:
** Latin fonts: Calibri, Cambria, Candara, Consolas (monotype), Constantia, and Corbel. Segoe UI, previously used in Windows XP Media Center Edition, is also included, despite licensing issues with Linotype.
** Meiryo, supporting the new and modified characters of the JIS X 0213:2004 standard
** Non-Latin fonts: Microsoft JhengHei (Chinese Traditional), Microsoft YaHei (Chinese Simplified), Majalla UI (Arabic), Gisha (Hebrew), Leelawadee (Thai) and Malgun Gothic (Korean).
** Support for Adobe CFF/Type2 fonts, which provides support for contextual and discretionary ligatures.
* When accessing files with the ANSI character set, if the total path length is more than the maximum allowed 260 characters, Windows Vista automatically uses the alternate short names (which has an 8.3 limit) to shorten the total path length. In Unicode mode, this is not done as the maximum allowed length is 32,000.
* The long "Documents and Settings" folder is now just "Users", although a symbolic link called "Documents and Settings" is kept for compatibility. The paths of several special folders under the user profile have changed.
* New support for infrared receivers and Bluetooth 2.0 wireless standards; devices supporting these can transfer files and sync data wirelessly to a Windows Vista computer with no additional software.
* A non-administrator user can share only the folders under his user profile. In addition, all users have a Public folder which is shared, though an administrator can override this.
* Network Projection is used to detect and use network-connected projectors. It can be used to display a presentation, or share a presentation with the machine which hosts the projector. Users can do this over a network so multiple sources can be connected at different times without having to keep moving the sources or projectors around. The network projector can be connected to the network via wireless or cable (LAN) technology to make it even more flexible. Users can not only connect to the network projector remotely but can also remotely configure it. Network projectors are designed to transmit and display still images, such as photographs and slides —not high-bandwidth transmissions, such as video streams. The projector can transmit video, but the playback quality is often poor. Binary %windir%\system32\NetProj.exe implement Network Projection feature.
* New monitor configuration APIs make it possible to adjust the monitor's display area, save and restore display settings, calibrate color and use vendor-specific monitor features. Overall too, Windows Vista is designed to be more resolution-independent than its predecessors, with a particular focus on higher resolutions and high DPI displays . Windows Presentation Foundation and WPF applications are fully resolution-independent. Also, Transient Multimon Manager, a new feature that uses the monitor's EDID enables automatic detection, setup and proper configuration of additional or multiple displays as they are attached and removed, on the fly. The settings are saved on a per-display basis when possible, so that users can move among multiple displays with no manual configuration.
* Windows Vista includes a WSD-WIA class driver that enables all devices compliant with Microsoft's Web Services for Scanner (WS-Scan) protocol to work with WIA without any additional driver or software.
* The Fax service and model are fully account-based. Fax-aware applications such as Windows Fax and Scan can send multiple documents in a single fax submission. The Fax Service API generates TIFF files for each document and merges them into a single TIFF file. Users can right-click a document in Windows Explorer and select Send to Fax Recipient.
* Windows Vista introduces the 'Assistance Platform' based on MAML. Help and Support is intended to be more meaningful and clear. Guided Help, or Active Content Wizard is an automated tutorial and self-help system available with the release of Windows Vista where a series of animated steps show users how to complete a particular task. It highlights only the options and the parts of screen that are relevant to the task and darkening the rest of the screen. A separate file format is used for ACW help files. The guided help SDK got replaced in Windows 7 with the Windows Troubleshooting Platform.
* All standard text editing controls and all versions of the 'RichEdit' control now support the Text Services Framework. Also, all Tablet/Ink API applications and all HTML applications which use Internet Explorer's Trident layout engine support the Text Services Framework.
* Windows Data Access Components (Windows DAC) replace MDAC 2.81 which shipped with Windows XP Service Pack 2.
* DFS Replication, the successor to File Replication Service, is a state-based replication engine for file replication among DFS shares, which supports replication scheduling and bandwidth throttling. It uses Remote Differential Compression to detect and replicate only the change to files, rather than replicating entire files, if changed. DFS-R is also included with Windows Server 2003 R2.
* As with Windows XP Professional x64 Edition, in Windows Vista x64, old 16-bit Windows programs are not supported. If 16-bit software needs to be run in 64-bit Windows Vista, virtualization can be used for running a 32-bit operating system.