Recusando a persistência de nível de volume
Por padrão, as configurações de nível de volume são mantidas quando você reinicia o computador. Esse comportamento padrão do sistema é chamado de persistência de volume. Se você não quiser que os níveis de volume sejam mantidos pelo sistema após a reinicialização do computador, use um arquivo INF no momento da instalação do adaptador de áudio para recusar o comportamento padrão do sistema.
Talvez você queira que o driver recuse a persistência de volume se o driver tiver seu próprio cache do Registro e definir os níveis no próprio hardware, na carga do driver.
Para recusar a persistência de volume usando um arquivo INF, use a diretiva addProperty registry para definir o valor da chave do Registro PKEY_AudioDevice_DontPersistControls como "1". O valor padrão é "0".
O fragmento de arquivo INF a seguir mostra como recusar a persistência de volume:
;; INF file fragment to show how to use AddProperty
;; to opt out of volume persistence
;;
[Version]
...
Class = MEDIA
ClassGUID = {4d36e96c-e325-11ce-bfc1-08002be10318}
...
[Manufacturer]
%MfgName% = CompanyName,NTamd64
...
[CompanyName.NTamd64]
%DeviceDescription% = HdAudModel, hw-id
;; ... other device models listed here
[HdAudModel]
Include=ks.inf, wdmaudio.inf
Needs=KS.Registration, WDMAUDIO.Registration
CopyFiles = HdAudModel.CopyList, HdAudProp.CopyList, HdAudShortCut.CopyList
AddReg = HdAudModel.AddReg, HdAudProp.AddReg, HdAudShortCut.AddReg, HdAudBranding.AddReg
AddProperty = HdAudModel.AddProperty
...
[HdAudModel.AddProperty]
;; {F3E80BEF-1723-4FF2-BCC4-7F83DC5E46D4},2,7,,0
{F3E80BEF-1723-4FF2-BCC4-7F83DC5E46D4},2,7,,1
...
[Strings]
MfgName = "My Company Name Inc"
DeviceDescription = "My WDM device driver"
Nota O fragmento de arquivo INF anterior mostra apenas a seção Versão e as seções relevantes para a diretiva AddProperty .
A entrada de linha %MfgName% = CompanyName na seção Fabricante faz referência à seção CompanyName em que o modelo e a ID de hardware (hw-id) do adaptador de áudio são fornecidos. Esta seção em um arquivo INF, em que as informações de modelo e hw-id são fornecidas, é chamada de seção de modelos. O título real da seção é definido pelo usuário e, no exemplo anterior, é CompanyName. Para obter mais informações sobre a seção de modelos de um arquivo INF, consulte Seção Modelos INF.
A seção de modelos, por sua vez, faz referência à seção DDInstall (instalação do driver de dispositivo), em que as informações são fornecidas sobre outros arquivos INF que o programa de instalação deve copiar. O título real desta seção é definido pelo usuário e, no exemplo anterior, é HdAudModel. O Needs=KS. Registo... A entrada de linha fornece informações sobre as seções específicas nos arquivos INF, das quais o programa de instalação deve recuperar dados para instalação
A seção HdAudModel também contém referências às seções AddReg e AddProperty. O programa de instalação recupera dados de AddReg e AddProperty para definir as chaves do Registro e as propriedades do dispositivo, respectivamente. A seção AddProperty referenciada aqui é HdAudModel.AddProperty e usa o seguinte formato para fornecer informações sobre a propriedade do dispositivo:
{property-category-guid}, property-pid, type, [flags], value
A seção HdAudModel mostra duas entradas de linha com a primeira comentada. A entrada de linha comentada define o valor da propriedade do dispositivo como "1". A entrada de linha que não é comentada é a que o programa de instalação lê. Essa entrada de linha faz com que o valor da propriedade do dispositivo seja definido como "0". Quando essa propriedade de dispositivo é definida como "0", o dispositivo de áudio recusa a persistência de volume.
Para obter mais informações sobre a diretiva AddProperty, consulte Diretiva AddProperty do INF.
O nome da propriedade que corresponde ao GUID da categoria de propriedade e à ID da propriedade no fragmento de arquivo INF anterior é PKEY_AudioDevice_DontPersistControls.