Partilhar via


Tabelas de funções para miniportores

As interfaces de borda superior de um driver de miniporta genérico (consulte Terminologia de áudio WDM) consistem em tabelas de funções. Alguns drivers de miniporto não áudio fornecem a tabela de funções para o driver de porta durante o registro, momento em que o driver de miniporta informa ao driver de porta do tamanho da estrutura de contexto que o driver de miniporto exigirá. O driver de porta copia a tabela de funções para algum local privado, aloca a estrutura de contexto e chama uma função de inicialização na tabela de funções, passando um ponteiro para a estrutura de contexto.

Da mesma forma, os drivers de miniporto de áudio usam tabelas de funções, mas são alocados estaticamente e não precisam ser copiados pelo driver de porta. O driver de porta também recupera sua memória de contexto ("objeto") de um pool especificado e instala um ponteiro para a tabela de funções no contexto. Como o ponteiro da tabela de funções é sempre o primeiro campo no contexto, o driver de porta precisa apenas de um ponteiro de contexto e pode acessar a tabela de funções por meio do contexto.

Essa abordagem foi adotada porque o COM fornece um modelo sólido, eficiente e amplamente compreendido para a criação de objetos abstraídos. O modelo de driver de miniporta de áudio aproveita a experiência do setor com COM e o corpo da literatura COM. Os objetos podem ser implementados e usados em C ou C++. A linguagem assembly também pode ser usada, mas só deve ser usada quando a portabilidade não é necessária.