EMULATOR_ACCESS_ENTRY 结构 (dispmprt.h)

EMULATOR_ACCESS_ENTRY 结构指定 EmulatorAccessEntries 数组中的元素,该元素由基于 x86 的基于 NT 的操作系统平台上的 VGA 兼容 (SVGA) 适配器的驱动程序在 VIDEO_PORT_CONFIG_INFO 结构中设置。

语法

typedef struct _EMULATOR_ACCESS_ENTRY {
  ULONG                     BasePort;
  ULONG                     NumConsecutivePorts;
  EMULATOR_PORT_ACCESS_TYPE AccessType;
  UCHAR                     AccessMode;
  UCHAR                     StringSupport;
  PVOID                     Routine;
} EMULATOR_ACCESS_ENTRY, *PEMULATOR_ACCESS_ENTRY;

成员

BasePort

指定要由 V86 仿真器挂钩的一个或多个 I/O 端口的总线相对物理地址。 此值和端口范围必须属于 VideoPortGetAccessRangesVideoPortVerifyAccessRanges 已在注册表中声明的 I/O 端口的访问范围。

NumConsecutivePorts

BasePort 开始,指定要由 V86 模拟器挂钩的连续端口数。 此值由每个挂钩 I/O 端口的宽度决定。 例如,如果端口地址0x3C0,0x3C1作为单个 USHORT 可寻址端口进行挂钩,则此值应为 1。

AccessType

指定通过给定 I/O 端口作为 UcharUlongUshort 之一传输的数据的大小。

AccessMode

指定如何将给定 I/O 端口作为以下值的一个或组合访问 (ORed) :

EMULATOR_READ_ACCESS
EMULATOR_WRITE_ACCESS

必须在上述至少一种模式下访问 I/O 端口范围。

StringSupport

指示驱动程序提供的 SvgaHwIoPortXxx 函数在给定 AccessType 的许多值连续通过 I/O 端口“抽水”的情况下是否支持字符串访问。 如果此成员设置为 TRUE则例程 成员必须指定微型端口驱动程序提供的 SvgaHwIoPortXxxString 函数的入口点。

Routine

指向微型端口驱动程序的 SvgaHwIoPortXxx 的指针,该驱动程序处理对此结构中所述的一个或多个端口的访问。

注解

基于 x86 的计算机中 SVGA 视频硬件的 VGA 兼容微型端口驱动程序必须定义仿真器访问范围,VGA 兼容的微型端口驱动程序可以使用 VideoPortSetTrappedEmulatorPorts 进行设置,以便直接从全屏 MS-DOS 应用程序访问这些范围,从而加快 I/O 速度。 此类驱动程序必须提供一组 SvgaHwIoPortXxx 函数,以验证应用程序颁发的 ININSB/INSW/INSDs、 OUT和/或 OUTSB/OUTSW/OUTSD到每个此类 I/O 端口范围的任意序列。

每个 EMULATOR_ACCESS_ENTRY 类型元素中的数据用于确定哪些 I/O 端口 (内存位置可以访问适配器寄存器的位置,) 微型端口驱动程序访问范围中的哪些 I/O 端口 (已由基于 x86 的平台上的 V86 仿真器) 挂钩。 通过全屏 MS-DOS 应用程序写入这些位置的值将被捕获并转发到微型端口驱动程序的相应 SvgaHwIoPortXxx 函数进行验证,然后再将其写入视频适配器或从视频适配器读取这些值。 但是,微型端口驱动程序可以通过调用 VideoPortSetTrappedEmulatorPorts 来提高性能,使应用程序能够直接访问特定的 I/O 端口范围。

要求

要求
Header dispmprt.h (包括 Dispmprt.h)

另请参阅

VIDEO_ACCESS_RANGE

VIDEO_PORT_CONFIG_INFO

VideoPortGetAccessRanges

VideoPortSetTrappedEmulatorPorts

VideoPortVerifyAccessRanges