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.