Compartir a través de


estructura de VIDEO_PORT_CONFIG_INFO (video.h)

La estructura de VIDEO_PORT_CONFIG_INFO contiene información de configuración del adaptador específica del bus. Esta estructura se usa para configurar el hardware de vídeo y para proporcionar al controlador de puerto de vídeo información de configuración. A continuación, el controlador de puerto de vídeo puede asignar los recursos del sistema necesarios para el controlador de minipuerto y su adaptador.

Sintaxis

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;

Miembros

Length

Es el tamaño en bytes de esta estructura. El controlador de puerto de vídeo siempre inicializa el miembro Length . En efecto, su valor indica la versión de VIDEO_PORT_CONFIG_INFO que usa el sistema. Dado que esta estructura puede crecer de una versión del sistema a la siguiente, un controlador de minipuerto debe comprobar este miembro para determinar si es al menos sizeof(VIDEO_PORT_CONFIG_INFO) que usa el controlador de minipuerto para configurar su adaptador.

SystemIoBusNumber

Especifica el número asignado por el sistema del bus de E/S en el que se puede conectar el adaptador del controlador de miniporte. El controlador de puerto de vídeo siempre inicializa este miembro.

AdapterInterfaceType

Especifica el tipo de interfaz de bus. El controlador de puerto de vídeo siempre establece este miembro en función del bus en el que el administrador de PnP detectó el dispositivo.

BusInterruptLevel

Este miembro es irrelevante si el hardware de vídeo no genera interrupciones, indicado estableciendo el miembro HwInterrupt en la estructura de VIDEO_HW_INITIALIZATION_DATA en NULL. De lo contrario, especifica el IRQL relativo al bus que corresponde a la solicitud de interrupción en los buses de tipo Isa o MicroChannel . El valor predeterminado predeterminado para este miembro es cero. Un controlador de minipuerto debe proporcionar el valor correcto si controla las interrupciones de un adaptador de vídeo en un bus de tipo Isa o MicroChannel , o para un adaptador de vídeo configurado para interrupciones sensibles a nivel en un bus de tipo Eisa .

Si la función HwVidFindAdapter de un controlador de miniporte encuentra que el adaptador de vídeo no genera interrupciones o que no puede determinar un nivel o vector de interrupción válido para el adaptador, HwVidFindAdapter debe establecer BusInterruptLevel y BusInterruptVector en cero.

BusInterruptVector

Este miembro es irrelevante si el hardware de vídeo no genera interrupciones, indicado estableciendo el miembro HwInterrupt en la estructura de VIDEO_HW_INITIALIZATION_DATA en NULL. De lo contrario, especifica el vector relativo al bus usado por el hardware de vídeo en buses de E/S que usan vectores de interrupción, como los buses PCI. El valor predeterminado predeterminado para este miembro es cero.

Si la función HwVidFindAdapter de un controlador de miniporte encuentra que el adaptador de vídeo no genera interrupciones o que no puede determinar un nivel o vector de interrupción válido para el adaptador, HwVidFindAdapter debe establecer BusInterruptVector y BusInterruptLevel en cero.

InterruptMode

Indica si el hardware de vídeo usa interrupciones con bloqueos temporales o LevelSensitive . El controlador de puerto de vídeo inicializa este miembro si es relevante, pero un controlador de minipuerto con un ISR debe comprobar que contiene el valor correcto y restablecerlo si es necesario.

NumEmulatorAccessEntries

Este miembro y todos los miembros posteriores a través de HardwareStateSize son irrelevantes para los controladores de minipuerto que no se declaran como controladores de miniporte compatibles con VGA en plataformas de sistema operativo basadas en NT basadas en x86. Para los controladores de miniporte que no admiten adaptadores SVGA compatibles con VGA en máquinas basadas en x86, este miembro debe ser cero. De lo contrario, especifica el número de elementos de tipo EMULATOR_ACCESS_RANGE en la siguiente matriz.

EmulatorAccessEntries

