Partilhar via


Tabelas de funções para drivers de miniporta

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 miniporta que não são de áudio fornecem a tabela de funções para o driver de porta durante o registro, momento em que o driver de miniporta informa o driver de porta do tamanho da estrutura de contexto que o driver de miniporta 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 miniporta de áudio usam tabelas de funções, mas eles 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 através do contexto.

Esta abordagem foi adotada porque a COM fornece um modelo sólido, eficiente e amplamente compreendido para a criação de objetos abstratos. O modelo de driver de miniporte de áudio aproveita a experiência do setor com COM e a vasta literatura sobre 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.