Compartir a través de


estructura VIDEO_PORT_CONFIG_INFO (video.h)

La estructura 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. Después, el controlador de puerto de vídeo puede asignar los recursos del sistema necesarios para el controlador de miniporte 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 miniporte debe comprobar este miembro para determinar si es al menos tamaño de(VIDEO_PORT_CONFIG_INFO) que usa el controlador de miniporte para configurar su adaptador.

SystemIoBusNumber

Especifica el número asignado por el sistema del bus de E/S en el que el adaptador del controlador de miniporte podría estar conectado. 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 Isa o MicroChannel buses de tipo. El valor predeterminado preestablecido para este miembro es cero. Un controlador de miniport debe proporcionar el valor correcto si controla las interrupciones de un adaptador de vídeo en un Isa o microChannel bus de tipo, 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 no genera interrupciones o que no puede determinar un vector o nivel 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 buses PCI. El valor predeterminado preestablecido para este miembro es cero.

Si la función de HwVidFindAdapter de un controlador de miniporte 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 de o LevelSensitive. El controlador de puerto de vídeo inicializa este miembro si es relevante, pero un controlador de miniporte con un ISR debe comprobar que contiene el valor correcto y restablecerlo si es necesario.

NumEmulatorAccessEntries

Este miembro y todos los miembros subsiguientes a través de HardwareStateSize son irrelevantes para los controladores de miniporte que no se declaran como controladores de miniport 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 matriz siguiente.

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 VIDEO_ACCESS_RANGEde tipo -type 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 de MS-DOS, ejecutando la 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 miniporta 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 de. 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, por lo que el controlador de miniporte puede mantener el estado, como las instrucciones emitidas por la aplicación por lotes, en sus funciones SvgaHwIoPortXxx.

VdmPhysicalVideoMemoryAddress

Especifica la dirección lógica base (asignada) de un intervalo de memoria de vídeo que se asignará al espacio de direcciones de un VDM para la compatibilidad con BIOS INT10 x86. Para los controladores de miniportar 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 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 de 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 miniporte 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 VideoPortGetProcAddres s. 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 Using 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
encabezado de 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