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 、アプリケーションからの後続の命令を ポート にバッファーし、マシンをハングできないかどうかを確認する必要があります。 アプリケーションがコンピューターをハングする可能性のある一連の命令を発行する場合は、svgaHwIoPortUchar バッファー内の命令を破棄する必要があります。 それ以外の場合は、指定されたマップされた I/O ポートに一度に UCHAR を出力する必要があります。
SvgaHwIoPortUchar ページング可能にする必要があります。
必要条件
要件 | 価値 |
---|---|
ターゲット プラットフォーム の | デスクトップ |
ヘッダー | video.h (Video.h を含む) |
関連項目
SVGA 関数 を する
VideoPortGetDeviceBase の