PDRIVER_IO_PORT_ULONG_STRING回调函数 (video.h)
SvgaHwIoPortUlongString 捕获 I/O 端口范围,基于 x86 的计算机中的全屏 MS-DOS 应用程序将一系列 ULONG 大小的数据发送到该范围。
语法
PDRIVER_IO_PORT_ULONG_STRING PdriverIoPortUlongString;
VP_STATUS PdriverIoPortUlongString(
ULONG_PTR Context,
ULONG Port,
UCHAR AccessMode,
PULONG Data,
ULONG DataLength
)
{...}
参数
Context
指定在 VIDEO_PORT_CONFIG_INFO 的 EmulatorAccessEntriesContext 成员中设置的微型端口驱动程序确定的上下文值。
Port
指定要捕获的映射 I/O 端口。
AccessMode
指定允许的访问类型,可以是以下值的 ORed) (一种或组合:
- EMULATOR_READ_ACCESS
- EMULATOR_WRITE_ACCESS
Data
指向要传输的 ULONG 数据字符串的指针。 字符串一次挂出一个值,直到全部使用。
DataLength
指定字符串中 ULONG 值的数目。
返回值
SvgaHwIoPortUlongString 返回操作的最终状态。
注解
只有 VGA 兼容 SVGA 适配器的微型端口驱动程序具有 SvgaHwIoPortXxx 函数。 (请参阅 SVGA Functions.)
SvgaHwIoPortUlongString 截获全屏 MS-DOS 应用程序发出或同时发出 REP OUTSD DX、ESI 和 REP INSDEDI、 DX 指令的任何范围访问。
如果微型端口驱动程序通过调用 VideoSetTrappedEmulatorPorts 启用直接访问的端口范围,则不会调用其 SvgaHwIoPortUlongString 函数。 然后,此类应用程序将直接访问 I/O 端口范围,除非微型端口驱动程序通过另一次调用 VideoSetTrappedEmulatorPorts 禁用端口范围。
如果一个或多个应用程序发出的 x86 INSD 或 OUTSD 指令可能会影响 VGA 兼容的适配器排序程序寄存器、杂项输出寄存器或任何特定于适配器的寄存器的状态,从而导致计算机挂起,微型端口驱动程序 不得 通过调用 VideoPortSetTrappedEmulatorPorts 来启用直接访问的端口。
SvgaHwIoPortUlongString 必须缓冲来自应用程序的后续指令,并检查没有人可以挂起计算机。 如果应用程序发出可能挂起计算机的任何指令序列, SvgaHwIoPortUlongString 必须放弃缓冲的指令。 否则,它应将它们(一次一个 ULONG)输出到指定的映射 I/O 端口。
SvgaHwIoPortUlongString 应可分页。
要求
要求 | 值 |
---|---|
目标平台 | 桌面 |
标头 | video.h (包括 Video.h) |