EMULATOR_ACCESS_ENTRY Struktur (miniport.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 das Routine- Mitglied 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- | miniport.h (include Miniport.h) |