PDRIVER_IO_PORT_USHORT_STRINGコールバック関数 (video.h)
SvgaHwIoPortUshortString は、x86 ベースのコンピューターの全画面表示 MS-DOS アプリケーションが USHORT サイズのデータのシーケンスを送信する I/O ポート範囲をトラップします。
構文
PDRIVER_IO_PORT_USHORT_STRING PdriverIoPortUshortString;
VP_STATUS PdriverIoPortUshortString(
ULONG_PTR Context,
ULONG Port,
UCHAR AccessMode,
PUSHORT Data,
ULONG DataLength
)
{...}
パラメーター
Context
VIDEO_PORT_CONFIG_INFOの EmulatorAccessEntriesContext で設定されたミニポート ドライバーによって決定されたコンテキスト値 指定します。
Port
トラップするマップされた I/O ポートを指定します。
AccessMode
許可されるアクセスの種類を指定します。1 つまたは次の値の組み合わせ (ORed) を指定できます。
- EMULATOR_READ_ACCESS
- EMULATOR_WRITE_ACCESS
Data
転送される USHORT データ値の文字列へのポインター。 この文字列は、すべての値がフックされるまで、一度に 1 つの値にアクセスされます。
DataLength
文字列内の USHORT 値の数を指定します。
戻り値
SvgaHwIoPortUshortString は、操作の最終的な状態を返します。
備考
VGA と互換性のある SVGA アダプターのミニポート ドライバーにのみ、SvgaHwIoPortXxx 関数 があります。 (SVGA 関数 を参照してください)。
SvgaHwIoPortUshortString は、REP OUTSW DX、ESI 、REP INSW EDI、DX 命令のいずれかまたは両方を発行する全画面表示 MS-DOS アプリケーションによって試行された範囲アクセスをインターセプトします。
ミニポート ドライバーが VideoSetTrappedEmulatorPorts 呼び出すことによって直接アクセスの ポート 範囲を有効にする場合、その SvgaHwIoPortUshortString 関数は呼び出されません。 ミニポート ドライバーが VideoSetTrappedEmulatorPorts への別の呼び出しで ポート 範囲を無効にしない限り、このようなアプリケーションは I/O ポート範囲に直接アクセスします。
1 つ以上のアプリケーションによって発行された x86 INSW または OUTSW 命令が VGA 互換アダプター・シーケンサー・レジスタの状態に影響する可能性がある場合、 その他の出力レジスタ、または任意のアダプター固有のレジスタと、これにより、コンピューターがハングする、ミニポート ドライバー VideoPortSetTrappedEmulatorPortsを呼び出すことによって、直接アクセスのポートを有効に しない必要があります。
SvgaHwIoPortUshortString 、アプリケーションからの後続の命令をバッファーし、マシンをハングできないかどうかを確認する必要があります。 アプリケーションがコンピューターをハングする可能性のある一連の命令を発行する場合は、svgaHwIoPortUshortString バッファー内の命令を破棄する必要があります。 それ以外の場合は、指定されたマップされた I/O ポートに一度に USHORT を出力する必要があります。
SvgaHwIoPortUshortString ページング可能にする必要があります。
必要条件
要件 | 価値 |
---|---|
ターゲット プラットフォーム の | デスクトップ |
ヘッダー | video.h (Video.h を含む) |
関連項目
SVGA 関数 を する
VideoPortGetDeviceBase の