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.