Core Audio APIs

Overview of the Core Audio APIs technology.

To develop Core Audio APIs, you need these headers:

For programming guidance for this technology, see:

Enumerations

Title Description
_AUDCLNT_BUFFERFLAGS The _AUDCLNT_BUFFERFLAGS enumeration defines flags that indicate the status of an audio endpoint buffer.
AUDCLNT_SHAREMODE The AUDCLNT_SHAREMODE enumeration defines constants that indicate whether an audio stream will run in shared mode or in exclusive mode.
AUDCLNT_STREAMOPTIONS Defines values that describe the characteristics of an audio stream.
AUDIO_STREAM_CATEGORY Specifies the category of an audio stream.
AudioObjectType Specifies the type of an ISpatialAudioObject.
AudioSessionState The AudioSessionState enumeration defines constants that indicate the current state of an audio session.
ConnectorType The ConnectorType enumeration indicates the type of connection that a connector is part of.
DataFlow The DataFlow enumeration indicates the data-flow direction of an audio stream through a connector.
EDataFlow The EDataFlow enumeration defines constants that indicate the direction in which audio data flows between an audio endpoint device and an application.
EndpointFormFactor The EndpointFormFactor enumeration defines constants that indicate the general physical attributes of an audio endpoint device.
ERole The ERole enumeration defines constants that indicate the role that the system has assigned to an audio endpoint device.
KSJACK_SINK_CONNECTIONTYPE The KSJACK_SINK_CONNECTIONTYPE enumeration defines constants that specify the type of connection. These values are used in the KSJACK_SINK_INFORMATION structure that stores information about an audio jack sink.
PartType The PartType enumeration defines constants that indicate whether a part in a device topology is a connector or subunit.
SpatialAudioHrtfDirectivityType Specifies the shape in which sound is emitted by an ISpatialAudioObjectForHrtf.
SpatialAudioHrtfDistanceDecayType Specifies the type of decay applied over distance from the position of an ISpatialAudioObjectForHrtf to the position of the listener.
SpatialAudioHrtfEnvironmentType Specifies the type of acoustic environment that is simulated when audio is processed for an ISpatialAudioObjectForHrtf.
SpatialAudioMetadataCopyMode Specifies the copy mode used when calling ISpatialAudioMetadataCopier::CopyMetadataForFrames.
SpatialAudioMetadataWriterOverflowMode Specifies the desired behavior when an ISpatialAudioMetadataWriter attempts to write more items into the metadata buffer than was specified when the client was initialized.

Functions

