

The audio device-related metadata is saved in the endpoint PropertyStore. The same PropertyStore is available regardless of how often you restart your machine. Having this persistent GUID is more reliable than saving a waveOut ID or a friendly name for the endpoint. The same globally unique ID (GUID) is available regardless of how often you restart your machine. When you use endpoints, you can take advantage of the following: New API methods have been provided so that audio clients can start with the MMDevice ID of an endpoint and access the Wave or DirectSound ID for the same endpoint.
#Pnp audio device driver window vista windows#
Sets this endpoint as the default endpoint, if that is what is specified in the associated INF file.Īfter the endpoints have been enumerated, clients of the audio system can manipulate them directly by using the new Windows Vista APIs (as indicated previously) or indirectly by using the more familiar APIs such as Wave, DirectShow or DirectSound. This state indicates that a path was not found in Step 4, and jack detection is not supported by this endpoint. If the audio device supports jack detection, this state indicates that a path exists for the endpoint, and the jack is unplugged from the physical connector on the audio adapter. This indicates that a path exists as described in Step 4.

The state of the endpoint can be one of the following three values:Īctive. Populates the endpoint PropertyStore with property information from the registry keys of the audio device interface. For more information about the KSPIN structure, see KSPIN. A host pin is a KSPIN structure with its Communication member set to KSPIN_COMMUNICATION_SINK or KSPIN_COMMUNICATION_BOTH.
#Pnp audio device driver window vista code#
For example, AudioEndpointBuilder sets the name, icon, and the form factor.ĭetermines whether there is a path from the endpoint to a host pin that supports pulse code modulation (PCM), audio codec-3 (AC3), or Windows media video (WMV). Sets the default properties for the endpoint. For more information about KSNODETYPE_SPEAKER and other pin-category GUIDS, see Ksmedia.h in WinDDK\\inc\api. For example, when the AudioEndpointBuilder finds an unconnected bridge pin with a pin-category GUID of KSNODETYPE_SPEAKER, it creates a speaker endpoint for this bridge pin. The following list summarizes how the algorithm that is used by AudioEndpointBuilder works:Ĭreates an endpoint for any unconnected bridge pins. When an audio device driver registers a new instance of the KSCATEGORY_AUDIO device interface class, the AudioEndpointBuilder service detects the device interface notification and uses an algorithm to examine the topology of the audio devices in the system and take appropriate action. The AudioEndpointBuilder service monitors the KSCATEGORY_AUDIO class for device interface arrivals and removals. The MMDevice API refers to the new audio devices as endpoints. With two new APIs in Windows Vista, MMDevice API and WASAPI, you can access and manipulate these new audio devices. In Windows Vista and later versions of Windows, the concept of an audio device has been redesigned to better represent the device that the user physically interacts with. In Windows XP, the audio model used the term audio device to refer to a conceptual device in the Plug and Play (PnP) tree. The algorithm was designed to simplify the system access to multiplexed (MUXed) capture devices and to help work with topologies that involve multiple host pins and multiple bridge pins, or both. The AudioEndpointBuilder service uses an algorithm to discover and enumerate endpoints. This topic provides an overview of the algorithm that is used by the AudioEndpointBuilder service. In Windows Vista and later versions of Windows, the AudioEndpointBuilder is a system service that enumerates, initializes, and activates the audio endpoints in a system.
