Technical features new to Windows Vista

From Wikipedia, the free encyclopedia

Windows Vista (formerly codenamed Windows "Longhorn") has many significant new features compared with previous Microsoft Windows versions, covering most aspects of the operating system.

This article is part of the
Windows Vista series.
New features
Overview
Technical and core system
Security and safety
Management and administration
Removed features
Other articles
Editions and pricing
Development history
Criticism
List of Windows Vista topics

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 Vista, as it includes comprehensive wireless networking support.

For graphics, Vista introduces a new Windows Display Driver Model, as well as major revisions to Direct3D. The new driver model facilitates the new Desktop Window Manager, which provides the tearing-free desktop and special effects that are the cornerstones of Windows Aero. WDDM's current version 1.0 is able to offload rudimentary tasks to the GPU, 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 gives applications the ability to work with the file system and registry using atomic transaction operations.

Contents

[edit] Audio

A screenshot of Windows Vista's per-application volume control
A screenshot of Windows Vista's per-application volume control

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 144dB of dynamic range and new audio APIs created by a team including Steve Ball and Larry Osterman[1][2]. The new audio stack runs at user level, thus increasing performance and stability. The Windows Vista audio engine is designed to run faster than the Windows XP audio engine, and has tighter requirements on audio buffer position accuracy. Also, the new Universal Audio Architecture (UAA) model has been introduced, in favor of 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.
  • Multimedia Device API - For enumerating and managing audio endpoints.
  • Device Topology API - For discovering the internals of an audio card's topology.

[edit] 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, unmixed audio streams are rendered directly to the audio adapter and no other application's audio will play. 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 mixed by the global audio engine before they're rendered on the audio device. The higher level APIs such as the Wavexxx APIs and DirectSound use shared mode, which results in pre-mixed PCM audio that is sent to the driver in a single format (in terms of sample rate, bit depth and channel count). This format is configurable by the end user through Control Panel. After passing through WASAPI, all host based audio processing including custom audio processing can take place (sample rate conversion, mixing, effects). Host based processing modules are referred to as Audio Processing Objects, or APOs. All these components operate in user mode. The only portion of this architecture that runs in kernel mode is the audio driver (which contains the Port Class driver, the vendor Miniport driver and the vendor HAL). The Windows Kernel Mixer (KMixer) is completely gone. There is no direct path from DirectSound to the audio drivers, DirectSound and MME are emulated as Session instances. Since the whole point of DirectSound acceleration is to allow hardware to process unmixed audio content, DirectSound cannot be accelerated in this audio model. Proprietary APIs such as ASIO and OpenAL are not affected.

[edit] 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. As a result, user mode applications can completely govern streams of audio without any code execution in the kernel during runtime. WaveRT allows the user mode application direct access to the internal audio hardware buffers and sample position counters (data in the memory that is mapped to the audio hardware DMA engine). It allows applications to poll the current position in the DMA memory window that the hardware is accessing. WaveRT also supports the notion of a hardware generated clock notification event, similar to the ASIO API, so that applications need not poll for current position if they don't want to.

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".

[edit] Audio Signal Processing

New digital signal processing functionalities such as Room Correction, Bass Management and Speaker Fill have been introduced. Speaker Fill feature can be configured to take a standard 2-channel (stereo) source (e.g., a typical music CD) and create a virtual multi-channel experience to help you get the most of your loudspeaker investment. Bass Management can be used to redirect the subwoofer signal to the main speakers. If you are missing a center channel (or maybe you only have the front three channels), a feature called Channel Phantoming allows you to make best use of the speakers that you have. Whether you have a multi-channel or stereo sound system in your home theater or living room, Windows Vista also includes the ability to calibrate your speakers for your room. By placing a microphone where you plan to sit and then running a wizard that measures the room response, Windows Vista can automatically set the levels, delay and frequency balance for each channel accordingly for this position. For PCs equipped with stereo headphones, Vista adds the ability to have surround sound using a new feature called Headphone Virtualization, which uses a technology known as Head-Related Transfer Functions or HRTF. Essentially the system uses information about the physics of your head to create an outside-of-the-head experience. As a result, in addition to hearing the normal sensation of left-to-right sound separation, Windows Vista can also enable the user to differentiate between front and rear sounds as well as close and far sounds.[3]