Title Description
Activate The Activate method creates a COM object with the specified interface.
Activate The Activate method activates a function-specific interface on a connector or subunit.
ActivateAudioInterfaceAsync Enables Windows Store apps to access preexisting Component Object Model (COM) interfaces in the WASAPI family.
ActivateCompleted Indicates that activation of a WASAPI interface is complete and results are available.
ActivateSpatialAudioMetadataCopier Creates an ISpatialAudioMetadataWriter object for copying spatial audio metadata items from one ISpatialAudioMetadataItems object to another.
ActivateSpatialAudioMetadataItems Creates an ISpatialAudioMetadataItems object for storing spatial audio metadata items.
ActivateSpatialAudioMetadataReader Creates an ISpatialAudioMetadataWriter object for reading spatial audio metadata items from an ISpatialAudioMetadataItems object.
ActivateSpatialAudioMetadataWriter Creates an ISpatialAudioMetadataWriter object for writing spatial audio metadata items to an ISpatialAudioMetadataItems object.
ActivateSpatialAudioObject Activates an ISpatialAudioObject for audio rendering.
ActivateSpatialAudioObjectForHrtf Activates an ISpatialAudioObjectForHrtf for audio rendering.
ActivateSpatialAudioObjectForMetadataCommands Activate an ISpatialAudioObjectForMetadataCommands for rendering.
ActivateSpatialAudioObjectForMetadataItems Activate an ISpatialAudioObjectForMetadataItems for rendering.
ActivateSpatialAudioStream Activates and initializes spatial audio stream using one of the spatial audio stream activation structures.
AttachToBuffer Attaches caller-provided memory for storage of ISpatialAudioMetadataItems objects.
AttachToPopulatedBuffer Attaches a previously populated buffer for storage of ISpatialAudioMetadataItems objects. The metadata items already in the buffer are retained.
BeginUpdatingAudioObjects Puts the system into the state where audio object data can be submitted for processing and the ISpatialAudioObject state can be modified.
Close Completes any necessary operations on the SpatialAudioMetadataItems object and releases the object.
Close Completes any necessary operations on the SpatialAudioMetadataItems object and releases the object.
Close Completes any needed operations on the metadata buffer and releases the specified ISpatialAudioMetadataItems object.
ConnectTo The ConnectTo method connects this connector to a connector in another device-topology object.
CopyMetadataForFrames Copies metadata items from the source ISpatialAudioMetadataItems, provided to the Open method, object to the destination ISpatialAudioMetadataItems object, specified with the dstMetadataItems parameter.
DetachBuffer Detaches the buffer. Memory can only be attached to a single metadata item at a time.
Disconnect The Disconnect method disconnects this connector from another connector.
EndUpdatingAudioObjects Notifies the system that the app has finished supplying audio data for the spatial audio objects activated with ActivateSpatialAudioObject.
EnumAudioEndpoints The EnumAudioEndpoints method generates a collection of audio endpoint devices that meet the specified criteria.
EnumPartsIncoming The EnumPartsIncoming method gets a list of all the incoming parts—that is, the parts that reside on data paths that are upstream from this part.
EnumPartsOutgoing The EnumPartsOutgoing method retrieves a list of all the outgoing parts—that is, the parts that reside on data paths that are downstream from this part.
Get4BRange The Get4BRange method gets the 4-byte range of the device-specific property value.
GetActivateResult Gets the results of an asynchronous activation of a WASAPI interface initiated by an application calling the ActivateAudioInterfaceAsync function.
GetAllVolumes The GetAllVolumes method retrieves the volume levels for all the channels in the audio stream.
GetAllVolumes The GetAllVolumes method retrieves the volume levels for all the channels in the audio session.
GetAudioObjectType Gets a value specifying the type of audio object that is represented by the ISpatialAudioObject.
GetAudioSessionControl The GetAudioSessionControl method retrieves an audio session control.
GetAvailableDynamicObjectCount Gets the number of dynamic spatial audio objects that are currently available.
GetAvailableOffloadConnectorCount The GetAvailableOffloadConnectorCount method retrieves the number of avaialable endpoints that can handle offloaded streams on the hardware audio engine.
GetBuffer Gets a buffer that is used to supply the audio data for the ISpatialAudioObject.
GetBuffer Retrieves a pointer to the next available packet of data in the capture endpoint buffer.
GetBuffer Retrieves a pointer to the next available space in the rendering endpoint buffer into which the caller can write a data packet.
GetBufferSize The GetBufferSize method retrieves the size (maximum capacity) of the endpoint buffer.
GetBufferSizeLimits The GetBufferSizeLimits method returns the buffer size limits of the hardware audio engine in 100-nanosecond units.
GetChannelConfig The GetChannelConfig method gets the current channel-configuration mask from a channel-configuration control.
GetChannelCount The GetChannelCount method gets the number of channels in the audio stream.
GetChannelCount The GetChannelCount method gets the number of channels in the audio stream.
GetChannelCount The GetChannelCount method retrieves the number of channels in the audio stream.
GetChannelCount The GetChannelCount method retrieves the number of channels in the stream format for the audio session.
GetChannelCount The GetChannelCount method gets a count of the channels in the audio stream that enters or leaves the audio endpoint device.
GetChannelsPeakValues The GetChannelsPeakValues method gets the peak sample values for all the channels in the audio stream.
GetChannelVolume The GetChannelVolume method retrieves the volume level for the specified channel in the audio stream.
GetChannelVolume The GetChannelVolume method retrieves the volume level for the specified channel in the audio session.
GetChannelVolumeLevel The GetChannelVolumeLevel method gets the volume level, in decibels, of the specified channel in the audio stream that enters or leaves the audio endpoint device.
GetChannelVolumeLevelScalar The GetChannelVolumeLevelScalar method gets the normalized, audio-tapered volume level of the specified channel of the audio stream that enters or leaves the audio endpoint device.
GetChannelVolumes The GetChannelVolumes method retrieves the volume levels for the various audio channels in the offloaded stream.
GetCharacteristics The GetCharacteristics method is reserved for future use.
GetConnectedTo The GetConnectedTo method gets the connector to which this connector is connected.
GetConnector The GetConnector method gets the connector that is specified by a connector number.
GetConnectorCount The GetConnectorCount method gets the number of connectors in the device-topology object.
GetConnectorIdConnectedTo The GetConnectorIdConnectedTo method gets the global ID of the connector, if any, that this connector is connected to.
GetControlInterface The GetControlInterface method gets a reference to the specified control interface, if this part supports it.
GetControlInterfaceCount The GetControlInterfaceCount method gets the number of control interfaces that this part supports.
GetCount Gets the number of supported audio formats in the list.
GetCount The GetCount method retrieves a count of the devices in the device collection.
GetCount The GetCount method gets the number of parts in the parts list.
GetCount The GetCount method gets the total number of audio sessions that are open on the audio device.
GetCurrentPadding The GetCurrentPadding method retrieves the number of frames of padding in the endpoint buffer.
GetCurrentSharedModeEnginePeriod Returns the current format and periodicity of the audio engine.
GetDataFlow The GetDataFlow method indicates whether the audio endpoint device is a rendering device or a capture device.
GetDataFlow The GetDataFlow method gets the direction of data flow through this connector.
GetDefaultAudioEndpoint The GetDefaultAudioEndpoint method retrieves the default audio endpoint for the specified data-flow direction and role.
GetDevice The GetDevice method retrieves an audio endpoint device that is identified by an endpoint ID string.
GetDeviceId The GetDeviceId method gets the device identifier of the device that is represented by the device-topology object.
GetDeviceIdConnectedTo The GetDeviceIdConnectedTo method gets the device identifier of the audio device, if any, that this connector is connected to.
GetDevicePeriod The GetDevicePeriod method retrieves the length of the periodic interval separating successive processing passes by the audio engine on the data in the endpoint buffer.
GetDevicePosition The GetDevicePosition method gets the current device position, in frames, directly from the hardware.
GetDevicePreferredFormat The GetDevicePreferredFormat method gets the preferred audio stream format for the connection.
GetDisplayName The GetDisplayName method retrieves the display name for the audio session.
GetEnabled The GetEnabled method gets the current state (enabled or disabled) of the AGC.
GetEnabled The GetEnabled method gets the current state (enabled or disabled) of the loudness control.
GetEngineFormat The GetEngineFormat method retrieves the current data format of the offloaded audio stream.
GetFormat Gets the format with the specified index in the list. The formats are listed in order of importance. The most preferable format is first in the list.
GetFrameCount Gets the total frame count of the ISpatialAudioMetadataItems, which defines valid item offsets.
GetFrequency The GetFrequency method gets the device frequency.
GetGfxState The GetGfxState method retrieves the GFX state of the offloaded audio stream.
GetGlobalId The GetGlobalId method gets the global ID of this part.
GetGroupingParam The GetGroupingParam method retrieves the grouping parameter of the audio session.
GetIconPath The GetIconPath method retrieves the path for the display icon for the audio session.
GetId The GetId method retrieves an endpoint ID string that identifies the audio endpoint device.
GetIID The GetIID method gets the interface ID of the function-specific control interface of the part.
GetInfo Gets the total frame count for the ISpatialAudioMetadataItems, which defines valid item offsets.
GetItemCount The current number of items stored by the ISpatialAudioMetadataItems.
GetJackCount The GetJackCount method gets the number of jacks required to connect to an audio endpoint device.
GetJackCount The GetJackCount method gets the number of jacks on the connector, which are required to connect to an endpoint device.
GetJackDescription The GetJackDescription method gets a description of an audio jack.
GetJackDescription2 The GetJackDescription2 method gets the description of a specified audio jack.
GetJackSinkInformation The GetJackSinkInformation method retrieves the sink information for the specified jack.
GetLevel The GetLevel method gets the peak level that the peak meter recorded for the specified channel since the peak level for that channel was previously read.
GetLevel The GetLevel method gets the volume level, in decibels, of the specified channel.
GetLevelRange The GetLevelRange method gets the range, in decibels, of the volume level of the specified channel.
GetLocalEffectsState The GetLocalEffectsState method retrieves the local effects state that is currently applied to the offloaded audio stream.
GetLocalId The GetLocalId method gets the local ID of this part.
GetMasterVolume The GetMasterVolume method retrieves the client volume level for the audio session.
GetMasterVolumeLevel The GetMasterVolumeLevel method gets the master volume level, in decibels, of the audio stream that enters or leaves the audio endpoint device.
GetMasterVolumeLevelScalar The GetMasterVolumeLevelScalar method gets the master volume level of the audio stream that enters or leaves the audio endpoint device. The volume level is expressed as a normalized, audio-tapered value in the range from 0.0 to 1.0.
GetMaxDynamicObjectCount Gets the maximum number of dynamic audio objects for the spatial audio client.
GetMaxFrameCount Gets the maximum possible frame count per processing pass. This method can be used to determine the size of the source buffer that should be allocated to convey audio data for each processing pass.
GetMaxItemCount The maximum number of items allowed by the ISpatialAudioMetadataItems, defined when the object is created.
GetMaxValueBufferLength The size of the largest command value defined by the metadata format for the ISpatialAudioMetadataItems.
GetMeterChannelCount Gets the number of available audio channels in the offloaded stream that can be metered.
GetMeteringChannelCount The GetMeteringChannelCount method gets the number of channels in the audio stream that are monitored by peak meters.
GetMeteringData The GetMeteringData method retrieves general information about the available audio channels in the offloaded stream.
GetMixFormat The GetMixFormat method retrieves the stream format that the audio engine uses for its internal processing of shared-mode streams.
GetMute The GetMute method retrieves the mute status of the offloaded audio stream.
GetMute The GetMute method gets the current state (enabled or disabled) of the mute control.
GetMute The GetMute method retrieves the current muting state for the audio session.
GetMute The GetMute method gets the muting state of the audio stream that enters or leaves the audio endpoint device.
GetName The GetName method gets the friendly name for the audio function that the control interface encapsulates.
GetName The GetName method gets the friendly name of this part.
GetNativeStaticObjectTypeMask Gets a channel mask which represents the subset of static speaker bed channels native to current rendering engine.
GetNextPacketSize The GetNextPacketSize method retrieves the number of frames in the next data packet in the capture endpoint buffer.
GetPart The GetPart method gets a part from the parts list.
GetPartById The GetPartById method gets a part that is identified by its local ID.
GetPartType The GetPartType method gets the part type of this part.
GetPeakValue The GetPeakValue method gets the peak sample value for the channels in the audio stream.
GetPosition The GetPosition method gets the current device position.
GetProcessId The GetProcessId method retrieves the process identifier of the audio session.
GetSelection The GetSelection method gets the local ID of the part that is connected to the selector input that is currently selected.
GetSelection The GetSelection method gets the local ID of the part that is connected to the selector output that is currently selected.
GetService Gets additional services from the ISpatialAudioObjectRenderStream.
GetService The GetService method accesses additional services from the audio client object.
GetSession The GetSession method gets the audio session specified by an audio session number.
GetSessionEnumerator The GetSessionEnumerator method gets a pointer to the audio session enumerator object.
GetSessionIdentifier The GetSessionIdentifier method retrieves the audio session identifier.
GetSessionInstanceIdentifier The GetSessionInstanceIdentifier method retrieves the identifier of the audio session instance.
GetSharedModeEnginePeriod Returns the range of periodicities supported by the engine for the specified stream format.
GetSignalPath The GetSignalPath method gets a list of parts in the signal path that links two parts, if the path exists.
GetSimpleAudioVolume The GetSimpleAudioVolume method retrieves a simple audio volume control.
GetSpatialAudioMetadataItems Gets a pointer to the ISpatialAudioMetadataItems object which stores metadata items for the ISpatialAudioObjectForMetadataItems.
GetSpatialAudioMetadataItemsBufferLength Gets the length of the buffer required to store the specified number of spatial audio metadata items.
GetState The GetState method retrieves the current device state.
GetState The GetState method retrieves the current state of the audio session.
GetStaticObjectPosition Gets the position in 3D space of the specified static spatial audio channel.
GetStreamLatency The GetStreamLatency method retrieves the maximum latency for the current stream and can be called any time after the stream has been initialized.
GetSubType The GetSubType method gets the part subtype of this part.
GetSubunit The GetSubunit method gets the subunit that is specified by a subunit number.
GetSubunitCount The GetSubunitCount method gets the number of subunits in the device topology.
GetSupportedAudioObjectFormatEnumerator Gets an IAudioFormatEnumerator that contains all supported audio formats for spatial audio objects, the first item in the list represents the most preferable format.
GetTopologyObject The GetTopologyObject method gets a reference to the IDeviceTopology interface of the device-topology object that contains this part.
GetType The GetType method gets the type of this connector.
GetType The GetType method gets the data type of the device-specific property value.
GetValue The GetValue method gets the current value of the device-specific property.
GetVolumeChannelCount The GetVolumeChannelCount method retrieves the number of available audio channels in the offloaded stream.
GetVolumeRange The GetVolumeRange method gets the volume range, in decibels, of the audio stream that enters or leaves the audio endpoint device.
GetVolumeRangeChannel The GetVolumeRangeChannel method gets the volume range for a specified channel.
GetVolumeStepInfo The GetVolumeStepInfo method gets information about the current step in the volume range.
Initialize The Initialize method initializes the audio stream.
InitializeSharedAudioStream Initializes a shared stream with the specified periodicity.
IsActive Gets a boolean value indicating whether the ISpatialAudioObject is valid.
IsAudioObjectFormatSupported Gets a value indicating whether ISpatialAudioObjectRenderStream supports a the specified format.
IsConnected The IsConnected method indicates whether this connector is connected to another connector.
IsFormatSupported The IsFormatSupported method indicates whether the audio endpoint device supports the specified audio stream format.
IsFormatSupported The IsFormatSupported method indicates whether the audio endpoint device supports a particular stream format.
IsLastBufferControlSupported Indicates if last buffer control is supported.
IsOffloadCapable The IsOffloadCapable method retrieves information about whether or not the endpoint on which a stream is created is capable of supporting an offloaded audio stream.
IsSpatialAudioStreamAvailable When successful, gets a value indicating whether the currently active spatial rendering engine supports the specified spatial audio render stream.
IsSystemSoundsSession The IsSystemSoundsSession method indicates whether the session is a system sounds session.
Item The Item method retrieves a pointer to the specified item in the device collection.
OnAvailableDynamicObjectCountChange Notifies the spatial audio client when the rendering capacity for an ISpatialAudioObjectRenderStream is about to change, specifies the time after which the change will occur, and specifies the number of dynamic audio objects that will be available after the change.
OnChannelVolumeChanged The OnChannelVolumeChanged method notifies the client that the volume level of an audio channel in the session submix has changed.
OnDefaultDeviceChanged The OnDefaultDeviceChanged method notifies the client that the default audio endpoint device for a particular device role has changed.
OnDeviceAdded The OnDeviceAdded method indicates that a new audio endpoint device has been added.
OnDeviceRemoved The OnDeviceRemoved method indicates that an audio endpoint device has been removed.
OnDeviceStateChanged The OnDeviceStateChanged method indicates that the state of an audio endpoint device has changed.
OnDisplayNameChanged The OnDisplayNameChanged method notifies the client that the display name for the session has changed.
OnGroupingParamChanged The OnGroupingParamChanged method notifies the client that the grouping parameter for the session has changed.
OnIconPathChanged The OnIconPathChanged method notifies the client that the display icon for the session has changed.
OnNotify The OnNotify method notifies the client when the status of a connector or subunit changes.
OnNotify The OnNotify method notifies the client that the volume level or muting state of the audio endpoint device has changed.
OnPropertyValueChanged The OnPropertyValueChanged method indicates that the value of a property belonging to an audio endpoint device has changed.
OnSessionCreated The OnSessionCreated method notifies the registered processes that the audio session has been created.
OnSessionDisconnected The OnSessionDisconnected method notifies the client that the audio session has been disconnected.
OnSimpleVolumeChanged The OnSimpleVolumeChanged method notifies the client that the volume level or muting state of the audio session has changed.
OnStateChanged The OnStateChanged method notifies the client that the stream-activity state of the session has changed.
OnVolumeDuckNotification The OnVolumeDuckNotification method sends a notification about a pending system ducking event.
OnVolumeUnduckNotification The OnVolumeUnduckNotification method sends a notification about a pending system unducking event.
Open Opens an ISpatialAudioMetadataItems object for copying.
Open Opens an ISpatialAudioMetadataItems object for reading.
Open Opens an ISpatialAudioMetadataItems object for writing.
OpenPropertyStore The OpenPropertyStore method retrieves an interface to the device's property store.
QueryHardwareSupport The QueryHardwareSupport method queries the audio endpoint device for its hardware-supported functions.
QueryHardwareSupport The QueryHardwareSupport method queries the audio endpoint device for its hardware-supported functions.
ReadNextItem Gets the number of commands and the sample offset for the metadata item being read.
ReadNextItemCommand Reads metadata commands and value data for the current item.
RegisterAudioSessionNotification The RegisterAudioSessionNotification method registers the client to receive notifications of session events, including changes in the stream state.
RegisterControlChangeCallback The RegisterControlChangeCallback method registers the IControlChangeNotify interface, which the client implements to receive notifications of status changes in this part.
RegisterControlChangeNotify The RegisterControlChangeNotify method registers a client's notification callback interface.
RegisterDuckNotification The RegisterDuckNotification method registers the application with the session manager to receive ducking notifications.
RegisterEndpointNotificationCallback The RegisterEndpointNotificationCallback method registers a client's notification callback interface.
RegisterSessionNotification The RegisterSessionNotification method registers the application to receive a notification when a session is created.
ReleaseBuffer The ReleaseBuffer method releases the buffer.
ReleaseBuffer The ReleaseBuffer method releases the buffer space acquired in the previous call to the IAudioRenderClient::GetBuffer method.
ReleaseOutputDataPointerForLastBuffer Releases the output data pointer for the last buffer.
Reset Reset a stopped audio stream.
Reset The Reset method resets the audio stream.
ResetToDefault Resets the format to the default setting provided by the device manufacturer.
SetAllVolumes The SetAllVolumes method sets the individual volume levels for all the channels in the audio stream.
SetAllVolumes The SetAllVolumes method sets the individual volume levels for all the channels in the audio session.
SetChannelConfig The SetChannelConfig method sets the channel-configuration mask in a channel-configuration control.
SetChannelVolume The SetChannelVolume method sets the volume level for the specified channel in the audio stream.
SetChannelVolume The SetChannelVolume method sets the volume level for the specified channel in the audio session.
SetChannelVolumeLevel The SetChannelVolumeLevel method sets the volume level, in decibels, of the specified channel of the audio stream that enters or leaves the audio endpoint device.
SetChannelVolumeLevelScalar The SetChannelVolumeLevelScalar method sets the normalized, audio-tapered volume level of the specified channel in the audio stream that enters or leaves the audio endpoint device.
SetChannelVolumes The SetChannelVolumes method sets the volume levels for the various audio channels in the offloaded stream.
SetClientProperties Sets the properties of the audio stream by populating an AudioClientProperties structure.
SetDirectivity Sets the spatial audio directivity model for the ISpatialAudioObjectForHrtf.
SetDisplayName The SetDisplayName method assigns a display name to the current session.
SetDistanceDecay Sets the decay model that is applied over distance from the position of an ISpatialAudioObjectForHrtf to the position of the listener.
SetDuckingPreference The SetDuckingPreference method enables or disables the default stream attenuation experience (auto-ducking) provided by the system.
SetEnabled The SetEnabled method enables or disables the AGC.
SetEnabled The SetEnabled method enables or disables the loudness control.
SetEndOfStream Instructs the system that the final block of audio data has been submitted for the ISpatialAudioObject so that the object can be deactivated and it's resources reused.
SetEngineDeviceFormat The SetEngineDeviceFormat method sets the waveform audio format for the hardware audio engine.
SetEnvironment Sets the type of acoustic environment that is simulated when audio is processed for the ISpatialAudioObjectForHrtf.
SetEventHandle The SetEventHandle method sets the event handle that the system signals when an audio buffer is ready to be processed by the client.
SetGain Sets the gain for the ISpatialAudioObjectForHrtf.
SetGfxState The SetGfxState method sets the GFX state of the offloaded audio stream.
SetGroupingParam The SetGroupingParam method assigns a session to a grouping of sessions.
SetIconPath The SetIconPath method assigns a display icon to the current session.
SetLevel The SetLevel method sets the volume level, in decibels, of the specified channel.
SetLevelAllChannels The SetLevelAllChannels method sets the volume levels, in decibels, of all the channels in the audio stream.
SetLevelUniform The SetLevelUniform method sets all channels in the audio stream to the same uniform volume level, in decibels.
SetLocalEffectsState The SetLocalEffectsState method sets the local effects state that is to be applied to the offloaded audio stream.
SetMasterVolume The SetMasterVolume method sets the master volume level for the audio session.
SetMasterVolumeLevel The SetMasterVolumeLevel method sets the master volume level, in decibels, of the audio stream that enters or leaves the audio endpoint device.
SetMasterVolumeLevelScalar The SetMasterVolumeLevelScalar method sets the master volume level of the audio stream that enters or leaves the audio endpoint device. The volume level is expressed as a normalized, audio-tapered value in the range from 0.0 to 1.0.
SetMute The SetMute method sets the mute status of the offloaded audio stream.
SetMute The SetMute method enables or disables the mute control.
SetMute The SetMute method sets the muting state for the audio session.
SetMute The SetMute method sets the muting state of the audio stream that enters or leaves the audio endpoint device.
SetOrientation Sets the orientation in 3D space, relative to the listener's frame of reference, from which the ISpatialAudioObjectForHrtf audio data will be rendered.
SetPosition Sets the position in 3D space, relative to the listener, from which the ISpatialAudioObjectForHrtf audio data will be rendered.
SetPosition Sets the position in 3D space, relative to the listener, from which the ISpatialAudioObject audio data will be rendered.
SetSampleRate The SetSampleRate method sets the sample rate of a stream.
SetSelection The SetSelection method selects one of the inputs of the input selector.
SetSelection The SetSelection method selects one of the outputs of the output selector.
SetValue The SetValue method sets the value of the device-specific property.
SetVolume Sets an audio amplitude multiplier that will be applied to the audio data provided by the ISpatialAudioObject before it is submitted to the audio rendering engine.
Start Starts the spatial audio stream.
Start The Start method starts the audio stream.
Stop Stops a running audio stream.
Stop The Stop method stops the audio stream.
UnregisterAudioSessionNotification The UnregisterAudioSessionNotification method deletes a previous registration by the client to receive notifications.
UnregisterControlChangeCallback The UnregisterControlChangeCallback method removes the registration of an IControlChangeNotify interface that the client previously registered by a call to the IPart::RegisterControlChangeCallback method.
UnregisterControlChangeNotify The UnregisterControlChangeNotify method deletes the registration of a client's notification callback interface that the client registered in a previous call to the IAudioEndpointVolume::RegisterControlChangeNotify method.
UnregisterDuckNotification The UnregisterDuckNotification method deletes a previous registration by the application to receive notifications.
UnregisterEndpointNotificationCallback The UnregisterEndpointNotificationCallback method deletes the registration of a notification interface that the client registered in a previous call to the IMMDeviceEnumerator::RegisterEndpointNotificationCallback method.
UnregisterSessionNotification The UnregisterSessionNotification method deletes the registration to receive a notification when a session is created.
VolumeStepDown The VolumeStepDown method decrements, by one step, the volume level of the audio stream that enters or leaves the audio endpoint device.
VolumeStepUp The VolumeStepUp method increments, by one step, the volume level of the audio stream that enters or leaves the audio endpoint device.
WriteNextItem Starts a new metadata item at the specified offset.
WriteNextItemCommand Writes metadata commands and value data to the current item.
WriteNextMetadataCommand Writes a metadata command to the spatial audio object, each command may only be added once per object per processing cycle.

