PDRIVER_IO_PORT_ULONG_STRING función de devolución de llamada (video.h)
SvgaHwIoPortUlongString intercepta un intervalo de puertos de E/S al que una aplicación MS-DOS de pantalla completa en una máquina basada en x86 envía una secuencia de datos de tamaño ULONG.
Sintaxis
PDRIVER_IO_PORT_ULONG_STRING PdriverIoPortUlongString;
VP_STATUS PdriverIoPortUlongString(
ULONG_PTR Context,
ULONG Port,
UCHAR AccessMode,
PULONG Data,
ULONG DataLength
)
{...}
Parámetros
Context
Especifica el valor de contexto determinado por el controlador de miniport que se estableció en el miembro EmulatorAccessEntriesContext de VIDEO_PORT_CONFIG_INFO.
Port
Especifica el puerto de E/S asignado que se va a interceptar.
AccessMode
Especifica el tipo de acceso permitido, que puede ser una o una combinación (ORed) de los valores siguientes:
- EMULATOR_READ_ACCESS
- EMULATOR_WRITE_ACCESS
Data
Puntero a la cadena de datos ULONG que se va a transferir. La cadena se enlaza un valor a la vez hasta que se usa todo.
DataLength
Especifica el número de valores de ULONG en la cadena.
Valor devuelto
SvgaHwIoPortUlongString devuelve el estado final de la operación.
Comentarios
Solo los controladores miniporte de adaptadores SVGA compatibles con VGA tienen funciones SvgaHwIoPortXxx . (Consulte Funciones SVGA).
SvgaHwIoPortUlongString intercepta cualquier acceso de intervalo intentado por una aplicación MS-DOS de pantalla completa que emite o ambas instrucciones REP OUTSD DX, ESI y REP INSD EDI, DX.
Si el controlador de minipuerto habilita el intervalo de puertos para el acceso directo mediante una llamada a VideoSetTrappedEmulatorPorts, no se llamará a su función SvgaHwIoPortUlongString . Esta aplicación tendrá acceso directo al intervalo de puertos de E/S, a menos que el controlador de miniporte deshabilite el intervalo de puertos con otra llamada a VideoSetTrappedEmulatorPorts.
Si una o varias instrucciones x86 INSD o OUTSD emitidas por la aplicación pueden afectar al estado del registro del secuenciador de adaptadores compatible con VGA, al registro de salida varios o a cualquier registro específico del adaptador y, por lo tanto, hacer que la máquina se bloquee, el controlador de miniporte no debe habilitar el puerto para el acceso directo mediante una llamada a VideoPortSetTrappedEmulatorPorts.
SvgaHwIoPortUlongString debe almacenar en búfer las instrucciones posteriores de la aplicación y comprobar que ninguna puede bloquear la máquina. Si la aplicación emite cualquier secuencia de instrucciones que pueda bloquear la máquina, SvgaHwIoPortUlongString debe descartar las instrucciones almacenadas en búfer. De lo contrario, debe generarlos, una ULONG a la vez, en el puerto de E/S asignado especificado.
SvgaHwIoPortUlongString debe ser paginable.
Requisitos
Requisito | Value |
---|---|
Plataforma de destino | Escritorio |
Encabezado | video.h (incluir Video.h) |