Technical features new to Windows Vista
From Wikipedia, the free encyclopedia
This article is part
of a series on |
New features
Overview |
Other articles
|
|
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 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 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.
|
[edit] 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 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 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, 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.
- 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 (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.
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. 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. WaveRT however works only with PCI, PCI Express or onboard audio devices; it does not work with USB or FireWire interfaces which are more widespread in the professional audio industry. [3]
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 mixes 2-channel content to use all available speakers in a manner similar to Creative's CMSS. Bass Management can be used to redirect the subwoofer signal to the main speakers. If a channel is missing, a feature called Channel Phantoming allows the best use of the speakers that are there, by redirecting the sound of the missing channels through these speakers. 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 technology based upon a Head-related transfer function.[4]
Windows Vista also includes the ability to use custom host-based digital signal processing effects as part of the audio device manufacturer-supplied driver's value-added features. These effects are packaged as user-mode System Effect Audio Processing Objects (sAPOs). [5] These sAPOs are also reusable by third-party software.
[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:
- 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.
- 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.
[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.[8]
- 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.
- Built-in support for microphone arrays to increase the accuracy of the speech recognition feature, lets a user connect multiple microphones to a single system, so that the inputs can be combined into a single, higher-quality source. [9] 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. [10]
[edit] 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.
Windows Speech Recognition allows the user to control his/her machine through voice commands, and enables dictation into many applications. The application has a fairly high recognition accuracy and provides a set of commands that assists in dictation.[citation needed] 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[11] (SAPI) and version 8 of the Speech 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.[12]
[edit] Print
Windows Vista includes a redesigned print architecture,[13] 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,[14] 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] XPS print path
- See also: XML Paper Specification
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. [15] 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.[16]
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.
[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
Windows Vista contains a new networking stack, which brings large improvements in all areas of network-related functionality.[17] 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 to 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.
[edit] 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.[18]
- The memory manager and processes scheduler have been improved. The new CPU cycle-based thread scheduling gives a greater fairness and more deterministic app behavior.[19] 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 [20], 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 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 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 extended configuration space and segmentation. PCI Express registers, including capability registers, are supported, along with save and restore of configuration data.
- Native support and generic driver for Advanced Host Controller Interface (AHCI) specification for Serial ATA drives, SATA Native Command Queuing and Hot plugging.
- Full support for the ACPI 2.0 specification, and parts of ACPI 3.0.[21] Support for throttling power usage of individual devices has been improved.
- 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. [22]
- 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.[23]
- 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.[24] 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. [25]
- 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.
[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.
- Image Mastering API (IMAPI v2) enables DVD burning support for applications, in addition to CD burning. IMAPI v2 supports multiple optical drives, even simultaneously recording to multiple drives, unlike IMAPI in Windows XP which only supported enabling CD recording for one optical drive at a time [26]. 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. Applications using IMAPI v2 can create, and burn disc images. IMAPI v2 is implemented as a DLL rather than as a service as was the case in Windows XP [27], and is also scriptable using VBScript. IMAPI v2 is also available for Windows XP. [28]
- 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. [29]
- 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.[30] Previous Windows versions had support for a type of cross-volume reparse points known as junction points and hardlinks. 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.exe utility which is included with Windows Vista. Microsoft has published some developer documentation on symbolic links in the MSDN documentation. [30] 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. [31] 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. [32]
- Windows Vista has support for hard disk drives with large physical sector sizes (> 512 bytes per sector drives). [33]
- 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. [34]
[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 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.[35] 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.[36] 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 preloaded 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. Adding, removing and viewing drivers from the "Driver Store" is done using PnPUtil.exe [37]
- 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
- 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.[38]. ReadyBoost can also use spare RAM on other networked Vista PCs.[39].
- 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. [40]
- 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.[41]
- 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.[42] 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.[43] 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 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
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 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.
[edit] 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.
[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.
Windows Vista also incorporates Microsoft Message Queuing 4.0 (MSMQ) [44] 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.
[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
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
- 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.
[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.[45] 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.[46] 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.[47] 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.[48] 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.
[edit] 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),[49] 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.
[edit] Cryptography
Windows Vista features an update to the 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.
[edit] Other features and changes
-
- 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[52]
- 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 a 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.
- 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 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. [1] However, in Windows Vista, only the WebDAV redirector is present while the original "Web folders" client has been removed. The Web Folders client is only installed if Office 2003 or an earlier version of Office is installed. [53]
- 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[54] 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.
- 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 [2]. Windows Presentation Foundation and WPF applications are fully resolution-independent [55]. 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.
- 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. Users can now add their 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.[56] 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.[57]
- Windows Data Access Components (Windows DAC) replace MDAC 2.81 which shipped with Windows XP Service Pack 2.
- DFS Replication,[58] 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
- ^ Steve Ball - Learning about Audio in Windows Vista. Channel 9. Microsoft (September 15, 2005). Retrieved on 2006-04-29.
- ^ Windows Vista Audio Stack and API. Channel 9. Microsoft (December 13, 2005). Retrieved on 2006-04-29.
- ^ Native Instruments Releases Detailed Vista Compatibility Information
- ^ Windows Vista Product Guide
- ^ Custom Audio Effects in Windows Vista
- ^ See the USB Midi Devices 1.0 standard document for more information on MIDI Elements.
- ^ See section 3.3 of the USB Audio Devices 1.0 standard document for more information on endpoint types.
- ^ Robert Fripp - Behind the scenes at Windows Vista recording session. Channel 9. Microsoft (January 12, 2006). Retrieved on 2006-04-29.
- ^ Microsoft has published a research and implementation paper on microphone arrays here.
- ^ Microsoft includes high quality Acoustic Echo Cancellation and Microphone Array Processing in Windows Vista
- ^ Windows Vista, SAPI Talking Windows.
- ^ Vista Speech Demo from the Professional Developers Conference 2005 (link requires Internet Explorer)
- ^ Printing Enhancements in Windows Vista
- ^ Client Side Rendering
- ^ XPS and Color Printing Enhancements in Microsoft Windows Vista
- ^ Tim Sneath (November 17, 2005). Inside Windows Vista Printing. Channel 9. Microsoft. Retrieved on 2006-05-12.
- ^ New Networking Features in Windows Server 2008 and Windows Vista. Microsoft TechNet. Microsoft (February 15, 2006). Retrieved on 2006-04-29.
- ^ About Kernel Transaction Manager. MSDN. Microsoft.
- ^ Inside the Windows Vista Kernel: Part I
- ^ Protected Processes in Windows Vista
- ^ Windows NT 6.x Kernel Changes. (Word document)
- ^ Plug and Play: Architecture and Driver Support
- ^ See Boot Configuration Data Editor Frequently Asked Questions for details on BCD.
- ^ Microsoft. Restart Manager. MSDN Library. Microsoft.
- ^ Shutdown Changes for Windows Vista and Handling OS shutdown in Windows Vista
- ^ What's new in IMAPI
- ^ IMAPI 2.0 is a DLL, not a Windows service
- ^ Microsoft Image Mastering API 2.0
- ^ The Filing Cabinet: UDF Chat Transcript
- ^ a b Symbolic Links (Windows): MSDN Library
- ^ Storage improvements in Windows Vista and Windows Server 2008
- ^ Self-healing NTFS in Windows Server 2008 and Windows Vista
- ^ Windows Vista support for large-sector HDDs
- ^ NTFS changes in Vista
- ^ CNET.com (2007). Windows Vista Ultimate Review. Retrieved on 2007-01-31.
- ^ Digital Signatures for Kernel Modules on x64-based Systems Running Windows Vista. WHDC. Microsoft (May 19, 2006). Retrieved on 2006-05-19.
- ^ The staging and the installation of driver packages by using the PnP Utility (Pnputil.exe) in Windows Vista
- ^ Tom Archer (April 14, 2006). ReadyBoost - Using Your USB Key to Speed Up Windows Vista. Tom Archer's Blog. Microsoft. Retrieved on 2006-05-21.
- ^ Jim Allchin (23 May 2006). Retrieved on 2006-11-01.
- ^ Inside the Windows Vista kernel
- ^ Windows Vista: Performance. Microsoft (2006). Retrieved on 2006-04-30.
- ^ Microsoft (May 11, 2006). I/O Prioritization in Windows Vista. Driver Fundamentals. Windows Hardware Developer Central. Retrieved on 2006-12-31.
- ^ Jim Allchin. Offline Files. Retrieved on 2007-06-14.
- ^ What's New in Message Queuing 4.0. Message Queuing (MSMQ). Microsoft Developer Network. Retrieved on 2006-08-05.
- ^ Searching data. Retrieved on 2007-03-17.
- ^ Catherine Heller. Windows Vista Search: Syntax Update. Retrieved on 2007-06-23.
- ^ Querying the Index Programmatically. Retrieved on 2007-06-23.
- ^ ISearchQueryHelper::GenerateSQLFromUserQuery Method. Retrieved on 2007-06-23.
- ^ Quality Windows Audio-Video Experience - qWave. Microsoft. Retrieved on 2007-10-09.
- ^ Extend The Global Reach Of Your Applications With Unicode 5.0. MSDN. Retrieved on 2007-01-30.
- ^ What's New in Windows Vista — System Font (Segoe UI). MSDN. Retrieved on 2006-04-21.
- ^ Windows Vista - ClearType - Meiryo. PC Watch (August 29, 2005).
- ^ WebDAV in Windows Vista
- ^ Microsoft release regarding Network Projection
- ^ Top Ten UI breakthroughs for WPF
- ^ Kristan M. Kenney (June 5, 2006). Guided Help in Windows Vista. digitalfive.
- ^ Enabling Text Correction for Custom Ink Collectors
- ^ FRS and Sysvol Improvements. What's New in Group Policy in Windows Vista and Windows Server 2008. Microsoft TechNet. Retrieved on 2006-08-04.
[edit] External links
- Microsoft's Windows Vista homepage
- Making Your Application a Windows Vista Application: The Top Ten Things to Do — from MSDN.
- MSDN documentation for Networking features in Windows Vista
- A list of Vista ReadyBoost compatible devices