次の方法で共有


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

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

構文

PDRIVER_IO_PORT_UCHAR PdriverIoPortUchar;

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

パラメーター

Context

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

Port

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

AccessMode

トラップするアクセスの種類を指定します。1 つまたは次の値の組み合わせ (ORed) を指定できます。

EMULATOR_READ_ACCESS
EMULATOR_WRITE_ACCESS

Data

転送するバイトへのポインター。

戻り値

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

注釈

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

SvgaHwIoPortUchar はOUT DX、AL、IN AL、DX の命令のいずれかまたは両方を発行する全画面 MS-DOS アプリケーションによって試行されたすべてのバイト アクセスをインターセプトします。

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

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

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

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

要件

要件
対象プラットフォーム デスクトップ
Header video.h (Video.h を含む)

こちらもご覧ください

EMULATOR_ACCESS_ENTRY

SVGA 関数

SvgaHwIoPortUcharString

VIDEO_ACCESS_RANGE

VIDEO_PORT_CONFIG_INFO

VideoPortGetDeviceBase

VideoPortSetTrappedEmulatorPorts