[edit] 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 AC97 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".[4]
    • New support for asynchronous endpoints.[5]
  • IEEE 1394 (aka Firewire) audio support is slated for a future release of Windows Vista, to be implemented as a full class driver, automatically supporting IEEE 1394 AV/C audio devices.

[edit] Other audio enhancements

Additionally,

  • 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[6].
  • Windows Vista also allows controlling system-wide volume or volume of individual audio devices and even 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.
  • Built-in support for microphone arrays, lets a user connect multiple microphones to a single system, so that the inputs can be combined into a single, higher-quality source. A likely implementation of this is for laptops to incorporate multiple microphones at different points.[7]

[edit] Speech recognition

Screenshot of the Speech Recognition tutorial
Screenshot of the Speech Recognition tutorial

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. The speech recognition system lets a user control their machine through voice commands, and enables dictation into many applications. Applications which don't present obvious "commands" can still be controlled by asking the system to overlay numbers on top of interface elements; the number can subsequently be spoken to activate that function. Applications needing mouse clicks in arbitrary locations can also be controlled through speech; when asked to do so, a "mousegrid" of nine zones is displayed, with numbers inside each. The user speaks the number, and another grid of nine zones is placed inside the chosen zone. This continues until the user has focused to where they want to click. Windows Speech Recognition offers fairly high recognition accuracy and provides a wide but simple set of commands that make dictation easier.[citation needed] A brief speech-driven tutorial is included to help familiarize a user with speech recognition commands.

Windows Vista includes speech recognition for 8 languages at release time: U.S. English, U.K. English, traditional Chinese, simplified Chinese, Japanese, German, French and Spanish. Additional language support beyond that is planned for post-release.

Windows Vista includes version 5.3 of the Microsoft Speech API (SAPI 5.3) and version 8 of the Speech Recognition engine ("recognizer").

[edit] 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. [8]

[edit] Print

Windows Vista includes a redesigned print architecture[9], 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 through the use of XML Paper Specification (XPS), and enhances support for color Laser Printers.

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 better quality prints than GDI printers.

In a networked environment with a print server running Windows Vista, documents will be rendered on the client machine [10], 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.

[edit] XML Paper Specification

XML Paper Specification (XPS), codenamed "Metro", is an XML-based document format, which is packed in a ZIP container along with fonts, embedded images and DRM information. Intended as the replacement for the Enhanced Metafile (EMF) format, XPS Documents are a natively-supported in Windows Vista. It enables users to view, print, and archive files without the original program that created them, without loss of fidelity. XPS is a subset of Windows Presentation Foundation, allowing it to incorporate vector-graphic elements in documents, using XAML to mark-up the WPF primitives. The elements used are described in terms of paths and other geometrical primitives.

In addition to support for the document format itself, Windows Vista also includes an XPS Viewer application, as well as a printer driver that makes it possible for any application to create an XPS Document using standard print functionality.

While early reports on this technology described XPS as a "PDF-killer", Microsoft insists that it is not attempting to duplicate all the functionality of PDF[11]. For example, XPS does not incorporate facilities for multimedia capabilities, or dynamic documents such as forms.

[edit] XPS Print Path

The print spooler in the XPS Print Path uses the XPS file format, which serves as the page description language (PDL) for printers. 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.[12]

Windows Vista also provides improved color support for higher color precision and dynamic range. It also supports CMYK colorspace as also support for 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 XPS PrintCapabilities, to enable more fine-grained control of the print setting, 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.

[edit] 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.

[edit] Networking

The Network and Sharing Center
The Network and Sharing Center

Windows Vista contains a brand new networking stack, which brings large improvements in all areas of network-related functionality[13]. It includes native implementation of IPv6, as well as complete overhaul of IPv4. 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 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. Windows Vista also has a Network Map which graphically presents how different devices are connected over a network. Network Location Awareness communicates to applications changes in network connectivity and configuration.

[edit] IPv6

A significant change is a more complete implementation of IPv6 which 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 hosts on a network which does not have a DNS server running. This service is useful for networks without a central managing server, and for ad-hoc wireless networks. IPv6 can also be used over PPP, for dial-up connections as well. Windows Vista can also act as a client/server for file sharing or DCOM over IPv6. Support for DHCPv6, which can be used with IPv6, is also included. IPv6 can even be used when full native IPv6 connectivity is not available, using Teredo tunneling; this can even traverse most IPv4 Network Address Translations (NATs). Full support for multicast is also included: MLDv2 and SSM.

