EMULATOR_ACCESS_ENTRY-Struktur (miniport.h)
Die EMULATOR_ACCESS_ENTRY-Struktur gibt ein Element im EmulatorAccessEntries-Array 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;
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 wurden.
NumConsecutivePorts
Gibt die Anzahl der aufeinanderfolgenden 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 einen 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
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 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 der Routine-Member den Einstiegspunkt einer vom Miniporttreiber bereitgestellten SvgaHwIoPortXxxString-Funktion angeben.
Routine
Zeiger auf den SvgaHwIoPortXxx des Miniporttreibers, der Zugriffe auf den oder die in dieser Struktur beschriebenen Ports verarbeitet.
Hinweise
VGA-kompatible Miniporttreiber von SVGA-Videohardware auf x86-basierten Computern müssen Emulatorzugriffsbereiche definieren, die ein VGA-kompatibler Miniporttreiber mit VideoPortSetTrappedEmulatorPorts einrichten kann, um direkt über MS-DOS-Vollbildanwendungen für schnellere E/A-Anwendungen zu zugreifen. Ein solcher Treiber muss eine Reihe von SvgaHwIoPortXxx-Funktionen bereitstellen, um jede Sequenz von anwendungsseitig ausgestellten INs, INSB/INSW/INSDs, OUTs und/oder OUTSB/OUTSW/OUTSDs für jeden solchen 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 wurden, werden gefangen 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 | miniport.h (einschließlich Miniport.h) |
Weitere Informationen
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für