Interfaces

Title Description
IActivateAudioInterfaceAsyncOperation Represents an asynchronous operation activating a WASAPI interface and provides a method to retrieve the results of the activation.
IActivateAudioInterfaceCompletionHandler Provides a callback to indicate that activation of a WASAPI interface is complete.
IAudioAutoGainControl The IAudioAutoGainControl interface provides access to a hardware automatic gain control (AGC).
IAudioBass The IAudioBass interface provides access to a hardware bass-level control.
IAudioCaptureClient The IAudioCaptureClient interface enables a client to read input data from a capture endpoint buffer.
IAudioChannelConfig The IAudioChannelConfig interface provides access to a hardware channel-configuration control.
IAudioClient The IAudioClient interface enables a client to create and initialize an audio stream between an audio application and the audio engine (for a shared-mode stream) or the hardware buffer of an audio endpoint device (for an exclusive-mode stream).
IAudioClient2 The IAudioClient2 interface is derived from the IAudioClient interface, with a set of additional methods that enable a Windows Audio Session API (WASAPI) audio client to do the following:_opt in for offloading, query stream properties, and get information from the hardware that handles offloading.The audio client can be successful in creating an offloaded stream if the underlying endpoint supports the hardware audio engine, the endpoint has been enumerated and discovered by the audio system, and there are still offload pin instances available on the endpoint.
IAudioClient3 The IAudioClient3 interface is derived from the IAudioClient2 interface, with a set of additional methods that enable a Windows Audio Session API (WASAPI) audio client to query for the audio engine's supported periodicities and current periodicity as well as request initialization a shared audio stream with a specified periodicity.
IAudioClock The IAudioClock interface enables a client to monitor a stream's data rate and the current position in the stream.
IAudioClock2 The IAudioClock2 interface is used to get the current device position.
IAudioClockAdjustment The IAudioClockAdjustment interface is used to adjust the sample rate of a stream.
IAudioEndpointFormatControl Used for resetting the current audio endpoint device format.
IAudioEndpointLastBufferControl Provides functionality to allow an offload stream client to notify the endpoint that the last buffer has been sent only partially filled.
IAudioEndpointOffloadStreamMeter The IAudioEndpointOffloadStreamMeter interface retrieves general information about the audio channels in the offloaded audio stream.
IAudioEndpointOffloadStreamMute The IAudioEndpointOffloadStreamMute interface allows a client to manipulate the mute status of the offloaded audio stream.
IAudioEndpointOffloadStreamVolume The IAudioEndpointOffloadStreamVolume interface allows the client application to manipulate the volume level of the offloaded audio stream.
IAudioEndpointVolume The IAudioEndpointVolume interface represents the volume controls on the audio stream to or from an audio endpoint device.
IAudioEndpointVolumeCallback The IAudioEndpointVolumeCallback interface provides notifications of changes in the volume level and muting state of an audio endpoint device.
IAudioEndpointVolumeEx The IAudioEndpointVolumeEx interface provides volume controls on the audio stream to or from a device endpoint.
IAudioFormatEnumerator Provides a list of supported audio formats. The most preferred format is first in the list. Get a reference to this interface by calling ISpatialAudioClient::GetSupportedAudioObjectFormatEnumerator.
IAudioInputSelector The IAudioInputSelector interface provides access to a hardware multiplexer control (input selector).
IAudioLfxControl The IAudioLfxControl interface allows the client to apply or remove local effects from the offloaded audio stream.
IAudioLoudness The IAudioLoudness interface provides access to a "loudness" compensation control.
IAudioMeterInformation The IAudioMeterInformation interface represents a peak meter on an audio stream to or from an audio endpoint device.
IAudioMidrange The IAudioMidrange interface provides access to a hardware midrange-level control.
IAudioMute The IAudioMute interface provides access to a hardware mute control.
IAudioOutputSelector The IAudioOutputSelector interface provides access to a hardware demultiplexer control (output selector).
IAudioPeakMeter The IAudioPeakMeter interface provides access to a hardware peak-meter control.
IAudioRenderClient The IAudioRenderClient interface enables a client to write output data to a rendering endpoint buffer.
IAudioSessionControl The IAudioSessionControl interface enables a client to configure the control parameters for an audio session and to monitor events in the session.
IAudioSessionControl2 The IAudioSessionControl2 interface can be used by a client to get information about the audio session.
IAudioSessionEnumerator The IAudioSessionEnumerator interface enumerates audio sessions on an audio device.
IAudioSessionEvents The IAudioSessionEvents interface provides notifications of session-related events such as changes in the volume level, display name, and session state.
IAudioSessionManager The IAudioSessionManager interface enables a client to access the session controls and volume controls for both cross-process and process-specific audio sessions.
IAudioSessionManager2 The IAudioSessionManager2 interface enables an application to manage submixes for the audio device.
IAudioSessionNotification The IAudioSessionNotification interface provides notification when an audio session is created.
IAudioStreamVolume The IAudioStreamVolume interface enables a client to control and monitor the volume levels for all of the channels in an audio stream.
IAudioTreble The IAudioTreble interface provides access to a hardware treble-level control.
IAudioVolumeDuckNotification The IAudioVolumeDuckNotification interface is used to by the system to send notifications about stream attenuation changes.Stream Attenuation, or ducking, is a feature introduced in Windows 7, where the system adjusts the volume of a non-communication stream when a new communication stream is opened. For more information about this feature, see Default Ducking Experience.
IAudioVolumeLevel The IAudioVolumeLevel interface provides access to a hardware volume control.
IChannelAudioVolume The IChannelAudioVolume interface enables a client to control and monitor the volume levels for all of the channels in the audio session that the stream belongs to.
IConnector The IConnector interface represents a point of connection between components.
IControlChangeNotify The IControlChangeNotify interface provides notifications when the status of a part (connector or subunit) changes.
IControlInterface The IControlInterface interface represents a control interface on a part (connector or subunit) in a device topology. The client obtains a reference to a part's IControlInterface interface by calling the IPart::GetControlInterface method.
IDeviceSpecificProperty The IDeviceSpecificProperty interface provides access to the control value of a device-specific hardware control.
IDeviceTopology The IDeviceTopology interface provides access to the topology of an audio device.
IHardwareAudioEngineBase The IHardwareAudioEngineBase interface is implemented by audio endpoints for the audio stack to use to configure and retrieve information about the hardware audio engine.
IKsFormatSupport The IKsFormatSupport interface provides information about the audio data formats that are supported by a software-configured I/O connection (typically a DMA channel) between an audio adapter device and system memory.
IKsJackDescription The IKsJackDescription interface provides information about the jacks or internal connectors that provide a physical connection between a device on an audio adapter and an external or internal endpoint device (for example, a microphone or CD player).
IKsJackDescription2 The IKsJackDescription2 interface provides information about the jacks or internal connectors that provide a physical connection between a device on an audio adapter and an external or internal endpoint device (for example, a microphone or CD player).
IKsJackSinkInformation The IKsJackSinkInformation interface provides access to jack sink information if the jack is supported by the hardware.
IMMDevice The IMMDevice interface encapsulates the generic features of a multimedia device resource.
IMMDeviceCollection The IMMDeviceCollection interface represents a collection of multimedia device resources.
IMMDeviceEnumerator The IMMDeviceEnumerator interface provides methods for enumerating multimedia device resources.
IMMEndpoint The IMMEndpoint interface represents an audio endpoint device.
IMMNotificationClient The IMMNotificationClient interface provides notifications when an audio endpoint device is added or removed, when the state or properties of an endpoint device change, or when there is a change in the default role assigned to an endpoint device.
IPart The IPart interface represents a part (connector or subunit) of a device topology.
IPartsList The IPartsList interface represents a list of parts, each of which is an object with an IPart interface that represents a connector or subunit.
IPerChannelDbLevel The IPerChannelDbLevel interface represents a generic subunit control interface that provides per-channel control over the volume level, in decibels, of an audio stream or of a frequency band in an audio stream.
ISimpleAudioVolume The ISimpleAudioVolume interface enables a client to control the master volume level of an audio session.
ISpatialAudioClient The ISpatialAudioClient interface enables a client to create audio streams that emit audio from a position in 3D space.
ISpatialAudioMetadataClient Provides a class factory for creating ISpatialAudioMetadataItems, ISpatialAudioMetadataWriter, ISpatialAudioMetadataReader, and ISpatialAudioMetadataCopier objects.
ISpatialAudioMetadataCopier Provides methods for copying all or subsets of metadata items from a source SpatialAudioMetadataItems into a destination SpatialAudioMetadataItems.
ISpatialAudioMetadataItems Represents a buffer of spatial audio metadata items.
ISpatialAudioMetadataItemsBuffer Provides methods for attaching buffers to SpatialAudioMetadataItems for in-place storage of data.
ISpatialAudioMetadataReader Provides methods for extracting spatial audio metadata items and item command value pairs from an ISpatialAudioMetadataItems object.
ISpatialAudioMetadataWriter Provides methods for storing spatial audio metadata items positioned within a range of corresponding audio frames.
ISpatialAudioObject Represents an object that provides audio data to be rendered from a position in 3D space, relative to the user.
ISpatialAudioObjectBase Base interface that represents an object that provides audio data to be rendered from a position in 3D space, relative to the user.
ISpatialAudioObjectForHrtf Represents an object that provides audio data to be rendered from a position in 3D space, relative to the user, a head-relative transfer function (HRTF).
ISpatialAudioObjectForMetadataCommands Used to write metadata commands for spatial audio.
ISpatialAudioObjectForMetadataItems Used to write spatial audio metadata for applications that require multiple metadata items per buffer with frame-accurate placement.
ISpatialAudioObjectRenderStream Provides methods for controlling a spatial audio object render stream, including starting, stopping, and resetting the stream.
ISpatialAudioObjectRenderStreamBase Base interface that provides methods for controlling a spatial audio object render stream, including starting, stopping, and resetting the stream.
ISpatialAudioObjectRenderStreamForHrtf Provides methods for controlling an Hrtf spatial audio object render stream, including starting, stopping, and resetting the stream.
ISpatialAudioObjectRenderStreamForMetadata Provides methods for controlling a spatial audio object render stream for metadata, including starting, stopping, and resetting the stream.
ISpatialAudioObjectRenderStreamNotify Provides notifications for spatial audio clients to respond to changes in the state of an ISpatialAudioObjectRenderStream.
ISubunit The ISubunit interface represents a hardware subunit (for example, a volume control) that lies in the data path between a client and an audio endpoint device.

