Compartilhar via


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.