Condividi tramite


Dispositivi figlio AVStream

Questa sezione si applica a Microsoft Windows Server 2003 e ai sistemi operativi precedenti solo se DirectX 9.0 o versione successiva è installato in tale piattaforma.

AVStream può funzionare come enumeratore del bus per il dispositivo, creando un dispositivo figlio per ogni chiave nel ramo Enum . A tale scopo, inserire un ramo Enum nel Registro di sistema sotto la chiave del dispositivo.

In particolare, nella sezione AddReg del file INF del driver, il fornitore fornisce un valore pnpid di tipo REG_SZ per ogni voce in Enum. AVStream usa questo valore stringa per costruire un ID hardware Plug and Play (PnP) per ogni singolo dispositivo figlio.

Nelle versioni precedenti a DirectX 9.0, AVStream crea un ID hardware del dispositivo figlio del modulo "AVStream\<pnpid" (dove pnpid> è il valore di pnpid> per il dispositivo specifico).<

Ad esempio, il fornitore specifica quanto segue nella sezione AddReg del file INF:

[MyTVDevice.AddReg]
HKR,"ENUM\CrossbarDevice",pnpid,,"MyCrossbar"
HKR,"ENUM\TunerDevice",pnpid,,"MyTuner"

Di conseguenza, AVStream crea due dispositivi figlio con gli ID dispositivo seguenti:

AVStream\MyCrossbar

AVStream\MyTuner

Per risolvere possibili ambiguità da due dispositivi figlio diversi che specificano lo stesso valore pnpid , DirectX 9.0 e versioni successive modificano gli ID segnalati per ognuno dei dispositivi figlio. Per ogni ID hardware segnalato dal dispositivo padre, AVStream crea un ID per il dispositivo figlio nel formato seguente:

ID> hardware padre modificato AVStream\pnpid<#<>

L'ID hardware padre modificato è l'ID hardware padre con ogni carattere barra rovesciata () sostituito dal segno di numero (\#).

Se la stringa risultante è troppo lunga, AVStream termina la stringa ID in MAX_DEVICE_ID_LEN caratteri, incluso il terminatore NULL . In Windows Server 2003 questo limite è impostato su 200 caratteri in cfgmgr32.h.

Ad esempio, un dispositivo padre segnala gli ID hardware seguenti:

PCI\VEN_XXXX&DEV_YYYY&SUBSYS_ZZZZZZZZ&REV_VV

PCI\VEN_XXXX&DEV_YYYY&SUBSYS_ZZZZZZZZ

Per un dispositivo con una chiave pnpid di MyCrossbar, AVStream crea gli ID hardware del dispositivo figlio seguenti:

AVStream\MyCrossbar#PCI#VEN_XXXX&DEV_YYYY&SUBSYS_ZZZZZZZZ&REV_VV

AVStream\MyCrossbar#PCI#VEN_XXXX&DEV_YYYY&SUBSYS_ZZZZZZZZ

AVStream usa lo stesso processo per gli ID compatibili segnalati dal dispositivo padre. AVStream crea un ID compatibile per il dispositivo figlio del modulo:

ID> compatibile con padre compatibile con AVStream\pnpid<#>< modificato

Le regole di modifica e lunghezza dei nomi per gli ID compatibili sono identiche a quelle per gli ID hardware.

Ad esempio, se il dispositivo padre ha descritto in precedenza gli ID compatibili seguenti:

PCI\VEN_XXXX&DEV_YYYY&REV_VV

PCI\VEN_XXXX&DEV_YYYY

PCI\VEN_XXXX&CC_ZZZZZZ

PCI\VEN_XXXX&CC_ZZZZ

PCI\VEN_XXXX

PCI\CC_ZZZZZZ

PCI\CC_ZZZZ

Il dispositivo figlio MyCrossbar segnala i seguenti ID compatibili con AVStream:

AVStream\MyCrossbar#PCI#VEN_XXXX&DEV_YYYY&REV_VV

AVStream\MyCrossbar#PCI#VEN_XXXX&DEV_YYYY

AVStream\MyCrossbar#PCI#VEN_XXXX&CC_ZZZZZZ

AVStream\MyCrossbar#PCI#VEN_XXXX&CC_ZZZZ

AVStream\MyCrossbar#PCI#VEN_XXXX

AVStream\MyCrossbar#PCI#CC_ZZZZZZ

AVStream\MyCrossbar#PCI#CC_ZZZZ

AVStream\MyCrossbar

Nota In DirectX 9.0 e versioni successive, l'ID hardware legacy, AVStream\<pnpid>, viene comunque segnalato come ID compatibile con la classificazione più bassa. Di conseguenza, i driver legacy continuano a funzionare non modificati in queste piattaforme. Tuttavia, a partire dalla versione DirectX 9.0, Microsoft consiglia ai fornitori di scrivere driver nuovi o modificati che sfruttano l'enumeratore del bus di classe AVStream usano i nuovi formati ID hardware. I driver possono supportare le piattaforme che eseguono versioni precedenti di AVStream includendo l'ID precedente nell'elenco ID compatibile nel file INF.