PDRIVER_IO_PORT_UCHAR回调函数 (video.h)
SvgaHwIoPortUchar 捕获基于 x86 的计算机中的全屏 MS-DOS 应用程序发送 UCHAR 大小的数据的 I/O 端口。
语法
PDRIVER_IO_PORT_UCHAR PdriverIoPortUchar;
VP_STATUS PdriverIoPortUchar(
ULONG_PTR Context,
ULONG Port,
UCHAR AccessMode,
PUCHAR Data
)
{...}
参数
Context
指定在 EmulatorAccessEntriesContext 成员中设置 VIDEO_PORT_CONFIG_INFO的微型端口驱动程序定义的上下文值。
Port
指定要捕获的映射 I/O 端口。
AccessMode
指定要捕获的访问的类型,可以是以下值的一个或组合(ORed):
- EMULATOR_READ_ACCESS
- EMULATOR_WRITE_ACCESS
Data
指向要传输的字节的指针。
返回值
SvgaHwIoPortUchar 返回作的最终状态。
言论
只有 VGA 兼容的 SVGA 适配器的微型端口驱动程序 SvgaHwIoPortXxx 函数。 (请参阅 SVGA 函数。)
SvgaHwIoPortUchar 截获全屏 MS-DOS 应用程序尝试的任何字节访问,或者 OUT DX、AL 和 IN AL、DX。
如果微型端口驱动程序通过调用 VideoPortSetTrappedEmulatorPorts来启用 端口,则不会调用其 SvgaHwIoPortUchar 函数。 然后,此类应用程序将直接访问 端口,除非微型端口驱动程序禁用 端口,并再次调用 VideoPortSetTrappedEmulatorPorts。
如果一个或多个应用程序颁发的 x86 IN 或 OUT 指令可能会影响 VGA 兼容的适配器序列器寄存器、杂项输出寄存器或任何特定于适配器的寄存器的状态,从而导致计算机挂起,微型端口驱动程序必须 不 通过调用 VideoPortSetTrappedEmulatorPorts来启用端口以直接访问。
SvgaHwIoPortUchar 必须将应用程序的后续指令缓冲到 端口,并检查是否可以挂起计算机。 如果应用程序发出任何可能挂起计算机的指令序列,SvgaHwIoPortUchar 必须放弃缓冲指令。 否则,它应将它们(一次一个 UCHAR)输出到指定的映射 I/O 端口。
应 SvgaHwIoPortUchar 进行分页。
要求
要求 | 价值 |
---|---|
目标平台 | 桌面 |
标头 | video.h (include Video.h) |