PDRIVER_IO_PORT_ULONG Rückruffunktion (video.h)
SvgaHwIoPortUlong fängt einen E/A-Portbereich ab, an den eine MS-DOS-Vollbildanwendung auf einem x86-basierten Computer eine Sequenz von Daten im ULONG-Format 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 Typ des zulässigen Zugriffs 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 die letzte status des Vorgangs zurück.
Hinweise
Nur Miniporttreiber von VGA-kompatiblen SVGA-Adaptern verfügen über SvgaHwIoPortXxx-Funktionen . (Siehe SVGA-Funktionen.)
SvgaHwIoPortUlong fängt jeden Bereichszugriff ab, der von einer MS-DOS-Vollbildanwendung versucht wird, die anweisungen OUT DX, EAX und IN EAX, DX ausgibt.
Wenn der Miniporttreiber den Portbereich für den direkten Zugriff durch Aufruf von VideoSetTrappedEmulatorPorts aktiviert, wird die 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 weiteren Aufruf von VideoSetTrappedEmulatorPorts.
Wenn eine oder mehrere von der Anwendung ausgestellte x86-IN- oder OUT-Anweisungen den Zustand des VGA-kompatiblen Adaptersequenzerregisters, des sonstigen Ausgaberegisters oder eines adapterspezifischen Registers beeinflussen und dadurch das Gerät hängen lassen, darf der Miniporttreiber den Port nicht für den direkten Zugriff aktivieren, indem VideoPortSetTrappedEmulatorPorts aufgerufen wird.
SvgaHwIoPortUlong muss nachfolgende Anweisungen aus der Anwendung puffern und überprüfen, ob keine den Computer hängen kann. Wenn die Anwendung eine Sequenz von Anweisungen ausgibt, die den Computer hängen könnten, muss SvgaHwIoPortUlong die gepufferten Anweisungen verwerfen. Andernfalls sollten sie jeweils ein ULONG-Element an den angegebenen, zugeordneten E/A-Port ausgeben.
SvgaHwIoPortUlong sollte seitenfähig gemacht werden.
Anforderungen
Anforderung | Wert |
---|---|
Zielplattform | Desktop |
Kopfzeile | video.h (einschließen von Video.h) |