Structures

Title Description
AUDIO_VOLUME_NOTIFICATION_DATA The AUDIO_VOLUME_NOTIFICATION_DATA structure describes a change in the volume level or muting state of an audio endpoint device.
AudioExtensionParams This structure is passed to the Control Panel Endpoint Extension property page through IShellPropSheetExt::AddPages and is used to create endpoint PropertyPages.
DIRECTX_AUDIO_ACTIVATION_PARAMS The DIRECTX_AUDIO_ACTIVATION_PARAMS structure specifies the initialization parameters for a DirectSound stream.
KSJACK_DESCRIPTION The KSJACK_DESCRIPTION structure describes an audio jack.
KSJACK_DESCRIPTION2 The KSJACK_DESCRIPTION2 structure describes an audio jack.To get the description of an audio jack of a connector, call IKsJackDescription2::GetJackDescription2.
KSJACK_SINK_INFORMATION The KSJACK_SINK_INFORMATION structure stores information about an audio jack sink.
LUID The LUID structure stores the video port identifier. This structure is stored in the PortId member of the KSJACK_SINK_INFORMATION structure.
SpatialAudioClientActivationParams Represents optional activation parameters for a spatial audio render stream. Pass this structure to ActivateAudioInterfaceAsync when activating an ISpatialAudioClient interface.
SpatialAudioHrtfActivationParams Specifies the activation parameters for an ISpatialAudioRenderStreamForHrtf.
SpatialAudioHrtfDirectivity Represents an omnidirectional model for an ISpatialAudioObjectForHrtf. The omnidirectional emission is interpolated linearly with the directivity model specified in the Type field based on the value of the Scaling field.
SpatialAudioHrtfDirectivityCardioid Represents a cardioid-shaped directivity model for an ISpatialAudioObjectForHrtf.
SpatialAudioHrtfDirectivityCone Represents a cone-shaped directivity model for an ISpatialAudioObjectForHrtf.
SpatialAudioHrtfDirectivityUnion Defines a spatial audio directivity model for an ISpatialAudioObjectForHrtf.
SpatialAudioHrtfDistanceDecay Represents the decay model that is applied over distance from the position of an ISpatialAudioObjectForHrtf to the position of the listener.
SpatialAudioMetadataItemsInfo Provides information about an ISpatialAudioMetadataItems object. Get a copy of this structure by calling GetInfo.
SpatialAudioObjectRenderStreamActivationParams Represents activation parameters for a spatial audio render stream. Pass this structure to ISpatialAudioClient::ActivateSpatialAudioStream when activating a stream.
SpatialAudioObjectRenderStreamForMetadataActivationParams Represents activation parameters for a spatial audio render stream for metadata. Pass this structure to ISpatialAudioClient::ActivateSpatialAudioStream when activating a stream.