次の方法で共有


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

DxgkDdiOpenNativeFence は、ネイティブ GPU フェンス オブジェクトを開くために OS によって呼び出されます。

構文

DXGKDDI_OPENNATIVEFENCE DxgkddiOpennativefence;

NTSTATUS DxgkddiOpennativefence(
  IN_CONST_HANDLE hAdapter,
  INOUT_PDXGKARG_OPENNATIVEFENCE pOpenNativeFence
)
{...}

パラメーター

hAdapter

[in]ディスプレイ アダプターに関連付けられているコンテキスト ブロックへのハンドル。 ディスプレイ ミニポート ドライバーは、DXGKDDI_ADD_DEVICE 関数の出力パラメーター ミニポートDeviceContext で Dxgkrnl するこのハンドルを提供しました。

pOpenNativeFence

[入力/出力]開くネイティブ GPU フェンスを記述する DXGKARG_OPENNATIVEFENCE 構造体へのポインター。

戻り値

DxgkDdiOpenNativeFence 、KMD がネイティブ GPU フェンス オブジェクトを正常に開くことができた場合、STATUS_SUCCESSを返します。 それ以外の場合は、適切な NTSTATUS エラー コードが返されます。

備考

DxgkDdiOpenNativeFence の前には、常に DxgkDdiCreateNativeFenceの呼び出しが付けられます。

2 つ目のプロセスで D3DKMT_OPENNATIVEFENCEFROMNTHANDLEを使用して共有ネイティブ フェンス オブジェクトを開くと、Dxgkrnl 次の処理が実行されます。

  • hGlobalNativeFence を見つけます。
  • 2 番目のプロセスのアドレス空間でその既存のオブジェクトの新しい CPU 仮想アドレス (VA) と GPU VA マッピングを作成します。

Dxgkrnl は、新しい hLocalNativeFence ハンドルと共に DxgkDdiOpenNativeFence を呼び出すことによって、このペイロードを KMD に渡します。

ネイティブ GPU フェンスの詳細については、「ネイティブ GPU フェンス オブジェクト 」を参照してください。

必要条件

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

関連項目

DXGKARG_OPENNATIVEFENCE

dxgkDdiCloseNativeFence

DxgkDdiCreateNativeFenceする