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) |