HD Audio DDI Routines
Comme expliqué dans Différences entre les versions d’Audio HD DDI, trois versions de hd Audio DDI existent. Ces trois versions de DDI sont définies par les structures HDAUDIO_BUS_INTERFACE, HDAUDIO_BUS_INTERFACE_V2 et HDAUDIO_BUS_INTERFACE_BDL .
Les trois versions de DDI sont accessibles uniquement en mode noyau.
Chaque version de DDI permet d’accéder aux ressources matérielles que le contrôleur de bus audio HD gère. Ces ressources incluent les codecs, les moteurs DMA, la bande passante de liaison, les registres de position de liaison et un registre d’horloge murale. Le pilote de bus Audio HD implémente la DDI et expose la DDI à ses enfants. Les enfants sont des instances de pilotes de fonction en mode noyau qui utilisent la DDI pour gérer les codecs matériels connectés au contrôleur audio HD.
Pour obtenir l’accès à une version de DDI, un pilote de fonction doit interroger le pilote de bus Audio HD pour un objet de contexte DDI. Pour plus d’informations, consultez Obtention d’un objet DDI HDAUDIO_BUS_INTERFACE, Obtention d’un objet DDI HDAUDIO_BUS_INTERFACE_V2 et Obtention d’un objet DDI HDAUDIO_BUS_INTERFACE_BDL.
Chaque routine dans les trois versions de DDI prend un pointeur vers l’objet de contexte comme premier paramètre d’appel.
La structure HDAUDIO_BUS_INTERFACE définit une DDI qui contient les routines suivantes :
La structure HDAUDIO_BUS_INTERFACE_V2 est disponible dans Windows Vista et les versions ultérieures de Windows, et définit une DDI qui contient les routines suivantes :
AllocateDmaBufferWithNotification
La version HDAUDIO_BUS_INTERFACE de HD Audio DDI est prise en charge dans Windows Vista et les versions ultérieures de Windows. En outre, une version du pilote de bus Audio HD qui prend en charge cette DDI peut être installée dans Windows 2000, Windows XP et Windows Server 2003.
La structure HDAUDIO_BUS_INTERFACE_BDL définit une DDI qui contient les routines suivantes :
Une version du pilote de bus Audio HD qui prend en charge la version HDAUDIO_BUS_INTERFACE_BDL de hd Audio DDI peut être installée dans Windows 2000, Windows XP et Windows Server 2003. Toutefois, Windows Vista ne prend pas en charge cette version de DDI.
La plupart des routines dans les deux DDIs sont identiques dans le nom et l’opération. Toutefois, les deux routines suivantes, qui font partie de la version HDAUDIO_BUS_INTERFACE de la DDI, ne sont pas incluses dans la version HDAUDIO_BUS_INTERFACE_BDL :
De même, les trois routines suivantes dans la version HDAUDIO_BUS_INTERFACE_BDL de la DDI ne font pas partie de la version HDAUDIO_BUS_INTERFACE :
Cette section décrit les routines DDI suivantes :
SetupDmaEngineWithBdl qui fonctionne avec PHDAUDIO_BDL_ISR
La liste précédente contient toutes les routines qui apparaissent dans l’une ou l’autre des versions de la DDI.