PKEY_AudioEngine_OEMPeriod
Звуковой модуль Windows работает с заранее определенными интервалами, которые называются периодичностью звукового модуля. В Windows 7 и более поздних версиях Windows звуковой модуль по умолчанию выполняется с периодичностью 10 мс. В Windows 7 можно использовать INF-файл и новый раздел реестра , PKEY_AudioEngine_OEMPeriod, чтобы настроить периодичность для драйвера звукового устройства. Это параметр для каждой конечной точки.
В следующем фрагменте INF-файла показано, как использовать директиву INF AddReg для настройки периодичности для драйвера аудиоустройства.
[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"
Периодичность указывается как VT_BLOB. Допустимый диапазон периодичности составляет 50000–90000 (5–9 мс) на даже 10000 единиц HNSTIME (например, 50000, 60000, 70000, 80000 или 90000).
В предыдущем фрагменте из INF-файла для настройки предоставляются следующие REG_BINARY данные:
Периодичность 8 мс представлена в единицах HNSTIME как 80000. В шестнадцатеричной нотации это значение представлено как 0x013880. Если это шестнадцатеричное значение записывается по четыре бита (грызет) за один раз, с наименьшими значениями сначала, результат будет равен 80,38,01. Это значение, которое предоставляется в виде REG_BINARY типа данных.
Периодичность указывается как тип данных VT_BLOB. Он представлен десятичным значением 65. В шестнадцатеричном формате 65 представляется значением 41, а в предыдущем фрагменте INF-файла показана REG_BINARY последовательность данных с первым значением 41.