[edit] Wireless networks

Wireless Networking support in Windows Vista has been upgraded. 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. It will also be easier to find wireless networks in range and tell which networks are open and which are closed. Hidden wireless networks, which do not advertise their Service set identifier (SSID) will be better supported. Security for wireless networks is being improved with improved support for newer wireless standards like 802.11i. EAP Transport Layer Security (EAP-TLS) is the default authentication mode. Connections are made at the most secure connection level supported by the wireless access point. WPA2 can be used even in ad-hoc mode. Windows Vista also provides a Fast Roaming service that will allow users to move from one access point to another without loss of connectivity. Preauthentication with the new wireless access point will be used to retain the connectivity. The wireless card may also be virtualized to connect to multiple wireless networks simultaneously.

[edit] Network profiles

Windows Vista introduces a concept of network profiles. For each network, the system stores the IP address, DNS server, Proxy server and other network features specific to the network in that network's profile. So when that network is subsequently connected to, the settings need not be reconfigured, the ones saved in its profile are used. In the case of mobile machines, the network profiles are chosen automatically based on what networks are available.

Each profile is part of a "Private" network such as a home or small office where connectivity with other local machines is desired, a "Public" network such a public-access wireless network at an airport where other machines on the network cannot be trusted, and a "Domain" network, which is for when a machine is connected to a Windows Server domain.

[edit] Network performance

Windows Vista Networking stack also uses several performance optimizations, which allow higher throughput by allowing faster recovery from packet losses, when using a high packet loss environment such as wireless networks. Windows Vista use the NewReno algorithm which allows a sender to send more data while retrying in case it receives a partial acknowledgement, which is acknowledgement from the receiver for only a part of data that has been received. It also uses Selective Acknowledgements (SACK) to reduce the amount of data to be retransmitted in case a portion of the data sent was not received correctly. It also includes Neighbour Unreachability Detection capability in both IPv4 and IPv6, which tracks the accessibility of neighboring nodes. This allows faster error recovery, in case a neighboring node fails.

Another significant change that aims to improve network throughput is the automatic resizing of TCP Receive window. The receive window (RWIN) is the buffer that is used to temporarily hold incoming TCP data. Receive window auto tuning functionality continually monitors the bandwidth and the latency of TCP connections individually and optimize the receive window for each connection. The window size will be increased in high-bandwidth (~5 Mbit/s+) or high-latency (>10ms) situations. With a large receive window, more data can be transferred at a time, so less time is spent waiting for acknowledgements for TCP packets, thereby boosting the data throughput rates considerably. It also tracks whether any intermediate routers drop the larger data packets, in which case it automatically scales back the packet size. The new TCP/IP stack also supports Explicit Congestion Notification (ECN) to keep retransmission due to network congestion as low as possible. This causes less data to be transmitted, giving the network a higher chance to recover quickly.

In previous versions of Windows, all processing needed to receive or transfer data over one network interface was done by a single processor, even in a multi processor system. Windows Vista can distribute the job of traffic processing in network communication among multiple processors. This feature is called Receive Side Scaling. Windows Vista also supports network cards with TCP Offload Engine, that have certain hardware-accelerated TCP/IP-related functionality. Windows Vista uses its TCP Chimney Offload system to offload to such cards framing, routing, error-correction and acknowledgement and retransmission jobs required in TCP. However, for application compatibility, only TCP data transfer functionality is offloaded to the NIC, not TCP connection setup. This will remove some load from the CPU. Traffic processing in both IPv4 and IPv6 can be offloaded. Windows Vista also supports NetDMA, which uses the DMA engine to allow processors to be freed from the hassles of moving data between network card data buffers and application buffers. It requires specific hardware DMA architectures, such as Intel I/O Acceleration to be enabled.

[edit] Security and network reliability

Windows Vista's networking stack includes integrated Quality of Service functionality to prioritize network traffic. Quality of Service can be used to manage network usage by specific applications or users, by throttling the bandwidth available to them, or it can be used to limit bandwidth usage by other applications when high priority applications, such as real time conferencing applications, are being run, to ensure they get the bandwidth they need. Windows Vista also includes qWave, 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.

In order to provide better security when transferring data over a network, Windows Vista provides enhancements to the cryptographic algorithms used to obfuscate data. Support 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.

