次の方法で共有


DXGKCB_RESERVEGPUVIRTUALADDRESSRANGE コールバック関数 (d3dkmddi.h)

カーネル モードディスプレイ ミニポート ドライバーは、プロセスの作成時にグラフィックス処理装置 (GPU) 仮想アドレス範囲を予約する DXGKCB_RESERVEGPUVIRTUALADDRESSRANGE を呼び出すことができます。

構文

DXGKCB_RESERVEGPUVIRTUALADDRESSRANGE DxgkcbReservegpuvirtualaddressrange;

NTSTATUS DxgkcbReservegpuvirtualaddressrange(
  [in]     IN_CONST_HANDLE hAdapter,
  [in/out] INOUT_PDXGKARGCB_RESERVEGPUVIRTUALADDRESSRANGE pArgs
)
{...}

パラメーター

[in] hAdapter

ディスプレイ アダプターへのハンドル。

[in/out] pArgs

操作 記述するDXGKARGCB_RESERVEGPUVIRTUALADDRESSRANGE構造体。

戻り値

DXGKCB_RESERVEGPUVIRTUALADDRESSRANGEは 、成功した場合 はSTATUS_SUCCESS を返します。 それ以外の場合は、 Ntstatus.h で定義されているエラー コードのいずれかを返します。

注釈

GPU 仮想アドレス範囲の予約は、プロセスの作成時 ( DxgkDdiCreateProcess の呼び出し内) でのみ可能であり、それ以外の時点では無効です。

予約は、通常のプロセスと、システム デバイスとコンテキストが格納されているシステム プロセスの両方で可能です。

ルート ページ テーブル (ページ テーブル エントリ インデックス 0) の最初のエントリは、常にビデオ メモリ マネージャーによって無効として初期化され、ドライバーの予約はページ テーブル エントリ インデックス 1 から開始されます。 特定のページ テーブル エントリをビデオ メモリ マネージャーとカーネル モード ドライバーの間で共有できないため、ドライバーの予約は常に、リーフ ページ テーブルでカバーされる仮想アドレス空間の正確な倍数である必要があります。 ドライバーによって予約されたページ テーブル エントリは、ビデオ メモリ マネージャーによって 無効 として初期化され、ドライバーによって内部的に割り当てられたページ テーブルを参照するようにドライバーによって上書きされる可能性があります。 ビデオ メモリ マネージャーは、対応するページ テーブルが常駐になるたびに、予約ページ テーブルエントリを無効として更新します。

DXGKCB_XXX 関数は Dxgkrnl によって実装されます。 このコールバック関数を使用するには、DXGKARGCB_RESERVEGPUVIRTUALADDRESSRANGEの適切なメンバー設定し、DXGKRNL_INTERFACE経由で DxgkCbReserveGpuVirtualAddressRange を呼び出します。

要件

要件
サポートされている最小のクライアント Windows 10 (WDDM 2.0)
サポートされている最小のサーバー Windows Server 2016
対象プラットフォーム デスクトップ
Header d3dkmddi.h (Dispmprt.h を含む)
IRQL <= PASSIVE_LEVEL

こちらもご覧ください

DXGKARGCB_RESERVEGPUVIRTUALADDRESSRANGE

DxgkDdiCreateProcess

DXGKRNL_INTERFACE