Процедуры DDI для HD Audio
Как описано в разделе Различия между версиями HD Audio DDI, существуют три версии HD Audio DDI. Эти три версии DDI определяются структурами HDAUDIO_BUS_INTERFACE, HDAUDIO_BUS_INTERFACE_V2 и HDAUDIO_BUS_INTERFACE_BDL .
Три версии DDI доступны только в режиме ядра.
Каждая версия DDI предоставляет доступ к аппаратным ресурсам, которыми управляет контроллер шины HD Audio. К этим ресурсам относятся кодеки, подсистемы DMA, пропускная способность канала, регистры позиций ссылок и регистр настенных часов. Драйвер шины HD Audio реализует DDI и предоставляет его дочерним элементам. Дочерние элементы — это экземпляры драйверов функций режима ядра, которые используют DDI для управления аппаратными кодеками, подключенными к контроллеру HD Audio.
Чтобы получить доступ к версии DDI, драйвер функции должен запросить у драйвера шины HD Audio объект контекста DDI. Дополнительные сведения см. в разделах Получение объекта HDAUDIO_BUS_INTERFACE DDI, Получение объекта HDAUDIO_BUS_INTERFACE_V2 DDI и Получение HDAUDIO_BUS_INTERFACE_BDL объекта DDI.
Каждая подпрограмма в трех версиях DDI принимает указатель на объект контекста в качестве первого параметра вызова.
Структура HDAUDIO_BUS_INTERFACE определяет DDI, содержащий следующие подпрограммы:
Структура HDAUDIO_BUS_INTERFACE_V2 доступна в Windows Vista и более поздних версиях Windows и определяет DDI, которая содержит следующие процедуры:
AllocateDmaBufferWithNotification
HDAUDIO_BUS_INTERFACE версия HD Audio DDI поддерживается в Windows Vista и более поздних версиях Windows. Кроме того, в Windows 2000, Windows XP и Windows Server 2003 можно установить версию драйвера шины HD Audio, которая поддерживает этот DDI.
Структура HDAUDIO_BUS_INTERFACE_BDL определяет DDI, содержащий следующие подпрограммы:
Версию драйвера шины HD Audio, которая поддерживает HDAUDIO_BUS_INTERFACE_BDL версию HD Audio DDI, можно установить в Windows 2000, Windows XP и Windows Server 2003. Однако Windows Vista не поддерживает эту версию DDI.
Большинство процедур в двух DDIs идентичны как по имени, так и по операции. Однако следующие две подпрограммы, которые являются частью HDAUDIO_BUS_INTERFACE версии DDI, не включены в версию HDAUDIO_BUS_INTERFACE_BDL:
Аналогичным образом следующие три подпрограммы в HDAUDIO_BUS_INTERFACE_BDL версии DDI не являются частью HDAUDIO_BUS_INTERFACE версии:
В этом разделе описываются следующие процедуры DDI:
SetupDmaEngineWithBdl , который работает с PHDAUDIO_BDL_ISR
Предыдущий список содержит все подпрограммы, которые отображаются в любой или обеих версиях DDI.