Puntero a una matriz de intervalos de acceso del emulador configurados por el controlador de miniport compatible con VGA. Cada intervalo de acceso del emulador debe ser un subconjunto adecuado de la matriz de tipo VIDEO_ACCESS_RANGE del controlador de miniport. Cada elemento especifica un intervalo de puertos de E/S que va a enlazar el emulador V86 y, posiblemente, supervisado por una función SvgaHwIoPortXxx proporcionada por el controlador cada vez que una aplicación MS-DOS, que ejecuta una pantalla completa, intenta escribir directamente en los registros del adaptador de vídeo. Normalmente, esta matriz describe todos los intervalos de puertos de E/S de la matriz de intervalos de acceso correspondientes. Si el controlador de minipuerto define su matriz de entradas de acceso del emulador estáticamente en el propio controlador, el controlador de puerto inicializa este puntero a esa matriz. Si NumEmulatorAccessEntries es cero, este miembro es NULL.

EmulatorAccessEntriesContext

Especifica un valor pasado con cada llamada a una función SvgaHwIoPortXxx descrita en la matriz EmulatorAccessEntries . Normalmente, un controlador de miniport compatible con VGA establece el valor de este miembro en el puntero HwDeviceExtension , o en un desplazamiento dentro de la extensión del dispositivo, para que el controlador de miniporte pueda mantener el estado, como las instrucciones emitidas por lotes por la aplicación, en sus funciones SvgaHwIoPortXxx .

VdmPhysicalVideoMemoryAddress

Especifica la dirección lógica base (asignada) de un intervalo de memoria de vídeo que se va a asignar al espacio de direcciones de un VDM para la compatibilidad con BIOS INT10 x86. Para los controladores de miniporte que no admiten adaptadores compatibles con VGA en máquinas basadas en x86, este miembro debe ser NULL.

VdmPhysicalVideoMemoryLength

Especifica el tamaño en bytes del intervalo que se va a asignar al espacio de direcciones de un VDM para la compatibilidad con bios x86. Para los controladores de miniporte que no admiten adaptadores compatibles con VGA en máquinas basadas en x86, este miembro debe ser cero.

HardwareStateSize

Especifica el tamaño mínimo en bytes necesarios para almacenar información de estado de hardware en respuesta a una solicitud de IOCTL_VIDEO_SAVE_HARDWARE_STATE , que solo debe ser compatible con controladores de miniport compatibles con VGA en máquinas basadas en x86. El valor inicializado para este miembro es cero. Un controlador de miniport compatible con VGA debe establecer este miembro en el número de bytes que requiere para contener el estado del adaptador guardado.

DmaChannel

Reservado para uso del sistema.

DmaPort

Reservado para uso del sistema.

DmaShareable

Reservado para uso del sistema.

InterruptShareable

Si se interrumpe el dispositivo del controlador de miniporte, este miembro debe establecerse en cero si la interrupción no se puede compartir con otro dispositivo o establecerla en una si se puede compartir la interrupción. De lo contrario, un controlador de minipuerto puede omitir este miembro.

Master

Reservado para uso del sistema.

DmaWidth

Reservado para uso del sistema.

DmaSpeed

Reservado para uso del sistema.

bMapBuffers

Reservado para uso del sistema.

NeedPhysicalAddresses

Reservado para uso del sistema.

DemandMode

Reservado para uso del sistema.

MaximumTransferLength

Reservado para uso del sistema.

NumberOfPhysicalBreaks

Reservado para uso del sistema.

ScatterGather

Reservado para uso del sistema.

MaximumScatterGatherChunkSize

Reservado para uso del sistema.

VideoPortGetProcAddress

Puntero a la rutina de devolución de llamada VideoPortGetProcAddress . Este miembro se usa para buscar la dirección de una función de controlador de puerto de vídeo que el controlador de miniporte de vídeo puede usar sin vincularlo directamente. Esto permite que un archivo binario del controlador se ejecute en una versión anterior de Windows. Para obtener más información, consulte Uso de VideoPortGetProcAddress.

DriverRegistryPath

Puntero a la ruta de acceso del Registro que contiene el servicio del dispositivo. El controlador de pantalla puede usar esta información de cualquier manera que considere útil.

SystemMemorySize

Indica a un controlador la cantidad, en bytes, de memoria física en el sistema.

Requisitos

Requisito Valor
Header video.h (incluya Video.h)

Consulte también

HwVidFindAdapter

IOCTL_VIDEO_SAVE_HARDWARE_STATE

VIDEO_ACCESS_RANGE

VIDEO_HW_INITIALIZATION_DATA

VideoPortGetAccessRanges

VideoPortGetDeviceBase

VideoPortGetDeviceData

VideoPortGetProcAddress

VideoPortVerifyAccessRanges