Partilhar via


Solicitações de Propriedades de Áudio

Os clientes de um driver de áudio WDM (Microsoft Windows Driver Model) podem enviar solicitações de propriedades KS para os filtros e pinos KS que o driver instanciou. Por exemplo, um cliente de modo de usuário pode enviar uma solicitação de propriedade KS chamando a função DeviceIoControl (consulte a documentação do SDK do Microsoft Windows) com um código de controle de E/S de IOCTL_KS_PROPERTY. Esta função envia um IRP contendo a solicitação de propriedade para o filtro especificado ou objeto pin.

Os drivers de áudio suportam solicitações de obtenção, definição e suporte básico para propriedades (KSPROPERTY_TYPE_GET, KSPROPERTY_TYPE_SET e KSPROPERTY_TYPE_BASICSUPPORT). Para obter mais informações, consulte Conjuntos de Propriedades de Controladores de Áudio.

Um cliente pode enviar solicitações para três tipos de propriedades: propriedades de filtro, propriedades de pino e propriedades de nó. Para obter mais informações, consulte Propriedades de Filtro, Pinagem e Nó.

Ao enviar uma solicitação de propriedade de filtro para um objeto de filtro, o cliente especifica o filtro de destino por seu identificador de instância (consulte Fábricas de filtro). Da mesma forma, ao enviar uma solicitação de propriedade de pino para um objeto pin, o pino de destino é especificado por seu identificador de instância (consulte Pin Factories). Qualquer tipo de solicitação contém uma estrutura KSPROPERTY que especifica o seguinte:

  • Um GUID que identifica o conjunto de propriedades

  • Um índice que identifica um item de propriedade dentro do conjunto de propriedades especificado

  • Sinalizadores que indicam o tipo de solicitação de propriedade (get, set ou basic-support)

As propriedades relacionadas são reunidas para formar um conjunto de propriedades. Uma propriedade específica é identificada por seu conjunto de propriedades e por um índice que especifica sua posição dentro desse conjunto.

Uma solicitação de propriedade de nó contém uma estrutura KSNODEPROPERTY , que combina uma estrutura KSPROPERTY e uma ID de nó. Dependendo da propriedade do nó, o destino da solicitação de propriedade é uma instância de filtro ou uma instância de pino.

Se um filtro puder criar mais de uma instância de um tipo de nó específico, o destino da solicitação será especificado por um identificador de pino. O identificador identifica a instância de pino no início ou no final do caminho de dados no qual a instância do nó reside. No caso de um filtro que contenha um nó SOMA ou MUX (ver KSNODETYPE_SUM e KSNODETYPE_MUX), aplicam-se as seguintes regras:

  • Se a propriedade pertencer a um nó que se encontra a jusante de um pino de coletor (entrada) e a montante do nó SOMA ou MUX, a solicitação de propriedade será enviada para o pino do coletor.

  • Caso a propriedade pertença a um nó que se encontra a jusante de um nó SUM ou MUX e a montante de um pino de origem (de saída), a solicitação de propriedade é enviada para o pino de origem. (Além disso, envia-se uma solicitação de propriedade para um nó SUM ou MUX para o pino de origem.)

Com essas convenções, um nó específico em um caminho de dados específico pode ser identificado exclusivamente.

Para obter informações sobre como usar a API do mixer para percorrer os nós em um caminho de dados, consulte Kernel Streaming Topology to Audio Mixer API Translation.