estrutura VIDEO_PORT_CONFIG_INFO (video.h)

A estrutura VIDEO_PORT_CONFIG_INFO contém informações de configuração de adaptador específicas do barramento. Essa estrutura é usada para configurar o hardware de vídeo e fornecer ao driver de porta de vídeo informações de configuração. O driver de porta de vídeo pode alocar os recursos do sistema necessários para o driver de miniporta e seu adaptador.

Sintaxe

typedef struct _VIDEO_PORT_CONFIG_INFO {
  ULONG                        Length;
  ULONG                        SystemIoBusNumber;
  INTERFACE_TYPE               AdapterInterfaceType;
  ULONG                        BusInterruptLevel;
  ULONG                        BusInterruptVector;
  KINTERRUPT_MODE              InterruptMode;
  ULONG                        NumEmulatorAccessEntries;
  PEMULATOR_ACCESS_ENTRY       EmulatorAccessEntries;
  ULONG_PTR                    EmulatorAccessEntriesContext;
  PHYSICAL_ADDRESS             VdmPhysicalVideoMemoryAddress;
  ULONG                        VdmPhysicalVideoMemoryLength;
  ULONG                        HardwareStateSize;
  ULONG                        DmaChannel;
  ULONG                        DmaPort;
  UCHAR                        DmaShareable;
  UCHAR                        InterruptShareable;
  BOOLEAN                      Master;
  DMA_WIDTH                    DmaWidth;
  DMA_SPEED                    DmaSpeed;
  BOOLEAN                      bMapBuffers;
  BOOLEAN                      NeedPhysicalAddresses;
  BOOLEAN                      DemandMode;
  ULONG                        MaximumTransferLength;
  ULONG                        NumberOfPhysicalBreaks;
  BOOLEAN                      ScatterGather;
  ULONG                        MaximumScatterGatherChunkSize;
  PVIDEO_PORT_GET_PROC_ADDRESS VideoPortGetProcAddress;
  PWSTR                        DriverRegistryPath;
  ULONGLONG                    SystemMemorySize;
} VIDEO_PORT_CONFIG_INFO, *PVIDEO_PORT_CONFIG_INFO;

Membros

Length

É o tamanho em bytes dessa estrutura. O driver de porta de vídeo sempre inicializa o membro Length . Na verdade, seu valor indica a versão de VIDEO_PORT_CONFIG_INFO sendo usada pelo sistema. Como essa estrutura pode crescer de uma versão do sistema para a próxima, um driver de miniporta deve marcar esse membro para determinar se é pelo menos sizeof(VIDEO_PORT_CONFIG_INFO) que o driver de miniporto usa para configurar seu adaptador.

SystemIoBusNumber

Especifica o número atribuído pelo sistema do barramento de E/S no qual o adaptador do miniportor pode estar conectado. O driver de porta de vídeo sempre inicializa esse membro.

AdapterInterfaceType

Especifica o tipo de interface de barramento. O driver de porta de vídeo sempre define esse membro com base no barramento no qual o gerenciador PnP detectou o dispositivo.

BusInterruptLevel

Esse membro será irrelevante se o hardware de vídeo não gerar interrupções, indicado definindo o membro HwInterrupt na estrutura VIDEO_HW_INITIALIZATION_DATA como NULL. Caso contrário, ele especifica o IRQL relativo ao barramento que corresponde à solicitação de interrupção em barramentos do tipo Isa ou MicroChannel . O valor padrão predefinido para esse membro é zero. Um driver de miniporta deve fornecer o valor correto se ele lidar com interrupções para um adaptador de vídeo em um barramento do tipo Isa ou MicroChannel ou para um adaptador de vídeo configurado para interrupções sensíveis ao nível em um barramento do tipo Eisa .

Se a função HwVidFindAdapter de um driver de miniporta descobrir que o adaptador de vídeo não gera interrupções ou que não pode determinar um vetor/nível de interrupção válido para o adaptador, HwVidFindAdapter deve definir BusInterruptLevel e BusInterruptVector como zero.

BusInterruptVector

Esse membro será irrelevante se o hardware de vídeo não gerar interrupções, indicado definindo o membro HwInterrupt na estrutura VIDEO_HW_INITIALIZATION_DATA como NULL. Caso contrário, ele especifica o vetor relativo ao barramento usado pelo hardware de vídeo em ônibus de E/S que usam vetores de interrupção, como ônibus PCI. O valor padrão predefinido para esse membro é zero.

Se a função HwVidFindAdapter de um driver de miniporta descobrir que o adaptador de vídeo não gera interrupções ou que não pode determinar um vetor/nível de interrupção válido para o adaptador, HwVidFindAdapter deve definir BusInterruptVector e BusInterruptLevel como zero.

InterruptMode

Indica se o hardware de vídeo usa interrupções Latched ou LevelSensitive . O driver de porta de vídeo inicializa esse membro se ele for relevante, mas um driver de miniporta com um ISR deve marcar que ele contém o valor correto e redefini-lo, se necessário.

NumEmulatorAccessEntries

