PDRIVER_IO_PORT_ULONG回呼函式 (video.h)
SvgaHwIoPortUlong 會擷取 x86 型電腦中全螢幕 MS-DOS 應用程式傳送一連串 ULONG 大小的數據。
PDRIVER_IO_PORT_ULONG PdriverIoPortUlong;
VP_STATUS PdriverIoPortUlong(
ULONG_PTR Context,
ULONG Port,
UCHAR AccessMode,
PULONG Data
)
{...}
Context
指定 EmulatorAccessEntriesContext 成員中設定 VIDEO_PORT_CONFIG_INFO的迷你埠驅動程序決定內容值。
Port
指定要截獲的對應 I/O 埠。
AccessMode
指定允許的存取類型,它可以是下列值的其中一個或組合 (ORed):
- EMULATOR_READ_ACCESS
- EMULATOR_WRITE_ACCESS
Data
要傳送之 ULONG 數據的指標。
SvgaHwIoPortUlong 會傳回作業的最終狀態。
只有 VGA 相容 SVGA 適配卡的迷你埠驅動程式 SvgaHwIoPortXxx 函式。 (請參閱 SVGA 函式。
SvgaHwIoPortUlong 會攔截全螢幕 MS-DOS 應用程式發出或兩個指令嘗試的任何範圍存取,OUT DX、EAX 和 EAX、DX。
如果迷你埠驅動程式藉由呼叫 VideoSetTrappedEmulatorPorts來啟用 埠 範圍,則不會呼叫其 SvgaHwIoPortUlong 函式。 如此一來,除非迷你埠驅動程式以另一個呼叫停用範圍,否則這類應用程式將可直接存取 I/O 埠範圍,VideoSetTrappedEmulatorPorts。
如果一或多個應用程式發出的 x86 IN 或 OUT 指令可能會影響 VGA 相容的配接器排序器緩存器、其他輸出緩存器或任何適配卡特定緩存器的狀態,因而導致計算機停止回應,迷你埠驅動程式必須 不 呼叫 VideoPortSetTrappedEmulatorPorts啟用埠以進行直接存取。
SvgaHwIoPortUlong 必須緩衝來自應用程式的後續指示,並檢查沒有人可以停止機器。 如果應用程式發出任何可能停止回應計算機的指令順序,SvgaHwIoPortUlong 必須捨棄緩衝的指令。 否則,它應該一次將ULONG輸出至指定的對應I/O埠。
SvgaHwIoPortUlong 應設為可分頁。
要求 | 價值 |
---|---|
目標平臺 | 桌面 |
標頭 | video.h (include Video.h) |