Partilhar via


Dispositivos filho AVStream

Esta seção se aplica ao Microsoft Windows Server 2003 e sistemas operacionais anteriores somente se o DirectX 9.0 ou posterior estiver instalado nessa plataforma.

O AVStream pode funcionar como um enumerador de barramento para seu dispositivo, criando um dispositivo filho para cada chave no branch Enum . Para fazer isso, coloque um branch Enum no registro sob a chave do dispositivo.

Especificamente, na seção AddReg do arquivo INF do driver, o fornecedor fornece um valor pnpid do tipo REG_SZ para cada entrada em Enum. O AVStream usa esse valor de cadeia de caracteres para construir uma ID de hardware de Plug and Play (PnP) para cada dispositivo filho individual.

Em versões anteriores ao DirectX 9.0, o AVStream cria uma ID de hardware de dispositivo filho do formato "AVStream\<pnpid>" (em <que pnpid> é o valor de pnpid para o dispositivo específico).

Por exemplo, o fornecedor especifica o seguinte na seção AddReg do arquivo INF:

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

Assim, o AVStream cria dois dispositivos filho com as seguintes IDs de dispositivo:

AVStream\MyCrossbar

AVStream\MyTuner

Para resolve possível ambiguidade de dois dispositivos filho diferentes especificando o mesmo valor pnpid, o DirectX 9.0 e posterior alteram as IDs relatadas para cada um dos dispositivos filho. Para cada ID de hardware relatada pelo dispositivo pai, o AVStream cria uma ID para o dispositivo filho na seguinte forma:

AVStream\<pnpid>#<modificou a ID> de hardware pai

A ID de hardware pai modificada é a ID de hardware pai com cada caractere de barra invertida (\) substituído pelo sinal de número (#).

Se a cadeia de caracteres resultante for muito longa, o AVStream encerrará a cadeia de caracteres de ID em MAX_DEVICE_ID_LEN caracteres, incluindo o terminador NULL . No Windows Server 2003, esse limite é definido como 200 caracteres no cfgmgr32.h.

Por exemplo, um dispositivo pai relata as seguintes IDs de hardware:

PCI\VEN_XXXX&DEV_YYYY&SUBSYS_ZZZZZZZZ&REV_VV

PCI\VEN_XXXX&DEV_YYYY&SUBSYS_ZZZZZZZZ

Para um dispositivo com uma chave pnpid de MyCrossbar, o AVStream cria as seguintes IDs de hardware de dispositivo filho:

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

AVStream\MyCrossbar#PCI#VEN_XXXX&DEV_YYYY&SUBSYS_ZZZZZZZZ

O AVStream usa o mesmo processo para IDs compatíveis relatadas pelo dispositivo pai. O AVStream cria uma ID compatível para o dispositivo filho do formulário:

AVStream\<pnpid>#<modificou a ID> compatível com o pai

As regras de modificação de nome e comprimento para IDs compatíveis são idênticas às das IDs de hardware.

Por exemplo, se o dispositivo pai descrito anteriormente relatar as seguintes IDs compatíveis:

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

O dispositivo filho MyCrossbar relataria por meio do AVStream as seguintes IDs compatíveis:

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 No DirectX 9.0 e posterior, a ID de hardware herdada, AVStream\<pnpid>, ainda é relatada como a ID compatível com a classificação mais baixa. Como resultado, os drivers herdados continuam a trabalhar sem modificações nessas plataformas. No entanto, a partir da versão DirectX 9.0, a Microsoft recomenda que os fornecedores que escrevem drivers novos ou revisados que aproveitam o enumerador de barramento de classe AVStream usem os novos formatos de ID de hardware. Os drivers podem dar suporte a plataformas que executam versões anteriores do AVStream, incluindo a ID antiga na lista de IDs compatíveis no arquivo INF.