Freigeben über


PDRIVER_IO_PORT_UCHAR Rückruffunktion (video.h)

SvgaHwIoPortUchar erfasst einen E/A-Port, an den eine Vollbild-MS-DOS Anwendung auf einem x86-basierten Computer UCHAR-Größen sendet.

Syntax

PDRIVER_IO_PORT_UCHAR PdriverIoPortUchar;

VP_STATUS PdriverIoPortUchar(
  ULONG_PTR Context,
  ULONG Port,
  UCHAR AccessMode,
  PUCHAR Data
)
{...}

Parameter

Context

Gibt den vom Miniport treiber definierten Kontextwert an, der im EmulatorAccessEntriesContext Member von VIDEO_PORT_CONFIG_INFOfestgelegt wurde.

Port

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

AccessMode

Gibt den Typ des abzufangenden Zugriffs an, bei dem es sich um eine oder eine Kombination (ORed) der folgenden Werte handeln kann:

EMULATOR_READ_ACCESS
EMULATOR_WRITE_ACCESS

Data

Zeiger auf das Byte, das übertragen werden soll.

Rückgabewert

SvgaHwIoPortUchar den endgültigen Status des Vorgangs zurück.

Bemerkungen

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

SvgaHwIoPortUchar jeden Bytezugriff abfangen, der von einer Vollbild-MS-DOS Anwendung versucht wird, die entweder oder beide Anweisungen OUT DX, AL und IN AL, DXausgibt.

Wenn der Miniporttreiber den Port für den direkten Zugriff aktiviert, indem VideoPortSetTrappedEmulatorPortsaufgerufen wird, wird dessen SvgaHwIoPortUchar Funktion nicht aufgerufen. Eine solche Anwendung hat dann direkten Zugriff auf den Port, es sei denn, der Miniporttreiber deaktiviert den Port mit einem anderen Aufruf von VideoPortSetTrappedEmulatorPorts.

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.

SvgaHwIoPortUchar müssen nachfolgende Anweisungen von der Anwendung bis zum Port puffern und überprüfen, ob keines den Computer hängen kann. Wenn die Anwendung eine Abfolge von Anweisungen ausgibt, die den Computer möglicherweise hängen, müssen SvgaHwIoPortUchar die gepufferten Anweisungen verwerfen. Andernfalls sollte eine UCHAR gleichzeitig an den angegebenen, zugeordneten E/A-Port ausgegeben werden.

SvgaHwIoPortUchar sollte seitenfähig gemacht werden.

Anforderungen

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

Siehe auch

EMULATOR_ACCESS_ENTRY

SVGA-Funktionen

SvgaHwIoPortUcharString

VIDEO_ACCESS_RANGE

VIDEO_PORT_CONFIG_INFO

VideoPortGetDeviceBase-

VideoPortSetTrappedEmulatorPorts