UNTERGEORDNETE AVStream-Geräte
Dieser Abschnitt gilt nur für Microsoft Windows Server 2003 und frühere Betriebssysteme, wenn DirectX 9.0 oder höher auf dieser Plattform installiert ist.
AVStream kann als Bus-Enumerator für Ihr Gerät fungieren und ein untergeordnetes Gerät für jeden Schlüssel im Enum-Branch erstellen. Platzieren Sie dazu einen Enum-Branch in der Registrierung unter dem Geräteschlüssel.
Insbesondere gibt der Anbieter im Abschnitt AddReg der INF-Datei des Treibers einen Wert vom Typ pnpid vom Typ REG_SZ für jeden Eintrag unter Enum an. AVStream verwendet diesen Zeichenfolgenwert, um eine Plug & Play(PnP)-Hardware-ID für jedes einzelne untergeordnete Gerät zu erstellen.
In Versionen vor DirectX 9.0 erstellt AVStream eine untergeordnete Gerätehardware-ID im Format "AVStream\<pnpid>" (wobei <pnpid> der Wert von pnpid für das jeweilige Gerät ist).
Der Anbieter gibt beispielsweise Folgendes im Abschnitt AddReg der INF-Datei an:
[MyTVDevice.AddReg]
HKR,"ENUM\CrossbarDevice",pnpid,,"MyCrossbar"
HKR,"ENUM\TunerDevice",pnpid,,"MyTuner"
Entsprechend erstellt AVStream zwei untergeordnete Geräte mit den folgenden Geräte-IDs:
AVStream\MyCrossbar
AVStream\MyTuner
Um mögliche Mehrdeutigkeiten von zwei verschiedenen untergeordneten Geräten zu beheben, die denselben pnpid-Wert angeben, ändern DirectX 9.0 und höher die für jedes der untergeordneten Geräte gemeldeten IDs. Für jede Hardware-ID, die vom übergeordneten Gerät gemeldet wird, erstellt AVStream eine ID für das untergeordnete Gerät in der folgenden Form:
Geänderte übergeordnete Hardware-ID> von AVStream\pnpid<#<>
Die geänderte übergeordnete Hardware-ID ist die übergeordnete Hardware-ID, wobei jedes umgekehrte Schrägstrichzeichen (\) durch das Zahlenzeichen (#) ersetzt wird.
Wenn die resultierende Zeichenfolge zu lang ist, beendet AVStream die ID-Zeichenfolge bei MAX_DEVICE_ID_LEN Zeichen, einschließlich des NULL-Abschlusszeichens . In Windows Server 2003 ist dieser Grenzwert in cfgmgr32.h auf 200 Zeichen festgelegt.
Ein übergeordnetes Gerät meldet beispielsweise die folgenden Hardware-IDs:
PCI\VEN_XXXX&DEV_YYYY&SUBSYS_ZZZZZZZZ&REV_VV
PCI\VEN_XXXX&DEV_YYYY&SUBSYS_ZZZZZZZZ
Für ein Gerät mit dem pnpid-SchlüsselMyCrossbar erstellt AVStream die folgenden untergeordneten Gerätehardware-IDs:
AVStream\MyCrossbar#PCI#VEN_XXXX&DEV_YYYY&SUBSYS_ZZZZZZZZ&REV_VV
AVStream\MyCrossbar#PCI#VEN_XXXX&DEV_YYYY&SUBSYS_ZZZZZZZZ
AVStream verwendet den gleichen Prozess für kompatible IDs, die vom übergeordneten Gerät gemeldet werden. AVStream erstellt eine kompatible ID für das untergeordnete Gerät des Formulars:
AVStream\<pnpid geänderte>#<übergeordnete kompatible ID>
Die Namensänderungs- und Längenregeln für kompatible IDs sind identisch mit denen für Hardware-IDs.
Beispielsweise, wenn das zuvor beschriebene übergeordnete Gerät die folgenden kompatiblen IDs meldet:
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
Das untergeordnete MyCrossbar-Gerät meldet über AVStream die folgenden kompatiblen IDs:
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
Hinweis In DirectX 9.0 und höher wird die Legacyhardware-ID AVStream\<pnpid> weiterhin als die mit dem niedrigsten Rang kompatible ID gemeldet. Daher funktionieren ältere Treiber weiterhin unverändert auf diesen Plattformen. Ab dem Release DirectX 9.0 empfiehlt Microsoft jedoch, dass Anbieter neue oder überarbeitete Treiber schreiben, die den AVStream-Klassenbus-Enumerator nutzen, die neuen Hardware-ID-Formate verwenden. Treiber können Plattformen unterstützen, auf denen frühere Versionen von AVStream ausgeführt werden, indem sie die alte ID in die Liste der kompatiblen IDs in die INF-Datei einschließen.