次の方法で共有


DXGKDDI_GETMMIORANGES コールバック関数 (dispmprt.h)

仮想デバイス内の 1 つの MMIO (メモリ マップされた入力出力) BAR (ベース アドレス レジスタ) のメモリ範囲を取得します。

構文

DXGKDDI_GETMMIORANGES DxgkddiGetmmioranges;

NTSTATUS DxgkddiGetmmioranges(
  HANDLE Context,
  PDXGKARG_GETMMIORANGES pArgs
)
{...}

パラメーター

Context

デバイス コンテキストへのハンドル。

pArgs

DXGKARG_GETMMIORANGES 構造体へのポインター。

戻り値

収益:

  • STATUS_SUCCESS IHV システムでエラーが発生しませんでした。
  • STATUS_INVALID_DEVICE_REQUEST 仮想デバイスでエラーが発生し、強制的に停止する必要があります。 ここでエラーが発生すると、仮想デバイスの障害が発生します。
  • BUFFER_TO_SMALL、より大きなバッファーで再度呼び出される可能性があります。

備考

このコールバック関数は、インターセプトとマッピングを配置する必要がある特定の範囲を取得します。 これは、VF (仮想関数) BARS (ベース アドレス レジスタ) を物理バーとは異なるサイズにし、物理バーから任意の仮想バーへのページの任意の順序をマップ/エミュレートできるようにする一般的な SR-IOV (単一ルート入力/出力仮想化) ソリューションよりも、BAR のより柔軟な分散/収集マッピングです。 この関数には、仮想バー内のすべてのページのマッピングが含まれている必要があります。 そうでない場合、デバイスの作成に失敗します。

必要条件

要件 価値
サポートされる最小クライアント Windows 10 バージョン 1809
ヘッダー dispmprt.h
IRQL PASSIVE_LEVEL