Partager via


Appareils enfants AVStream

Cette section s’applique aux systèmes d’exploitation Microsoft Windows Server 2003 et antérieurs uniquement si DirectX 9.0 ou version ultérieure est installé sur cette plateforme.

AVStream peut fonctionner en tant qu’énumérateur de bus pour votre appareil, en créant un appareil enfant pour chaque clé dans la branche Enum . Pour ce faire, placez une branche Enum dans le Registre sous la clé d’appareil.

Plus précisément, dans la section AddReg du fichier INF du pilote, le fournisseur fournit une valeur pnpid de type REG_SZ pour chaque entrée sous Enum. AVStream utilise cette valeur de chaîne pour construire un ID matériel Plug-and-Play (PnP) pour chaque appareil enfant individuel.

Dans les versions antérieures à DirectX 9.0, AVStream crée un ID matériel d’appareil enfant au format « AVStream\<pnpid> » (où <pnpid> est la valeur de pnpid pour l’appareil spécifique).

Par exemple, le fournisseur spécifie ce qui suit dans la section AddReg du fichier INF :

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

Par conséquent, AVStream crée deux appareils enfants avec les ID d’appareil suivants :

AVStream\MyCrossbar

AVStream\MyTuner

Pour résoudre l’ambiguïté possible de deux appareils enfants différents spécifiant la même valeur pnpid , DirectX 9.0 et versions ultérieures modifient les ID signalés pour chacun des appareils enfants. Pour chaque ID matériel signalé par l’appareil parent, AVStream crée un ID pour l’appareil enfant sous la forme suivante :

ID> matériel parent modifié AVStream\pnpid<#<>

L’ID matériel parent modifié est l’ID matériel parent avec chaque barre oblique inverse (\) remplacée par le signe numérique (#).

Si la chaîne résultante est trop longue, AVStream termine la chaîne d’ID à MAX_DEVICE_ID_LEN caractères, y compris la marque de fin NULL . Dans Windows Server 2003, cette limite est définie sur 200 caractères dans cfgmgr32.h.

Par exemple, un appareil parent signale les ID matériels suivants :

PCI\VEN_XXXX&DEV_YYYY&SUBSYS_ZZZZZZZZ&REV_VV

PCI\VEN_XXXX&DEV_YYYY&SUBSYS_ZZZZZZZZ

Pour un appareil avec une clé pnpidmyCrossbar, AVStream crée les ID de matériel d’appareil enfant suivants :

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

AVStream\MyCrossbar#PCI#VEN_XXXX&DEV_YYYY&SUBSYS_ZZZZZZZZ

AVStream utilise le même processus pour les ID compatibles signalés par l’appareil parent. AVStream crée un ID compatible pour l’appareil enfant du formulaire :

ID> compatible parent modifié AVStream\pnpid<#<>

Les règles de modification de nom et de longueur pour les ID compatibles sont identiques à celles des ID matériels.

Par exemple, si l’appareil parent décrit précédemment signale les ID compatibles suivants :

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

L’appareil enfant MyCrossbar signale via AVStream les ID compatibles suivants :

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

Note Dans DirectX 9.0 et versions ultérieures, l’ID matériel hérité, AVStream\<pnpid>, est toujours signalé comme l’ID compatible avec le rang le plus bas. Par conséquent, les pilotes hérités continuent de fonctionner sans modification sur ces plateformes. Toutefois, à compter de la version DirectX 9.0, Microsoft recommande aux fournisseurs qui écrivent des pilotes nouveaux ou révisés qui tirent parti de l’énumérateur de bus de classe AVStream d’utiliser les nouveaux formats d’ID matériel. Les pilotes peuvent prendre en charge les plateformes exécutant des versions antérieures d’AVStream en incluant l’ancien ID dans la liste des ID compatibles dans le fichier INF.