All rights reserved.Linux-Kernel Archive: Make PNP IDs all uppercase Make PNP IDs all uppercase From: Philipp Kohlbecher The following is a sample INF wrapper that wraps the INF file for the Audio Class driver. Needs=KS.Registration, WDMAUDIO.Registrationįor more information about the Include and Needs directives, see INF DDInstall Section.
#Pnp audio device driver#
To override the wdmudio.inf file, use the Include and Needs directives as shown in this code segment from the Microsoft Virtual Audio Device Driver Sample available as part of the Windows Driver Kit (WDK) 8.1 Samples. +2147483647 is +32767.99998474 decibels (gain)įor more information on the unit of measurement that is used (1/65536 dB), see KSPROPERTY_AUDIO_VOLUMELEVEL. 2147483648 is -infinity decibels (attenuation) The KS DB stepping values are defined as follows: Pin Complex (2 digit HEX, not preceded by “0x”) The following folder tree shows the layout for the driver instance key that holds the default values. In addition, the driver programs the associated HD Audio amplifier widget with this value when rendering to or capturing from the pin complex. If the value found in the registry is within the range supported by the amplifier, then the value is returned in response to the GET request. Otherwise the value is set to the maximum, if it falls above the maximum value supported by the amplifier. If a value is found in the registry, then the driver sets that value to the minimum, if it falls below the minimum value supported by the amplifier. Perform a registry lookup to see if a volume or microphone boost default value has been provided for the pin complex found in step 1. The following steps summarize the algorithm that is used by the Audio Class driver to determine the default values to return in response to a GET request for KSPROPERTY_AUDIO_VOLUMELEVEL:ĭetermine the pin complex at which the path containing the queried volume node terminates. Starting with Windows Vista, the default values are as follows:Įndpoint volume defaults to max minus 6 dB for all device types. If there is no value in the registry, the HD Audio class driver retrieves a default value from the sub-device graph implementation. If there is a value in the registry, but there is no previously cached value, the default value in the registry will be applied to the device, and also returned in the KSPROPERTY_AUDIO_VOLUMELEVEL response. When the HD Audio class driver receives a GET request for KSPROPERTY_AUDIO_VOLUMELEVEL, the driver determines whether or not there is a default volume (or Mic boost) value in the registry for the path that contains the node that received the request. The levels are expressed as DWORDs that represent the default kernel streaming (KS) decibel levels that the class driver should return. To specify a custom audio volume level or microphone boost level, use the wrapper INF file to specify custom levels per pin complex ID. The pin complexes represent the physical connectors for the associated device (e.g. Note that there are IDs for the individual nodes, as well as IDs for the pin complexes. The following diagram which shows a sample HD Audio codec topology. The mechanism for overriding the Audio Class driver’s hard-coded values involves writing an INF file that wraps the Audio Class driver’s inbox INF file (hdaudio.inf), and using this wrapper INF to specify the desired values.
The Audio Class driver has been redesigned to allow you to override the hard-coded default values. And one of the most important settings to adjust is the volume level, as users are sensitive to the loudness or quietness of their audio systems, especially during first-time use. As such, OEMs are not able to override these values to meet their own requirements. The HD Audio class function driver, which I shall now refer to as the Audio Class driver, uses various hard-coded default values that cannot be customized for any particular PC. Note The process described here can only be used if the default Microsoft HD Audio driver is being used.īy default, the HD Audio class function driver sets the audio volume and the microphone boost levels at predetermined values to ensure a pleasant “out of the box” experience for the user. The ability to customize the in box HD audio default audio volume and microphone boost levels to suit a specific PC, provides OEMs with some flexibility in their audio adapter installation parameters.