Esse membro e todos os membros subsequentes por meio de HardwareStateSize são irrelevantes para drivers de miniporto que não se declaram drivers de miniporta compatíveis com VGA em plataformas de sistema operacional baseadas em NT baseadas em x86. Para drivers de miniporta que não dão suporte a adaptadores SVGA compatíveis com VGA em computadores baseados em x86, esse membro deve ser zero. Caso contrário, ele especifica o número de elementos do tipo EMULATOR_ACCESS_RANGE na matriz a seguir.

EmulatorAccessEntries

Ponteiro para uma matriz de intervalos de acesso do emulador configurados pelo driver de miniporto compatível com VGA. Cada intervalo de acesso do emulador deve ser um subconjunto adequado da matriz do tipo VIDEO_ACCESS_RANGE do driver de miniport. Cada elemento especifica um intervalo de portas de E/S a serem conectadas pelo emulador V86 e, possivelmente, monitoradas por uma função SvgaHwIoPortXxx fornecida pelo driver sempre que um aplicativo MS-DOS, executando tela inteira, tenta gravar diretamente nos registros do adaptador de vídeo. Normalmente, essa matriz descreve todos os intervalos de portas de E/S na matriz de intervalos de acesso correspondente. Se o driver de miniporta definir sua matriz de entradas de acesso do emulador estaticamente no próprio driver, o driver de porta inicializará esse ponteiro para essa matriz. Se NumEmulatorAccessEntries for zero, esse membro será NULL.

EmulatorAccessEntriesContext

Especifica um valor passado com cada chamada para uma função SvgaHwIoPortXxx descrita na matriz EmulatorAccessEntries . Normalmente, um driver de miniporto compatível com VGA define o valor desse membro como o ponteiro HwDeviceExtension ou para um deslocamento dentro da extensão do dispositivo, para que o driver de miniporto possa manter o estado, como instruções emitidas pelo aplicativo em lote, em suas funções SvgaHwIoPortXxx .

VdmPhysicalVideoMemoryAddress

Especifica o endereço lógico base (mapeado) de um intervalo de memória de vídeo a ser mapeado para o espaço de endereço de uma VDM para suporte a BIOS X86 INT10. Para drivers de miniporta que não dão suporte a adaptadores compatíveis com VGA em computadores baseados em x86, esse membro deve ser NULL.

VdmPhysicalVideoMemoryLength

Especifica o tamanho em bytes do intervalo a ser mapeado para o espaço de endereço de uma VDM para suporte ao BIOS x86. Para drivers de miniporta que não dão suporte a adaptadores compatíveis com VGA em computadores baseados em x86, esse membro deve ser zero.

HardwareStateSize

Especifica o tamanho mínimo em bytes necessários para armazenar informações de estado de hardware em resposta a uma solicitação de IOCTL_VIDEO_SAVE_HARDWARE_STATE , que deve ter suporte apenas por drivers de miniporta compatíveis com VGA em computadores baseados em x86. O valor inicializado para esse membro é zero. Um driver de miniporto compatível com VGA deve definir esse membro como o número de bytes necessários para manter o estado do adaptador salvo.

DmaChannel

Reservado para uso do sistema.

DmaPort

Reservado para uso do sistema.

DmaShareable

Reservado para uso do sistema.

InterruptShareable

Se o dispositivo do driver de miniporta interromper, esse membro deverá ser definido como zero se a interrupção não puder ser compartilhada com outro dispositivo ou definida como um se a interrupção puder ser compartilhada. Caso contrário, um driver de miniporta pode ignorar esse membro.

Master

Reservado para uso do sistema.

DmaWidth

Reservado para uso do sistema.

DmaSpeed

Reservado para uso do sistema.

bMapBuffers

Reservado para uso do sistema.

NeedPhysicalAddresses

Reservado para uso do sistema.

DemandMode

Reservado para uso do sistema.

MaximumTransferLength

Reservado para uso do sistema.

NumberOfPhysicalBreaks

Reservado para uso do sistema.

ScatterGather

Reservado para uso do sistema.

MaximumScatterGatherChunkSize

Reservado para uso do sistema.

VideoPortGetProcAddress

Ponteiro para a rotina de retorno de chamada VideoPortGetProcAddress . Esse membro é usado para localizar o endereço de uma função de driver de porta de vídeo que o driver de miniporto de vídeo pode usar sem vincular diretamente a ele. Isso permite que um binário de driver seja executado em uma versão anterior do Windows. Para obter detalhes, consulte Usando VideoPortGetProcAddress.

DriverRegistryPath

Ponteiro para o caminho do Registro que contém o serviço do dispositivo. O driver de exibição pode usar essas informações de qualquer maneira que julgar útil.

SystemMemorySize

Indica a um driver a quantidade, em bytes, de memória física no sistema.

Requisitos

Requisito Valor
Cabeçalho video.h (incluir Video.h)

Confira também

HwVidFindAdapter

IOCTL_VIDEO_SAVE_HARDWARE_STATE

VIDEO_ACCESS_RANGE

VIDEO_HW_INITIALIZATION_DATA

VideoPortGetAccessRanges

VideoPortGetDeviceBase

VideoPortGetDeviceData

VideoPortGetProcAddress

VideoPortVerifyAccessRanges