次の方法で共有


PDRIVER_IO_PORT_USHORTコールバック関数 (video.h)

SvgaHwIoPortUshort は、x86 ベースのコンピューターの全画面表示 MS-DOS アプリケーションが USHORT サイズのデータのシーケンスを送信する I/O ポート範囲をトラップします。

構文

PDRIVER_IO_PORT_USHORT PdriverIoPortUshort;

VP_STATUS PdriverIoPortUshort(
  ULONG_PTR Context,
  ULONG Port,
  UCHAR AccessMode,
  PUSHORT Data
)
{...}

パラメーター

Context

VIDEO_PORT_CONFIG_INFOの EmulatorAccessEntriesContext メンバーで設定されたミニポート ドライバーによって決定されたコンテキスト値を指定します。

Port

トラップするマップされた I/O ポートを指定します。

AccessMode

許可されるアクセスの種類を指定します。1 つまたは次の値の組み合わせ (ORed) を指定できます。

EMULATOR_READ_ACCESS
EMULATOR_WRITE_ACCESS

Data

転送する USHORT データへのポインター。

戻り値

SvgaHwIoPortUshort 、操作の最終的な状態を返します。

備考

VGA と互換性のある SVGA アダプターのミニポート ドライバーにのみ、SvgaHwIoPortXxx 関数 があります。 (SVGA 関数 を参照してください)。

SvgaHwIoPortUshort は、OUT DX、AX 、および IN AX、DX 命令の一方または両方を発行する全画面表示の MS-DOS アプリケーションによって試行されたすべての範囲アクセスをインターセプトします。

ミニポート ドライバーが VideoSetTrappedEmulatorPorts 呼び出すことによって直接アクセスの ポート 範囲を有効にする場合、その SvgaHwIoPortUshort 関数は呼び出されません。 ミニポート ドライバーが VideoSetTrappedEmulatorPorts への別の呼び出しで ポート 範囲を無効にしない限り、このようなアプリケーションは I/O ポート範囲に直接アクセスします。

1 つ以上のアプリケーションによって発行された x86 IN または OUT 命令が、VGA 互換のアダプター シーケンサー レジスタ、その他の出力レジスタ、またはアダプター固有のレジスタの状態に影響を与える可能性があるため、コンピューターがハングする場合、ミニポート ドライバー VideoPortSetTrappedEmulatorPorts を呼び出して直接アクセスポートを有効に することはできません。

SvgaHwIoPortUshort 、アプリケーションからの後続の命令をバッファーし、マシンをハングできないかどうかを確認する必要があります。 アプリケーションがコンピューターをハングする可能性のある一連の命令を発行する場合は、svgaHwIoPortUshort バッファー内の命令を破棄する必要があります。 それ以外の場合は、指定されたマップされた I/O ポートに一度に USHORT を出力する必要があります。

SvgaHwIoPortUshort をページング可能にする必要があります。

必要条件

要件 価値
ターゲット プラットフォーム デスクトップ
ヘッダー video.h (Video.h を含む)

関連項目

EMULATOR_ACCESS_ENTRY

SVGA 関数 する

SvgaHwIoPortUshortString

VIDEO_ACCESS_RANGE

VIDEO_PORT_CONFIG_INFO

VideoPortGetDeviceBase

VideoPortSetTrappedEmulatorPorts