Freigeben über


PDRIVER_IO_PORT_ULONG Rückruffunktion (video.h)

SvgaHwIoPortUlong erfasst einen E/A-Portbereich, an den eine Vollbild-MS-DOS Anwendung auf einem x86-basierten Computer eine Abfolge von ULONG-Größendaten sendet.

Syntax

PDRIVER_IO_PORT_ULONG PdriverIoPortUlong;

VP_STATUS PdriverIoPortUlong(
  ULONG_PTR Context,
  ULONG Port,
  UCHAR AccessMode,
  PULONG Data
)
{...}

Parameter

Context

Gibt den vom Miniporttreiber ermittelten Kontextwert an, der im EmulatorAccessEntriesContext Member von VIDEO_PORT_CONFIG_INFO festgelegt wurde.

Port

Gibt den zugeordneten E/A-Port an, der abgefangen werden soll.

AccessMode

Gibt den Zulässigen Zugriffstyp an, der eine oder eine Kombination (ORed) der folgenden Werte sein kann:

EMULATOR_READ_ACCESS
EMULATOR_WRITE_ACCESS

Data

Zeiger auf die zu übertragenden ULONG-Daten.

Rückgabewert

SvgaHwIoPortUlong gibt den endgültigen Status des Vorgangs zurück.

Bemerkungen

Nur Miniporttreiber von VGA-kompatiblen SVGA-Adaptern haben SvgaHwIoPortXxx Funktionen. (Siehe SVGA Functions.)

SvgaHwIoPortUlong fängt jeden Bereichszugriff ab, der von einer Vollbild-MS-DOS Anwendung versucht wird, die entweder oder beide Anweisungen OUT DX, EAX und IN EAX, DXausgibt.

Wenn der Miniporttreiber den Port Bereich für den direkten Zugriff aktiviert, indem VideoSetTrappedEmulatorPortsaufgerufen wird, wird dessen SvgaHwIoPortUlong Funktion nicht aufgerufen. Eine solche Anwendung hat dann direkten Zugriff auf den E/A-Portbereich, es sei denn, der Miniporttreiber deaktiviert den Bereich mit einem anderen Aufruf von VideoSetTrappedEmulatorPorts.

Wenn eine oder mehrere anwendungsbezogene x86-IN oder OUT- anweisungen den Zustand des VGA-kompatiblen Adaptersequenzerregisters, sonstiges Ausgaberegister oder adapterspezifisches Register beeinträchtigen und dadurch dazu führen, dass der Computer hängen bleibt, muss der Miniporttreiber den Port für den direkten Zugriff nicht aktivieren, indem VideoPortSetTrappedEmulatorPortsaufgerufen wird.

SvgaHwIoPortUlong muss nachfolgende Anweisungen aus der Anwendung puffern und überprüfen, ob keine Maschine hängen kann. Wenn die Anwendung eine Reihe von Anweisungen ausgibt, die den Computer möglicherweise hängen, müssen SvgaHwIoPortUlong die gepufferten Anweisungen verwerfen. Andernfalls sollte sie, jeweils ein ULONG, an den angegebenen, zugeordneten E/A-Port ausgegeben werden.

SvgaHwIoPortUlong sollte seitenfähig gemacht werden.

Anforderungen

Anforderung Wert
Zielplattform- Desktop
Header- video.h (video.h einschließen)

Siehe auch

EMULATOR_ACCESS_ENTRY

SVGA-Funktionen

SvgaHwIoPortUlongString

VIDEO_ACCESS_RANGE

VIDEO_PORT_CONFIG_INFO

VideoPortGetDeviceBase-

VideoPortSetTrappedEmulatorPorts