Compartilhar via


Solicitações de propriedade de áudio

Os clientes de um driver de áudio WDM (Modelo de Driver do Microsoft Windows) podem enviar solicitações de propriedades KS para os filtros KS e pinos instanciados pelo driver. 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. Essa função envia um IRP que contém a solicitação de propriedade para o objeto de pino ou filtro especificado.

Os drivers de áudio dão suporte a solicitações get, set e basic-support em propriedades (KSPROPERTY_TYPE_GET, KSPROPERTY_TYPE_SET e KSPROPERTY_TYPE_BASICSUPPORT). Para obter mais informações, consulte Conjuntos de propriedades de drivers 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 filter, pin e node.

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 Filter Factories). Da mesma forma, ao enviar uma solicitação de propriedade de pin 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 (obter, definir ou suporte básico)

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 para a 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 contém um nó SUM ou MUX (consulte KSNODETYPE_SUM e KSNODETYPE_MUX), as seguintes regras se aplicam:

  • Se a propriedade pertencer a um nó que fica downstream de um pino de coletor (entrada) e upstream do nó SUM ou MUX, a solicitação de propriedade será enviada para o pino do coletor.

  • Se a propriedade pertencer a um nó que fica downstream de um nó SUM ou MUX e upstream de um pino de origem (saída), a solicitação de propriedade será enviada para o pino de origem. (Além disso, uma solicitação de propriedade para um nó SUM ou MUX é enviada para o pin 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 Topologia de Streaming de Kernel para Tradução de API do Mixer de Áudio.