Freigeben über


EMULATOR_ACCESS_ENTRY Struktur (dispmprt.h)

Die EMULATOR_ACCESS_ENTRY-Struktur gibt ein Element in der EmulatorAccessEntries Arrays an, das in der VIDEO_PORT_CONFIG_INFO Struktur durch Treiber von VGA-kompatiblen (SVGA)-Adaptern auf x86-basierten NT-basierten Betriebssystemplattformen eingerichtet wurde.

Syntax

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;

Angehörige

BasePort

Gibt die vom V86-Emulator zu verbindende busrelative physische Adresse des E/A-Ports an. Dieser Wert und der Portbereich müssen in einen Zugriffsbereich von E/A-Ports fallen, die bereits in der Registrierung durch VideoPortGetAccessRanges oder VideoPortVerifyAccessRanges.

NumConsecutivePorts

Gibt die Anzahl der aufeinander folgenden Ports an, die vom V86-Emulator eingebunden werden sollen, beginnend bei BasePort-. Dieser Wert wird durch die Breite der einzelnen angeschlossenen E/A-Anschlüsse bestimmt. Wenn beispielsweise Portadressen 0x3C0 und 0x3C1 als einzelner USHORT-adressierbarer Port eingebunden sind, sollte dieser Wert 1 sein.

AccessType

Gibt die Größe der daten an, die über den angegebenen E/A-Port übertragen werden, als einer von Uchar, Ulongoder Ushort.

AccessMode

Gibt an, wie auf den angegebenen E/A-Port als eine kombination (ORed) der folgenden Werte zugegriffen werden kann:

EMULATOR_READ_ACCESS
EMULATOR_WRITE_ACCESS

Der E/A-Portbereich muss in mindestens einem der vorherigen Modi zugänglich sein.

StringSupport

Gibt an, ob die vom Treiber bereitgestellte SvgaHwIoPortXxx--Funktion Zeichenfolgenzugriffe unterstützt, wenn viele Werte der angegebenen AccessType- durch einen E/A-Port aufeinander folgenden "pumpt" werden. Wenn dieses Element auf TRUEfestgelegt ist, muss der Routine- Member den Einstiegspunkt eines von einem Miniporttreiber bereitgestellten SvgaHwIoPortXxxString--Funktion angeben.

Routine

Zeiger auf den SvgaHwIoPortXxx des Miniporttreibers, der zugriffe auf den in dieser Struktur beschriebenen Port oder Ports verarbeitet.

Bemerkungen

VGA-kompatible Miniporttreiber von SVGA-Videohardware auf x86-basierten Computern müssen Emulatorzugriffsbereiche definieren, die ein VGA-kompatibler Miniporttreiber mit VideoPortSetTrappedEmulatorPorts direkt über Vollbild-MS-DOS Anwendungen für schnellere E/A einrichten kann. Ein solcher Treiber muss eine Reihe von SvgaHwIoPortXxx--Funktionen bereitstellen, um jede Sequenz von anwendungsausgestellten INs, INSB/INSDs, OUTs und/oder OUTSB/OUTSD/OUTSDfür jeden solchen E/A-Portbereich zu überprüfen.

Daten in jedem EMULATOR_ACCESS_ENTRY-Typ-Element werden verwendet, um zu bestimmen, welche E/A-Ports (Speicherspeicherorte, an denen Adapterregister zugänglich sind) in den Zugriffsbereichen des Miniporttreibers vom V86-Emulator auf x86-basierten Plattformen übernommen (eingebunden). Werte, die von Vollbild-MS-DOS Anwendungen an diese Speicherorte geschrieben werden, werden abgefangen und an die entsprechende SvgaHwIoPortXxx--Funktion des Miniporttreibers weitergeleitet, bevor sie in den Videoadapter geschrieben oder gelesen werden. Der Miniporttreiber kann die Anwendung jedoch ermöglichen, direkt auf bestimmte E/A-Portbereiche zuzugreifen, indem sie VideoPortSetTrappedEmulatorPorts aufrufen, um die Leistung zu verbessern.

Anforderungen

Anforderung Wert
Header- dispmprt.h (include Dispmprt.h)

Siehe auch

VIDEO_ACCESS_RANGE

VIDEO_PORT_CONFIG_INFO

VideoPortGetAccessRanges-

VideoPortSetTrappedEmulatorPorts

VideoPortVerifyAccessRanges