Pin Category, proprietà

I driver audio di Microsoft Windows Driver Model (WDM) per i dispositivi audio USB, i dispositivi audio IEEE 1394 e i dispositivi audio nei bus interni rappresentano tutti i dispositivi come filtri KS con pin. Un driver audio WDM mantiene una struttura KSPIN_DESCRIPTOR per ogni tipo di pin supportato. All'interno di questa struttura, il driver archivia le proprietà KSPROPSETID_Pin del tipo di pin. Tra queste proprietà è presente la proprietà KSPROPERTY_PIN_CATEGORY . Una richiesta per questa proprietà recupera il GUID della categoria di pin KS dal membro Category della struttura KSPIN_DESCRIPTOR. Questo GUID indica la categoria generale di funzionalità fornita dal pin. Ad esempio, un PARTICOLARE GUID della categoria di pin, KSNODETYPE_HEADPHONES, identifica un pin come jack di output per le cuffie.

Nel caso di un dispositivo audio wave su un bus interno (ad esempio, PCI), il driver miniport PortCls contiene una matrice di descrittori pin, ognuno dei quali descrive un tipo di pin nel filtro che rappresenta il dispositivo. Ogni descrittore di pin è una struttura PCPIN_DESCRIPTOR contenente una struttura KSPIN_DESCRIPTOR incorporata con un GUID di categoria pin. Dopo aver ricevuto una richiesta di proprietà KSPROPERTY_PIN_CATEGORY da un client, il driver della porta recupera il GUID della categoria di pin dal descrittore pin del driver miniport per il tipo di pin specificato. Per altre informazioni sui descrittori pin, vedere Pin Factory.

Un dispositivo audio USB ha un certo numero di terminali attraverso i quali i flussi digitali e i segnali analogici possono entrare e uscire dal dispositivo. Quando si costruisce un filtro KS per rappresentare un dispositivo audio USB, il driver di sistema della classe USBAudio converte i terminali nel dispositivo in puntini sul filtro. Il file di intestazione Ksmedia.h definisce un mapping per ogni identificatore del tipo di terminale USB a un GUID della categoria di pin KS. Le sei tabelle seguenti illustrano gli identificatori del tipo di terminale e i GUID della categoria di pin corrispondenti.

Tipi di terminale di input

ID terminale USB KS Pin Category GUID

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

Tipi di terminale di output

ID terminale USB KS Pin Category GUID

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

Tipi di terminale bidirezionali

ID terminale USB KS Pin Category GUID

0x0401

KSNODETYPE_HANDSET

0x0402

KSNODETYPE_HEADSET

0x0403

KSNODETYPE_SPEAKERPHONE_NO_ECHO_REDUCTION

0x0404

KSNODETYPE_ECHO_SUPPRESSING_SPEAKERPHONE

0x0405

KSNODETYPE_ECHO_CANCELING_SPEAKERPHONE

Tipi di terminale di telefonia

ID terminale USB KS Pin Category GUID

0x0501

KSNODETYPE_PHONE_LINE

0x0502

KSNODETYPE_TELEPHONE

0x0503

KSNODETYPE_DOWN_LINE_PHONE

Tipi di terminale esterni

ID terminale USB KS Pin Category GUID

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

Tipi di terminale di funzioni incorporate

ID terminale USB KS Pin Category GUID

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

Per altre informazioni sugli identificatori del tipo di terminale USB, vedere la definizione della classe di dispositivo del bus seriale universale per i tipi di terminale (versione 1.0), disponibile nel sito Web del forum degli implementatori USB .

Tutti i GUID delle categorie di pin nelle tabelle precedenti hanno nomi di parametro del modulo KSNODETYPE_XXX. Si noti che anche i GUID del tipo di nodo KS hanno nomi di parametri KSNODETYPE_XXX . Questa convenzione di denominazione crea una certa confusione tra GUID di categoria pin e GUID del tipo di nodo. Fortunatamente, quasi ogni parametro KSNODETYPE_XXX identifica una categoria pin o un tipo di nodo, ma non entrambi. L'unica eccezione alla regola è KSNODETYPE_SYNTHESIZER, che può identificare una categoria di pin o un tipo di nodo, a seconda del contesto. Per un elenco dei GUID di tipo di nodo, vedere Nodi topologia audio.

Quando si crea un'istanza di un dispositivo audio USB, il driver di sistema della classe USBAudio esegue una query sul dispositivo per la topologia interna, inclusi i terminali. Con queste informazioni, il driver USBAudio costruisce un filtro per rappresentare il dispositivo e converte ogni terminale in un pin corrispondente nel filtro. Durante questo processo, il driver converte ogni identificatore del tipo di terminale USB nel GUID della categoria di pin KS corrispondente, che è uno dei GUID nelle tabelle precedenti. Il driver costruisce una struttura KSPIN_DESCRIPTOR per descrivere il pin e scrive il GUID della categoria di pin nella struttura.

Un driver miniport PortCls non usa necessariamente solo i GUID di categoria visualizzati nelle sei tabelle precedenti. Ad esempio, un driver può definire e usare un GUID di categoria pin personalizzato per descrivere un tipo di pin la cui categoria funzionale non rientra nelle categorie nelle tabelle. Naturalmente, un GUID di categoria di pin personalizzato è utile solo per i client che riconoscono il GUID.

Il sottosistema audio gestisce un elenco di GUID delle categorie di pin e i nomi descrittivi associati nel Registro di sistema. Il programma di installazione della classe multimediale copia le coppie GUID-name nel Registro di sistema dal file Ks.inf che si trova nella sottocartella Inf della cartella principale di Windows (ad esempio, C:\Windows\Inf\Ks.inf).

Il sistema operativo usa le categorie di pin per associare nomi descrittivi ai dispositivi endpoint audio. Per altre informazioni su come associare nomi descrittivi ai dispositivi endpoint audio, vedere Nomi descrittivi per dispositivi endpoint audio.