EMULATOR_ACCESS_ENTRY-Struktur (dispmprt.h)
Die EMULATOR_ACCESS_ENTRY-Struktur gibt ein Element im EmulatorAccessEntries-Array an, das in der VIDEO_PORT_CONFIG_INFO-Struktur von Treibern vgakompatibler (SVGA)-Adapter auf x86-basierten NT-basierten Betriebssystemplattformen eingerichtet wird.
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;
Member
BasePort
Gibt die busrelative physische Adresse des E/A-Ports an, der vom V86-Emulator eingebunden werden soll. Dieser Wert und der Portbereich müssen innerhalb eines Zugriffsbereichs von E/A-Ports liegen, die bereits in der Registrierung von VideoPortGetAccessRanges oder VideoPortVerifyAccessRanges beansprucht werden.
NumConsecutivePorts
Gibt die Anzahl aufeinanderfolgender Ports an, die vom V86-Emulator ab BasePort eingebunden werden sollen. Dieser Wert wird durch die Breite der einzelnen eingebundenen E/A-Ports 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 als einer von Uchar, Ulong oder Ushort übertragen werden.
AccessMode
Gibt an, wie auf den angegebenen E/A-Port als eine oder eine Kombination (ORed) der folgenden Werte zugegriffen werden kann:
- EMULATOR_READ_ACCESS
- EMULATOR_WRITE_ACCESS
Auf den E/A-Portbereich muss in mindestens einem der vorherigen Modi zugegriffen werden können.
StringSupport
Gibt an, ob die vom Treiber bereitgestellte SvgaHwIoPortXxx-Funktion Zeichenfolgenzugriffe in Fällen unterstützt, in denen viele Werte des angegebenen AccessType nacheinander über einen E/A-Port gepumpt werden. Wenn dieser Member auf TRUE festgelegt ist, muss das Routine-Element den Einstiegspunkt einer vom Miniporttreiber bereitgestellten SvgaHwIoPortXxxString-Funktion angeben.
Routine
Zeiger auf den SvgaHwIoPortXxx des Miniporttreibers, der Zugriffe auf den in dieser Struktur beschriebenen Port oder Ports verarbeitet.
Hinweise
VGA-kompatible Miniporttreiber von SVGA-Videohardware in x86-basierten Computern müssen Emulatorzugriffsbereiche definieren, die ein VGA-kompatibler Miniporttreiber mit VideoPortSetTrappedEmulatorPorts einrichten kann, um direkt über VOLLbild-MS-DOS-Anwendungen für schnellere E/A-Anwendungen zugegriffen zu werden. Ein solcher Treiber muss eine Reihe von SvgaHwIoPortXxx-Funktionen bereitstellen, um jede Sequenz von von der Anwendung ausgestellten INs, INSB/INSW/INSDs, OUTs und/oder OUTSB/OUTSW/OUTSDs für jeden E/A-Portbereich zu überprüfen.
Daten in jedem EMULATOR_ACCESS_ENTRY-Typelements 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) wurden. Werte, die von MS-DOS-Vollbildanwendungen an diese Speicherorte geschrieben werden, werden erfasst und zur Überprüfung an die entsprechende SvgaHwIoPortXxx-Funktion des Miniporttreibers weitergeleitet, bevor sie in die Grafikkarte geschrieben oder aus dieser gelesen werden. Der Miniporttreiber kann es der Anwendung jedoch ermöglichen, direkt auf bestimmte E/A-Portbereiche zuzugreifen, indem VideoPortSetTrappedEmulatorPorts aufgerufen wird, um die Leistung zu verbessern.
Anforderungen
Anforderung | Wert |
---|---|
Header | dispmprt.h (include Dispmprt.h) |