The new TCP/IP suite utilizes a per-user routing table, thus compartmentalizing the network according to the user's needs. Data from one segment cannot go into another. This feature is called "Routing Compartments".[14]

The ability to assist the user in diagnosing a network problem is expected to be a major new networking feature. It can inform user of most causes of network transmission failure, such as incorrect IP address, gateway failure, port in use, receiver not ready etc. Transmission errors are also exhaustively logged, which can be analyzed to better find the cause of error. Windows Vista has a greater awareness of the network topology the host computer is in, using technologies such as Universal Plug and Play. With this new network awareness technology it can provide help to the user in fixing network issues or simply provide a graphical view of the perceived network configuration. There is also a new "Network Center", allowing the administration of the network topology. Windows Vista also provides a GUI module for configuration of both IPv4 and IPv6 properties.

[edit] Windows Filtering Platform

Windows Vista network stack includes Windows Filtering Platform[15], which allows external applications to access and hook into the packet processing pipeline of the networking subsystem. WFP allows incoming and outgoing packets to be analyzed or modified. Because WFP has an inbuilt filtering engine, applications need not write any custom engine, they just need to provide the custom logic for the engine to use. WFP includes a Base Filtering Engine which implements the filter requests. The packets are then processed using the Generic Filtering Engine, which also includes a Callout Module, where applications providing the custom processing logic can be hooked up. WFP can be put to uses such as inspecting packets for malware, selective packet restriction, such as in firewalls, or providing custom encryption systems, among others.

[edit] Peer-to-peer communication

Windows Vista includes support for peer-to-peer communication and includes implementation of peer-to-peer protocols out-of-the-box. It also includes a new version of the Peer Name Resolution Protocol (PNRPv2), which is faster and more scalable. Peer-to-peer networking functionality can be accessed from the WinSock API as well. The peer-to-peer networking subsystem can also discover other people running the same service in the local subnet, using a feature dubbed People Near Me. This facility can be used to develop ad-hoc collaborative applications.

A planned feature in Windows Vista would have taken advantage of peer-to-peer technology to provide a new type of domain-like networking setup known as a Castle, but this did not make it into the release version. Castle would have made it possible to have an identification service, which provides user authentication, for all members on the network, without a centralized server. It would have allowed user credentials to propagate across the peer-to-peer network, making them more suitable for a home network.

[edit] Server Message Block 2.0

A new version of the Server Message Block (SMB) protocol is being introduced with Windows Vista[16]. A claimed significant improvement over SMB support in prior versions of Windows is the ability to compound multiple actions into a single request, which significantly reduces the number of round-trips the client needs to make to the server, improving performance as a result. SMB1 also has a compounding mechanism (known as AndX) to compound multiple actions, but is rarely used by Microsoft clients. Larger buffer sizes are supported, also increasing performance with large file transfers. The notion of "durable file handles" is introduced, which allow a connection to an SMB server to survive brief network outages, such as with a wireless network, without having to construct a new session. Support for symbolic links is included as well. In SMB 1 various sizes in the protocol are 16 bits. Many have been changed to 32 or 64 bit, and in the case of file handles to 16 bytes.

SMB 2.0 will only be used when communicating with other Windows Vista machines, or with Windows Server "Longhorn". SMB 1.0 will continue to be used for connections to any previous version of Windows, or to Samba. (Samba 4 does have experimental support for SMB 2).

