PDRIVER_IO_PORT_ULONG_STRING Rückruffunktion (video.h)
SvgaHwIoPortUlongString 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_STRING PdriverIoPortUlongString;
VP_STATUS PdriverIoPortUlongString(
ULONG_PTR Context,
ULONG Port,
UCHAR AccessMode,
PULONG Data,
ULONG DataLength
)
{...}
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 übertragende ULONG-Datenzeichenfolge. Die Zeichenfolge wird jeweils um einen Wert eingehakt, bis alles verwendet wird.
DataLength
Gibt die Anzahl der ULONG-Werte in der Zeichenfolge an.
Rückgabewert
SvgaHwIoPortUlongString gibt den endgültigen Status des Vorgangs zurück.
Bemerkungen
Nur Miniporttreiber von VGA-kompatiblen SVGA-Adaptern haben SvgaHwIoPortXxx Funktionen. (Siehe SVGA Functions.)
SvgaHwIoPortUlongString jeden Bereichszugriff abfangen, der von einer Vollbild-MS-DOS Anwendung versucht wird, die entweder oder beide Anweisungen REP OUTSD DX, ESI und REP INSD EDI, DXausgibt.
Wenn der Miniporttreiber den Port Bereich für den direkten Zugriff aktiviert, indem VideoSetTrappedEmulatorPortsaufgerufen wird, wird dessen SvgaHwIoPortUlongString Funktion nicht aufgerufen. Eine solche Anwendung hat dann direkten Zugriff auf den E/A-Portbereich, es sei denn, der Miniporttreiber deaktiviert den Port Bereich mit einem anderen Aufruf von VideoSetTrappedEmulatorPorts.
Wenn eine oder mehrere anwendungsbezogene x86-INSD- oder OUTSD- Anweisungen sich auf den Zustand des VGA-kompatiblen Adaptersequenzersregisters, verschiedene Ausgaberegister oder ein adapterspezifisches Register auswirken 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.
SvgaHwIoPortUlongString muss nachfolgende Anweisungen aus der Anwendung puffern und überprüfen, ob keine Maschine hängen kann. Wenn die Anwendung eine Abfolge von Anweisungen ausgibt, die den Computer möglicherweise hängen können, muss SvgaHwIoPortUlongString die gepufferten Anweisungen verwerfen. Andernfalls sollte sie, jeweils ein ULONG, an den angegebenen, zugeordneten E/A-Port ausgegeben werden.
SvgaHwIoPortUlongString sollte seitenfähig gemacht werden.
Anforderungen
Anforderung | Wert |
---|---|
Zielplattform- | Desktop |
Header- | video.h (video.h einschließen) |