Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Como explicado anteriormente, o driver de função para um codec de áudio ou modem obtém uma referência com contagem a um objeto com um DDI de áudio HD ao enviar um IOCTL de IRP_MN_QUERY_INTERFACE para o driver de barramento de áudio HD.
A tabela a seguir apresenta os valores de parâmetros de entrada que o driver de função escreve no IOCTL, com o objetivo de obter uma estrutura de HDAUDIO_BUS_INTERFACE_BDL e um objeto de contexto correspondente à versão do HD Audio DDI que essa estrutura define.
| Parâmetro | Valor |
|---|---|
GUID CONST *InterfaceType |
GUID_HDAUDIO_BUS_INTERFACE_BDL |
Tamanho do USHORT |
tamanho da(HDAUDIO_BUS_INTERFACE_BDL) |
USHORT Versão |
0x0100 |
PINTERFACE Interface |
Ponteiro para a estrutura HDAUDIO_BUS_INTERFACE_BDL |
PVOID InterfaceSpecificData |
NULL |
O driver de função aloca o armazenamento para a estrutura HDAUDIO_BUS_INTERFACE_BDL e inclui um ponteiro para essa estrutura no IOCTL. Na tabela anterior, o ponteiro para a estrutura HDAUDIO_BUS_INTERFACE_BDL é convertido para o tipo PINTERFACE, que é um ponteiro para uma estrutura do tipo INTERFACE. Os nomes e tipos dos cinco primeiros membros de HDAUDIO_BUS_INTERFACE_BDL correspondem aos dos cinco membros de INTERFACE. HDAUDIO_BUS_INTERFACE_BDL contém membros adicionais que servem como ponteiros de função para as rotinas DDI. Em resposta ao recebimento da IOCTL do driver de função, o driver do barramento HD Audio preenche toda a estrutura HDAUDIO_BUS_INTERFACE_BDL.
A tabela a seguir apresenta os valores que o controlador de barramento HD Audio escreve nos primeiros cinco elementos da estrutura HDAUDIO_BUS_INTERFACE_BDL.
| Membro | Valor |
|---|---|
Tamanho do USHORT |
tamanho da(HDAUDIO_BUS_INTERFACE_BDL) |
USHORT Versão |
0x0100 |
PVOID Contexto |
Informações de contexto que precisam ser passadas como o primeiro parâmetro de chamada para cada rotina DDI |
PINTERFACE_REFERENCE InterfaceReference |
Ponteiro para uma rotina que incrementa a contagem de referência do objeto de contexto |
PINTERFACE_DEREFERENCE InterfaceDereference |
Ponteiro para uma rotina que diminui a contagem de referência do objeto de contexto |
Na tabela anterior, o membro Context aponta para um objeto de contexto que contém informações específicas para a instância específica da versão HDAUDIO_BUS_INTERFACE_BDL do DDI que o cliente obtém do IOCTL. Como explicado anteriormente, ao chamar qualquer uma das rotinas no DDI, o driver de função do cliente deve sempre especificar o Context valor do ponteiro como o primeiro parâmetro de chamada.