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.