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;
EMULATOR_ACCESS_ENTRY specifies an element in the EmulatorAccessEntries array set up in the VIDEO_PORT_CONFIG_INFO structure by drivers of VGA-compatible (SVGA) adapters on x86-based Windows NT® platforms.
Uchar
Ushort
Ulong
EMULATOR_READ_ACCESS
EMULATOR_WRITE_ACCESS
The I/O port range must be accessible in at least one of the preceding modes.
VGA-compatible miniport drivers of SVGA video hardware in x86-based machines must define emulator access ranges, which a VGA-compatible miniport driver can set up with VideoPortSetTrappedEmulatorPorts to be accessed directly from full-screen MS-DOS™ applications for faster I/O. Such a driver must supply a set of SvgaHwIoPortXxx functions to validate any sequence of application-issued INs, INSB/INSW/INSDs, OUTs, and/or OUTSB/OUTSW/OUTSDs to each such I/O port range.
Data in each EMULATOR_ACCESS_ENTRY-type element is used to determine which I/O ports (memory locations at which adapter registers are accessible) in the miniport’s access ranges have been taken over (hooked out) by the V86 emulator on x86-based platforms. Values written to these locations by full-screen MS-DOS applications are trapped and forwarded to the miniport driver’s corresponding SvgaHwIoPortXxx function for validation before they are written to or read from the video adapter. However, the miniport can enable direct access by the application to particular I/O port ranges by calling VideoPortSetTrappedEmulatorPorts for performance reasons.
SvgaHwIoPortXxx, VIDEO_ACCESS_RANGE, VIDEO_PORT_CONFIG_INFO, VideoPortGetAccessRanges, VideoPortSetTrappedEmulatorPorts, VideoPortVerifyAccessRanges