PDRIVER_IO_PORT_UCHAR回调函数 (video.h)

SvgaHwIoPortUchar 捕获基于 x86 的计算机中的全屏 MS-DOS 应用程序的 I/O 端口正在发送 UCHAR 大小的数据。

语法

PDRIVER_IO_PORT_UCHAR PdriverIoPortUchar;

VP_STATUS PdriverIoPortUchar(
  ULONG_PTR Context,
  ULONG Port,
  UCHAR AccessMode,
  PUCHAR Data
)
{...}

参数

Context

指定在 VIDEO_PORT_CONFIG_INFO的 EmulatorAccessEntriesContext 成员中设置的微型端口驱动程序定义的上下文值。

Port

指定要捕获的映射 I/O 端口。

AccessMode

指定要捕获的访问的类型,可以是以下值的一个或一个组合 (ORed) :

EMULATOR_READ_ACCESS
EMULATOR_WRITE_ACCESS

Data

指向要传输的字节的指针。

返回值

SvgaHwIoPortUchar 返回操作的最终状态。

注解

只有 VGA 兼容的 SVGA 适配器的微型端口驱动程序才具有 SvgaHwIoPortXxx 函数。 (请参阅 SVGA Functions.)

SvgaHwIoPortUchar 截获了全屏 MS-DOS 应用程序发出指令 输出 DX、ALIN AL、DX 的任何字节访问尝试。

如果微型端口驱动程序通过调用 VideoPortSetTrappedEmulatorPorts启用端口进行直接访问,则不会调用其 SvgaHwIoPortUchar 函数。 然后,此类应用程序将直接访问端口,除非微型端口驱动程序通过另一次调用 VideoPortSetTrappedEmulatorPorts 禁用端口

如果一个或多个应用程序颁发的 x86 INOUT 指令可能会影响 VGA 兼容的适配器序列器寄存器、杂项输出寄存器或任何特定于适配器的寄存器的状态,从而导致计算机挂起,微型端口驱动程序 不得 通过调用 VideoPortSetTrappedEmulatorPorts 启用端口以直接访问。

SvgaHwIoPortUchar 必须缓冲从应用程序到 端口 的后续指令,并检查是否可以挂起计算机。 如果应用程序发出任何可能挂起计算机的指令序列, SvgaHwIoPortUchar 必须放弃缓冲指令。 否则,它应将它们(一次一个 UCHAR)输出到指定的映射 I/O 端口。

SvgaHwIoPortUchar 应可分页。

要求

   
目标平台 桌面
Header video.h (包括 Video.h)

请参阅

EMULATOR_ACCESS_ENTRY

SVGA 函数

SvgaHwIoPortUcharString

VIDEO_ACCESS_RANGE

VIDEO_PORT_CONFIG_INFO

VideoPortGetDeviceBase

VideoPortSetTrappedEmulatorPorts