Compartilhar via


PKEY_AudioEngine_OEMPeriod

O mecanismo de áudio do Windows é executado em intervalos predeterminados que são chamados de periodicidade do mecanismo de áudio. No Windows 7 e versões posteriores do Windows, o mecanismo de áudio é executado com uma periodicidade de 10 ms por padrão. No Windows 7, você pode usar um arquivo INF e uma nova chave do Registro, PKEY_AudioEngine_OEMPeriod, para personalizar a periodicidade do driver do dispositivo de áudio. Essa é uma configuração por ponto de extremidade.

O trecho a seguir de um arquivo INF mostra como usar a diretiva AddReg do INF para personalizar a periodicidade de um driver de dispositivo de áudio.

[Version]
Signature="$Windows NT$"
Class=MEDIA
ClassGuid={4d36e96c-e325-11ce-bfc1-08002be10318}
Provider=%ExampleProvider%
CatalogFile=ExampleCatalog.cat
PnpLockdown=1

...

[USBAudio]
Include=ks.inf, wdmaudio.inf, wdma_usb.inf
Needs=KS.Registration, WDMAUDIO.Registration, USBAudio.CopyList, USBAudioOEM.AddReg

[USBAudio.Interfaces]
AddInterface=%KSCATEGORY_AUDIO%,"GLOBAL",USBAudio.Interface
AddInterface=%KSCATEGORY_RENDER%,"GLOBAL",USBAudio.Interface

[USBAudio.Interface]
AddReg=USBAudio.Interface.AddReg, OEMSettingsOverride.AddReg
...
;;
;; All EP\\0 entries in the same grouping
;;
;; Set default periodicity to 8ms
;;
;; 0x013880 == 80000 (HNSTIME) == 8ms
;;
[OEMSettingsOverride.AddReg]
HKR,"EP\\0", %PKEY_AudioEndpoint_Association%,,%KSNODETYPE_ANY%
HKR,"EP\\0", %PKEY_AudioEngine_OEMPeriod%, %REG_BINARY%, 41,00,63,00,08,00,00,00,80,38,01,00,00,00,00,00

[Strings]
ExampleProvider = "Example Provider"
PKEY_AudioEndpoint_Association = "{1DA5D803-D492-4EDD-8C23-E0C0FFEE7F0E},2"
PKEY_AudioEngine_OEMPeriod = "{E4870E26-3CC5-4CD2-BA46-CA0A9A70ED04},6"
REG_BINARY          = "0x00000001"

A periodicidade é especificada como VT_BLOB. E o intervalo de periodicidade válido é 50000-90000 (5-9 ms) em até mesmo 100000 limites de unidade HNSTIME (por exemplo, 50000, 60000, 70000, 80000 ou 90000).

No trecho anterior de um arquivo INF, os seguintes dados REG_BINARY são fornecidos para personalização:

A periodicidade de 8 ms é representada em unidades HNSTIME como 80000. Na notação hexadecimal, esse valor é representado como 0x013880. Quando esse valor hexadecimal é escrito quatro bits (mordiscos) por vez, com bits menos significativos primeiro, o resultado é 80,38,01. Esse é o valor fornecido como um tipo de dados REG_BINARY.

A periodicidade é especificada como um tipo de dados VT_BLOB. Isso é representado por um valor decimal de 65. No formato hexadecimal 65 é representado pelo valor 41 e o trecho de arquivo INF anterior mostra a sequência de dados REG_BINARY com seu primeiro valor de 41.