Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Det här avsnittet gäller endast för Microsoft Windows Server 2003 och tidigare operativsystem om DirectX 9.0 eller senare är installerat på den plattformen.
AVStream kan fungera som en busenumerator för enheten och skapa en underordnad komponent för varje nyckel i Enum-grenen. Det gör du genom att placera en Enum-gren i registret under enhetsnyckeln.
Mer specifikt i avsnittet AddReg i drivrutinens INF-fil tillhandahåller leverantören ett värde pnpid av typen REG_SZ för varje post under Enum. AVStream använder det här strängvärdet för att konstruera ett PnP-maskinvaru-ID (Plug and Play) för varje enskild underenhet.
I tidigare versioner än DirectX 9.0 skapar AVStream ett underordnat maskinvaru-ID för enheten i formatet "AVStream\<pnpid>" (där <pnpid> är värdet för pnpid för den specifika enheten).
Leverantören anger till exempel följande i avsnittet AddReg i INF-filen:
[MyTVDevice.AddReg]
HKR,"ENUM\CrossbarDevice",pnpid,,"MyCrossbar"
HKR,"ENUM\TunerDevice",pnpid,,"MyTuner"
Därmed skapar AVStream två barndeenheter med följande enhets-ID:n:
AVStream\MyCrossbar
AVStream\MyTuner
För att lösa möjliga tvetydigheter från två olika underordnade enheter som anger samma pnpid-värde ändrar DirectX 9.0 och senare de ID:er som rapporteras för varje underordnad enhet. För varje maskinvaru-ID som rapporteras av den överordnade enheten skapar AVStream ett ID för den underordnade enheten i följande formulär:
AVStream\<pnpid>#<ändrad överordnad maskinvaru-ID>
Det ändrade överordnade maskinvaru-ID:t är det överordnade maskinvaru-ID:t med varje omvänt snedstreck (\) som ersätts av taltecknet (#).
Om den resulterande strängen är för lång avkortar AVStream ID-strängen vid MAX_DEVICE_ID_LEN tecken, inklusive NULL-terminator. I Windows Server 2003 är den här gränsen inställd på 200 tecken i cfgmgr32.h.
En överordnad enhet rapporterar till exempel följande maskinvaru-ID:n:
PCI\VEN_XXXX&DEV_YYYY&SUBSYS_ZZZZZZZZ&REV_VV
PCI\VEN_XXXX&DEV_YYYY&SUBSYS_ZZZZZZZZ
För en enhet med en pnpid-nyckel av MyCrossbar skapar AVStream följande underordnade enhetsmaskinvaru-ID:n:
AVStream\MyCrossbar#PCI#VEN_XXXX&DEV_YYYY&SUBSYS_ZZZZZZZZ&REV_VV
AVStream\MyCrossbar#PCI#VEN_XXXX&DEV_YYYY&SUBSYS_ZZZZZZZZ
AVStream använder samma process för kompatibilitets-ID:n som rapporteras av den överordnade enheten. AVStream skapar ett kompatibelt ID för den underordnade enheten i formatet:
AVStream\<pnpid>#<ändrat kompatibelt överordnat ID>
Namnändrings- och längdreglerna för kompatibla ID:er är identiska med dem för maskinvaru-ID:er.
Om den överordnade enheten som tidigare beskrivits rapporterar följande kompatibla ID:n, till exempel:
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
den underordnade enheten MyCrossbar skulle rapportera via AVStream följande kompatibla ID:n:
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
Obs I DirectX 9.0 och senare rapporteras det äldre maskinvaru-ID:t, AVStream\<pnpid>, fortfarande som det lägst prioriterade kompatibla ID:t. Därför fortsätter äldre drivrutiner att fungera oförändrade på dessa plattformar. Från och med DirectX 9.0-versionen rekommenderar Microsoft dock att leverantörer som skriver nya eller reviderade drivrutiner som utnyttjar AVStream-klassbussuppräknaren använder de nya maskinvaru-ID-formaten. Drivrutiner kan stödja plattformar som kör tidigare versioner av AVStream genom att inkludera det gamla ID:t i listan med kompatibla ID:er i INF-filen.