Condividi tramite


Identificatori di dispositivo AV/C

Quando un utente connette un dispositivo AV/C al computer, Avc.sys enumera le sottounit attive nel dispositivo e genera le stringhe id (ID) dell'identificatore del dispositivo. Esiste un identificatore di dispositivo per ogni subunit attivo in un dispositivo AV/C. Se non sono presenti sottounite attive in un dispositivo AV/C, Avc.sys genera un identificatore di dispositivo per il dispositivo AV/C stesso.

Il formato per i campi dell'identificatore di dispositivo per le sottounit peer è:

AVC\Vendor&Model&SubunitType&SubunitID

Il formato per i campi dell'identificatore di dispositivo per le sottounità virtuali è:

VAVC\Vendor&Model&SubunitType&SubunitID

Nei campi in cui vengono utilizzati i numeri, i numeri vengono convertiti in esadecimali e i caratteri alfa vengono convertiti in lettere maiuscole. Non ci sono zeri iniziali. L'identificatore del dispositivo specificato nel file INF per il driver deve corrispondere a questo formato. Tutti i campi numerici negli identificatori hardware e negli identificatori compatibili vengono contrassegnati come segue (con eccezioni come indicato):

  • Fornitore: VEN_ (a meno che il testo del fornitore non sia disponibile)

  • Modello: MOD_ (a meno che il testo del modello non sia disponibile)

  • SubunitType: TYP_

  • SubunitID: ID_

Avc.sys crea un oggetto dispositivo per ogni subunit attivo presente in un dispositivo AV/C esterno. La reimpostazione di un bus I edizione Enterprise E 1394 viene attivata ogni volta che un dispositivo AV/C viene aggiunto o rimosso dal bus I edizione Enterprise E 1394. Avc.sys quindi enumerare nuovamente le sottounite attive in tutti i dispositivi AV/C connessi. L'enumerazione consente al dispositivo di riconfigurarsi per aggiungere o rimuovere sottounit senza richiedere a Windows di ricaricare Avc.sys ogni volta che la modalità operativa del dispositivo AV/C è cambiata. Ad esempio, questa funzionalità si applica quando un dv viene commutato tra la modalità fotocamera e la modalità VTR. Di conseguenza, i driver subunit vengono caricati e scaricati solo quando vengono aggiunte e rimosse le sottounit attive corrispondenti.

Avc.sys non è in grado di distinguere tra più sottounità dello stesso SubunitType, quindi l'aggiunta e la rimozione di queste sottounità carica e scarica il driver subunit corrispondente con il subunitID più alto.

Ogni oggetto dispositivo di subunit ha uno o due identificatori hardware e più identificatori compatibili. Un fornitore deve fornire uno o più di questi identificatori hardware o compatibili, descritti di seguito nel file INF per il driver subunit. Windows usa questi identificatori di dispositivo per individuare i driver adatti da caricare per ogni subunit la prima volta che il dispositivo è connesso al computer. È possibile esaminare i file 61883.inf, Msdv.inf e Mstape.inf forniti da Microsoft per esempi di identificatori di dispositivo hardware e compatibili per i dispositivi AV/C. Per altre informazioni sull'implementazione di file INF, vedere Sezioni dei file INF e Direttive file INF.

I singoli elementi della stringa dell'identificatore del dispositivo sono i seguenti:

Fornitore

Se il testo del nome del fornitore è presente nella directory radice I edizione Enterprise E 1394 Configuration ROM Unit Capabilities, il testo del nome del fornitore viene usato nel campo Fornitore. Ad esempio:

AVC\Microsoft&Model&SubunitType&SubunitID

In caso contrario, il numero univoco del fornitore (assegnato dall'I edizione Enterprise E 1394 Trade Association) viene utilizzato nel campo Fornitore. Nell'esempio seguente "50F2" è il numero fornitore 1394TA di Microsoft:

AVC\VEN_50F2&Model&SubunitType&SubunitID

Se il testo del nome del fornitore non è presente, il valore numerico viene ottenuto dalla voce Module_Vendor_ID nella directory radice della ROM di configurazione I edizione Enterprise E 1394. La chiave di architettura csr (Command and Status Register) per questa voce immediata è 0316 (esadecimale) e i rimanenti 24 bit sono la voce numerica Module_Vendor_ID.

Modello

Se il testo del nome del modello è presente nella funzionalità unità del ROM di configurazione I edizione Enterprise E 1394, il testo del nome del modello viene usato nel campo Modello. Ad esempio:

AVC\Microsoft&DVCamcorder&SubunitType&SubunitID

In caso contrario, il numero del modello viene usato nel campo Modello. Ad esempio:

AVC\Microsoft&MOD_0&SubunitType&SubunitID

Viene usato il testo del modello della directory unità ROM di configurazione 1394, dando la precedenza alle voci della directory unità. L'ordine delle preferenze è il seguente:

1.Identificatore numerico dalla directory dell'unità.

1.Testo del modello dalla directory radice.

1.Identificatore del modello dalla directory radice.

SubunitType

Se disponibile, il campo SubunitType viene estratto dall'indirizzo di subunit e convertito in una stringa di valori esadecimali per ogni byte. Sono presenti più byte solo se il tipo di subunit è stato esteso. In genere, il byte iniziale viene estratto dai cinque bit più significativi del byte dell'indirizzo, come descritto nella sezione 5.3.3 della specifica generale del set di comandi dell'interfaccia digitale AV/C, Rev 3.0.

Ad esempio: AVC\VEN_50F2&MOD_0&TYP_4&SubunitID

Per un elenco di tipi subunit supportati Avc.sys e i relativi valori numerici corrispondenti, vedere AvcSubunitType.

SubunitID

Se il campo SubunitType è disponibile, è disponibile anche il campo SubunitID. Quando Avc.sys esegue una query sul dispositivo AV/C per le relative informazioni subunit, il dispositivo risponde con il conteggio delle sottounite per ogni tipo. Questo conteggio in base zero viene usato per creare un identificatore di dispositivo per ogni subunit. La specifica dell'indirizzo subunit consente anche di estendere il campo SubunitID , ma questo aspetto è nascosto dal driver subunit (e da te, l'autore del file INF). Il numero di istanza in base zero viene usato in tutti i casi. Ad esempio, se il campo SubunitID viene esteso per supportare 270 sottounite, la subunit 270th ha un identificatore di subunit 10D (269 decimale). Ad esempio:

AVC\Microsoft&MOD_0&TYP_4&ID_10D

Per le unità AV/C che non forniscono un SubunitType o SubunitID, la stringa di identificatore del dispositivo è quindi costituita solo dai campi Vendor e Model, senza e commerciale finale (&).