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

VIDEO_PORT_CONFIG_INFO

VideoPortVerifyAccessRanges

VideoPortSetTrappedEmulatorPorts

VIDEO_ACCESS_RANGE

VideoPortGetAccessRanges