SMB 2 has two big benefits to Microsoft. The first is clear intellectual property ownership. SMB 1 was originally designed by IBM and was shipped on a wide variety of non-Windows operating systems such as SCO Xenix, OS/2 and DEC VMS (Pathworks). It was partially standardised by X/Open and also had draft standards for IETF which lapsed. (See http://ubiqx.org/cifs/Intro.html for historical detail).

The second benefit is a clean break. Microsoft's SMB1 code has to work with a huge variety of SMB clients and servers. A large number of items in the protocol are optional (such as short and long filenames), there are many infolevels for commands (selecting what structure is returned to a particular request), unicode was a later addition etc. With SMB2 there is significantly reduced compatibility testing (currently only other Vista clients and servers). Additionally the code is a lot less complex since there is far less variability (eg there is no need to worry about having Unicode and non-Unicode code paths as SMB2 requires Unicode support).

[edit] Winsock Kernel

Winsock Kernel (WSK) is a new transport-independent kernel-mode Network Programming Interface (NPI) that provides network 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.

[edit] Kernel and core OS changes

  • Stealth modding allows users to change or upgrade base hardware such as motherboard, processor, RAM etc. without requiring a Windows reinstallation or causing blue-screen errors.
  • Improved memory manager and processes scheduler. Many kernel data structures and algorithms have been rewritten. Lookup algorithms now run in constant time, instead of linear time as with previous versions.
  • Support for condition variables and reader-writer locks.
  • Deadlock Detection Technology is a new technology that will prevent many common causes of hangs and crashes and determines if a hang is due to a deadlock condition.
  • Process creation overhead is reduced by significant improvements to DLL address-resolving schemes.
  • Windows Vista introduces a Protected Process, which differ from usual processes in the sense that other processes cannot manipulate the state of such processes, nor can threads from other processes be introduced in these. Such processes have enhanced access to DRM-functions of Windows Vista. However, currently, only the applications using Protected Video Path can create such 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 clean up of pending thread-pool requests on process shutdown.
  • 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. 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.
  • The new Kernel Transaction Manager enables atomic transaction operations across different types of objects, most significantly file system and registry operations.[17]
  • Support for the PCI Express 1.1 specification, including extended configuration space and segmentation. PCI Express registers, including capability registers, are supported, along with save and restore of configuration data.
  • Full support for the ACPI 2.0 specification, and parts of ACPI 3.0[18]. Support for throttling power usage of individual devices is improved.
  • Hardware Partitioning supported at hardware level to allow hardware-enforced virtualization.
  • 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[19].
  • Support for peer-to-peer file transfers using Background Intelligent Transfer Service, known as "Neighbor Casting".

[edit] 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.
  • 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.

[edit] 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.
  • File encryption support superior to that available in EFS 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 non-device kernel mode drivers, to monitor filesystem activity, have been upgraded in Windows Vista. This can be used by anti-virus software.
  • Registry notification hooks, introduced in Windows XP, and recently enhanced in Windows Vista, allow software to participate in registry related activities in the system.
  • Image Mastering API (IMAPI v2) enables applications to burn audio, video, data or disc images to CD and DVD devices. 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. Packet writing is also supported when using the UDF file system. There are improvements to Universal Disk Format file system support; notably, the ability to format and write to UDF volumes, support for reading UDF 2.60 and writing UDF 2.50, and longer volume label names. Applications using IMAPI v2 can read, create, mount and burn ISO files.
  • Support of UNIX-style symbolic links[20]. Symbolic links however do not work over the network with previous versions of Windows or other operating systems, only with other Windows Vista or Longhorn Server computers.
  • File and registry virtualization, a feature that 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 security in mind to run under stronger restrictions.
  • "Previous Versions", previously known as Volume Shadow Copy in Windows Server 2003, provides read-only snapshots of files on local or network volumes from an earlier point in time. A new tab in the Properties dialog for any file or folder provides users with straightforward access to these previous versions.
  • A new file-based disk image format called Microsoft 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.

[edit] 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 even 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.[21] 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[22]. 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. 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 pre-loaded with drivers by an OEM or IT administrator to ensure that commonly used devices (e.g. external perhiperals shipped with a computer system, corporate printers) can be installed immediately.
  • 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.

[edit] System performance

Main article: Vista IO technologies
  • 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.
  • 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.[23]. ReadyBoost can also use spare RAM on other networked Vista PCs. [24].
  • ReadyBoot uses an in-RAM cache to optimize the boot process if the system has 700MB or more of RAM. 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. The 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.[25]
  • 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. [26] 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.
  • Delayed service start in Windows Vista allows services to start only when they are actually needed. The system will boot up much faster and perform tasks quicker than before.
  • Services in Windows Vista have the capability of delaying the system shutdown in order to properly save data to the hard disk or finish current operations. Crashes and restart problems are drastically reduced since services are not terminated by a forced shutdown anymore.
  • Enable advanced performance option for hard disks: When enabled, the hard disk drive operates in write-back cache mode, in which all the data that gets written to the drive is first stored in the cache, and then later written to the disk. Both writes and reads are cached in this case. When disabled, the HDD operates in write-through cache mode, in which all data that gets written to the drive is immediately written to the disks and also stored in the cache. Writes are not cached, but reads are.

[edit] Programmability

[edit] .NET Framework 3.0

Main article: .NET Framework 3.0

Windows Vista is the first client version of Windows to ship with the .NET Framework. Specifically, it includes .NET Framework 2.0 and .NET Framework 3.0 (previously known as WinFX) but not version 1.0 or 1.1.[citation needed] The .NET Framework is a set of managed code APIs that is slated to succeed Win32. The Win32 API will still be present in Windows Vista, but will 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:

Despite its name, .NET Framework 3.0 runs on the version 2.0 of the Common Language Runtime, as already used by .NET Framework 2.0.

[edit] WPF

Windows Presentation Foundation (codenamed Avalon) is the overhaul of the graphical subsystem in Windows and the flagship 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. Text rendering is supported using ClearType. This provides for sub-pixel positioning, natural advance widths and Y-direction anti-aliasing. The text engine even supports spell checking. Advanced OpenType font features such as ligatures, old-style numerals, swash variants, fractions, superscript and subscript, small capitalization, glyph substitution, multiple baselines, contextual and stylistic alternates (kerning), line-level justification, ruby characters, and so forth are also supported. OpenType type 2 fonts (CFF) are fully supported, and now get ClearType rendering. Video cards that support Direct3D 10 will cache fonts in video memory and perform all ClearType text rendering in hardware. However, ClearType sub-pixel rendering (anti-aliasing) cannot be turned off optionally in WPF applications. [27] Lastly, animated text is also supported; this refers to animated glyphs, as well as real-time changes in position, size, color, and opacity of the text.

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.

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.

[edit] 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 uses SOAP messages for communication between two processes, thereby making WCF based applications interoperable with any other process that communicates via SOAP messages. 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.

[edit] 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.

[edit] Windows CardSpace

Main article: 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 comprise 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.

[edit] Other .NET Framework APIs

[edit] 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.

[edit] Search

The Windows Vista Instant Search index can also be accessed programmatically using both managed as well as native code.[28] 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. The criteria for the search is specified using a SQL-like syntax.

[edit] Other features and changes

  • Support for Unicode 5.0[29]
  • File type associations can be set on a per-user basis now meaning default programs for file types and tasks can be different for each individual user.
  • A number of new fonts:[30]
  • Ability to natively set a JPEG file as a wallpaper without using Active Desktop (which is no longer supported).[32] Also, the aspect ratio of images is maintained properly.
  • Native raw image support (a variety of formats used by professional digital cameras) through Windows Imaging Component.
  • RSS platform: Native embedded RSS support, with developer API.
  • The "My" prefixes for various system folders have been dropped, for example "My Documents" is "Documents", "My Computer" is "Computer", etc.
  • The long "Documents and Settings" folder is now just "Users", although a symbolic link called "Documents and Settings" is kept for compatibility.
  • 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 PC with no additional software.
  • A new Task Dialog API to address the common misuse of the old Message Box API and make designing custom dialogs easier.
  • Common dialogs for applications such as Open, Save, Choose folder, Print, Page Setup, Font have been enhanced.
  • WebDAV has been enhanced to support operation over SSL connections, as well as connecting on alternate ports. An update for Windows XP SP2 which supports this feature is also available. [2]
  • 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.
  • HD Photo (previously known as Windows Media Photo)[33] is a high quality photographic still image format, that will be debuting with Windows Vista. It is the preferred image format for XPS documents.
  • Images are now viewable in a new viewer which is based on Windows Photo Gallery. It also supports viewing videos.
  • Network Projection[34] is used to detect and use network-connected projectors. It can then be used to display a presentation, or share a presentation with the machine which hosts the projector. You can now 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. You can not only connect to the network projector remotely but you can also remote configure it.
  • Windows Vista includes a Games folder (also known as the Games Explorer), which provides access to all installed games from a single location, thereby making it easy to manage multiple games.
  • 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. 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 introduces the 'Assistance Platform' based on MAML. Help and Support is intended to be more meaningful and clear. You can even add your own content to Help and Support Center. Guided Help, or Active Content Wizard is an automated tutorial and self-help system available from the Help & Support Center in which Windows performs system actions such as showing hidden files, and the procedure is shown in animated steps so users are acquainted with how to perform those tasks[35]. 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.
  • 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. [36]
  • Windows Data Access Components (Windows DAC) replace MDAC 2.81 which shipped with Windows XP Service Pack 2.
  • DFS Replication[37], 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.

[edit] See also

[edit] Notes and References

  1. ^ Steve Ball - Learning about Audio in Windows Vista. Channel 9. Microsoft (September 15, 2005). Retrieved on April 29, 2006.
  2. ^ Vista Audio Stack and API. Channel 9. Microsoft (December 13, 2005). Retrieved on April 29, 2006.
  3. ^ Windows Vista Product Guide [1]
  4. ^ See the USB Midi Devices 1.0 standard document for more information on MIDI Elements.
  5. ^ See section 3.3 of the USB Audio Devices 1.0 standard document for more information on endpoint types.
  6. ^ Robert Fripp - Behind the scenes at Windows Vista recording session. Channel 9. Microsoft (January 12, 2006). Retrieved on April 29, 2006.
  7. ^ Microsoft has published a research and implementation paper on microphone arrays here.
  8. ^ Vista Speech Demo from the Professional Developers Conference 2005 (link requires Internet Explorer)
  9. ^ Printing Enhancements in Windows Vista
  10. ^ Client Side Rendering
  11. ^ Ina Fried (May 3, 2005). Microsoft gunning for Adobe's PDF format?. ZDNet News. ZDNet. Retrieved on May 11, 2006.
  12. ^ Tim Sneath (November 17, 2005). Inside Windows Vista Printing. Channel 9. Microsoft. Retrieved on May 12, 2006.
  13. ^ New Networking Features in Windows Server "Longhorn" and Windows Vista. Microsoft TechNet. Microsoft (February 15, 2006). Retrieved on April 29, 2006.
  14. ^ Routing Compartments. Windows SDK. Microsoft Developer Network. Retrieved on August 5, 2006.
  15. ^ Windows Filtering Platform. WHDC. Microsoft (May 13, 2004). Retrieved on April 25, 2006.
  16. ^ Navjot Virk and Prashanth Prahalad (March 10, 2006). What's new in SMB in Windows Vista. Chk Your Dsks. MSDN. Retrieved on May 1, 2006.
  17. ^ About Kernel Transaction Manager. MSDN. Microsoft.
  18. ^ Windows NT 6.x Kernel Changes. (Word document)
  19. ^ See Boot Configuration Data Editor Frequently Asked Questions for details on BCD.
  20. ^ CNET.com (2007). Windows Vista Ultimate Review. Retrieved on January 31, 2007.
  21. ^ Digital Signatures for Kernel Modules on x64-based Systems Running Windows Vista. WHDC. Microsoft (May 19, 2006). Retrieved on May 19, 2006.
  22. ^ Tom Archer (April 14, 2006). ReadyBoost - Using Your USB Key to Speed Up Windows Vista. Tom Archer's Blog. Microsoft. Retrieved on May 21, 2006.
  23. ^ Jim Allchin (23 May 2006). Retrieved on November 1, 2006.
  24. ^ Windows Vista: Performance. Microsoft (2006). Retrieved on April 30, 2006.
  25. ^ Microsoft (May 11, 2006). I/O Prioritization in Windows Vista. Driver Fundamentals. Windows Hardware Developer Central. Retrieved on December 31, 2006.
  26. ^ WPF ClearType anti-aliasing cannot be turned off
  27. ^ Searching data. Retrieved on March 17, 2007.
  28. ^ Extend The Global Reach Of Your Applications With Unicode 5.0. MSDN. Retrieved on January 30, 2007.
  29. ^ What's New in Windows Vista — System Font (Segoe UI). MSDN. Retrieved on April 21, 2006.
  30. ^ Windows Vista - ClearType - Meiryo. PC Watch (August 29, 2005).
  31. ^ Nick Kramer (April 18, 2006). USER & GDI Compat, part 5 -- Miscellaneous. Nick on Windows Presentation Foundation (Avalon). MSDN Blogs. Retrieved on September 9, 2006.
  32. ^ WMPhoto Specs
  33. ^ Microsoft release regarding Network Projection
  34. ^ Kristan M. Kenney (June 5, 2006). Guided Help in Windows Vista. digitalfive.
  35. ^ Enabling Text Correction for Custom Ink Collectors
  36. ^ FRS and Sysvol Improvements. What's New in Group Policy in Windows Vista and Windows Server "Longhorn". Microsoft TechNet. Retrieved on August 4, 2006.

[edit] External links