次の方法で共有


コールバック関数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 Version 1809
Header dispmprt.h
IRQL PASSIVE_LEVEL