Propriedade Pin Category
Drivers de áudio WDM (Modelo de Driver do Microsoft Windows) para dispositivos de áudio USB, dispositivos de áudio IEEE 1394 e dispositivos de áudio em barramentos internos representam seus dispositivos como filtros KS com pinos. Um driver de áudio WDM mantém uma estrutura KSPIN_DESCRIPTOR para cada tipo de pino compatível. Dentro dessa estrutura, o driver armazena as propriedades KSPROPSETID_Pin do tipo de pino. Entre essas propriedades está a propriedade KSPROPERTY_PIN_CATEGORY . Uma solicitação para essa propriedade recupera o GUID da categoria de pino KS do membro Category da estrutura KSPIN_DESCRIPTOR. Esse GUID indica a categoria geral de funcionalidade que o pino fornece. Por exemplo, um GUID de categoria de pino específico, KSNODETYPE_HEADPHONES, identifica um pino como uma tomada de saída para fones de ouvido.
No caso de um dispositivo de áudio wave em um barramento interno (por exemplo, PCI), o driver de miniporto PortCls contém uma matriz de descritores de pino, cada um deles descreve um tipo de pino no filtro que representa o dispositivo. Cada descritor de pin é uma estrutura PCPIN_DESCRIPTOR que contém uma estrutura de KSPIN_DESCRIPTOR inserida com um GUID de categoria de pino. Ao receber uma solicitação de propriedade KSPROPERTY_PIN_CATEGORY de um cliente, o driver de porta recupera o GUID da categoria de pino do descritor de pino do driver de miniport para o tipo de pino especificado. Para obter mais informações sobre descritores de pin, consulte Pin Factories.
Um dispositivo de áudio USB tem alguns terminais por meio dos quais fluxos digitais e sinais analógicos podem entrar e sair do dispositivo. Ao construir um filtro KS para representar um dispositivo de áudio USB, o driver do sistema de classes USBAudio converte os terminais no dispositivo em pinos no filtro. O arquivo de cabeçalho Ksmedia.h define um mapeamento para cada identificador de tipo de terminal USB para um GUID de categoria de pino KS. As seis tabelas a seguir mostram os identificadores de tipo de terminal e seus GUIDs de categoria de pino correspondentes.
Tipos de terminal de entrada
USB Terminal ID | GUID de categoria de pino KS |
---|---|
0x0201 |
KSNODETYPE_MICROPHONE |
0x0202 |
KSNODETYPE_DESKTOP_MICROPHONE |
0x0203 |
KSNODETYPE_PERSONAL_MICROPHONE |
0x0204 |
KSNODETYPE_OMNI_DIRECTIONAL_MICROPHONE |
0x0205 |
KSNODETYPE_MICROPHONE_ARRAY |
0x0206 |
KSNODETYPE_PROCESSING_MICROPHONE_ARRAY |
Tipos de terminal de saída
USB Terminal ID | GUID de categoria de pino KS |
---|---|
0x0301 |
KSNODETYPE_SPEAKER |
0x0302 |
KSNODETYPE_HEADPHONES |
0x0303 |
KSNODETYPE_HEAD_MOUNTED_DISPLAY_AUDIO |
0x0304 |
KSNODETYPE_DESKTOP_SPEAKER |
0x0305 |
KSNODETYPE_ROOM_SPEAKER |
0x0306 |
KSNODETYPE_COMMUNICATION_SPEAKER |
0x0307 |
KSNODETYPE_LOW_FREQUENCY_EFFECTS_SPEAKER |
Tipos de terminal bidirecional
USB Terminal ID | GUID de categoria de pino KS |
---|---|
0x0401 |
KSNODETYPE_HANDSET |
0x0402 |
KSNODETYPE_HEADSET |
0x0403 |
KSNODETYPE_SPEAKERPHONE_NO_ECHO_REDUCTION |
0x0404 |
KSNODETYPE_ECHO_SUPPRESSING_SPEAKERPHONE |
0x0405 |
KSNODETYPE_ECHO_CANCELING_SPEAKERPHONE |
Tipos de terminal de telefonia
USB Terminal ID | GUID de categoria de pino KS |
---|---|
0x0501 |
KSNODETYPE_PHONE_LINE |
0x0502 |
KSNODETYPE_TELEPHONE |
0x0503 |
KSNODETYPE_DOWN_LINE_PHONE |
Tipos de terminal externos
USB Terminal ID | GUID de categoria de pino KS |
---|---|
0x0601 |
KSNODETYPE_ANALOG_CONNECTOR |
0x0602 |
KSNODETYPE_DIGITAL_AUDIO_INTERFACE |
0x0603 |
KSNODETYPE_LINE_CONNECTOR |
0x0604 |
KSNODETYPE_LEGACY_AUDIO_CONNECTOR |
0x0605 |
KSNODETYPE_SPDIF_INTERFACE |
0x0606 |
KSNODETYPE_1394_DA_STREAM |
0x0607 |
KSNODETYPE_1394_DV_STREAM_SOUNDTRACK |
Tipos de terminal de função inserida
USB Terminal ID | GUID da categoria de pino KS |
---|---|
0x0701 |
KSNODETYPE_LEVEL_CALIBRATION_NOISE_SOURCE |
0x0702 |
KSNODETYPE_EQUALIZATION_NOISE |
0x0703 |
KSNODETYPE_CD_PLAYER |
0x0704 |
KSNODETYPE_DAT_IO_DIGITAL_AUDIO_TAPE |
0x0705 |
KSNODETYPE_DCC_IO_DIGITAL_COMPACT_CASSETTE |
0x0706 |
KSNODETYPE_MINIDISK |
0x0707 |
KSNODETYPE_ANALOG_TAPE |
0x0708 |
KSNODETYPE_PHONOGRAPH |
0x0709 |
KSNODETYPE_VCR_AUDIO |
0x070A |
KSNODETYPE_VIDEO_DISC_AUDIO |
0x070B |
KSNODETYPE_DVD_AUDIO |
0x070C |
KSNODETYPE_TV_TUNER_AUDIO |
0x070D |
KSNODETYPE_SATELLITE_RECEIVER_AUDIO |
0x070E |
KSNODETYPE_CABLE_TUNER_AUDIO |
0x070F |
KSNODETYPE_DSS_AUDIO |
0x0710 |
KSNODETYPE_RADIO_RECEIVER |
0x0711 |
KSNODETYPE_RADIO_TRANSMITTER |
0x0712 |
KSNODETYPE_MULTITRACK_RECORDER |
0x0713 |
KSNODETYPE_SYNTHESIZER |
Para obter mais informações sobre identificadores de tipo de terminal USB, consulte a Definição de classe de dispositivo de barramento serial universal para tipos de terminal (versão 1.0), que está disponível no site do Fórum de Implementadores USB .
Todos os GUIDs de categoria de pino nas tabelas anteriores têm nomes de parâmetro do formulário KSNODETYPE_XXX. Observe que os GUIDs do tipo de nó KS também têm nomes de parâmetro KSNODETYPE_XXX . Essa convenção de nomenclatura cria algum potencial de confusão entre GUIDs de categoria de pino e GUIDs do tipo de nó. Felizmente, quase todos os parâmetros KSNODETYPE_XXX identificam uma categoria de pino ou um tipo de nó, mas não ambos. A única exceção à regra é KSNODETYPE_SYNTHESIZER, que pode identificar uma categoria de pino ou um tipo de nó, dependendo do contexto. Para obter uma lista de GUIDs do tipo de nó, consulte Nós de topologia de áudio.
Ao instanciar um dispositivo de áudio USB, o driver do sistema de classe USBAudio consulta o dispositivo em busca de sua topologia interna, incluindo seus terminais. Com essas informações, o driver USBAudio constrói um filtro para representar o dispositivo e converte cada terminal em um pino correspondente no filtro. Durante esse processo, o driver converte cada identificador de tipo de terminal USB no GUID da categoria de pino KS correspondente, que é um dos GUIDs nas tabelas anteriores. O driver constrói uma estrutura KSPIN_DESCRIPTOR para descrever o pino e grava o GUID da categoria de pino na estrutura.
Um driver de miniporta PortCls não usa necessariamente apenas os GUIDs de categoria que aparecem nas seis tabelas anteriores. Por exemplo, um driver pode definir e usar um GUID de categoria de pino personalizado para descrever um tipo de pino cuja categoria funcional está fora das categorias nas tabelas. Naturalmente, um GUID de categoria de pino personalizado é útil apenas para clientes que reconhecem o GUID.
O subsistema de áudio mantém uma lista de GUIDs de categoria de pino e seus nomes amigáveis associados no registro do sistema. O instalador de classe de mídia copia os pares guid-name para o registro do arquivo Ks.inf localizado na subpasta Inf da pasta main do Windows (por exemplo, C:\Windows\Inf\Ks.inf).
O sistema operacional usa categorias de pino para associar nomes amigáveis a dispositivos de ponto de extremidade de áudio. Para obter mais informações sobre como associar nomes amigáveis a dispositivos de ponto de extremidade de áudio, consulte Nomes amigáveis para dispositivos de ponto de extremidade de áudio.