次の方法で共有


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

DXGKDDI_QUERYDEPENDENTENGINEGROUP は、ディスプレイ ポート ドライバーの GPU スケジューラによって呼び出され、物理ディスプレイ アダプター内のノードの依存関係を照会します。

構文

DXGKDDI_QUERYDEPENDENTENGINEGROUP DxgkddiQuerydependentenginegroup;

NTSTATUS DxgkddiQuerydependentenginegroup(
  IN_CONST_HANDLE hAdapter,
  INOUT_DXGKARG_QUERYDEPENDENTENGINEGROUP pQueryDependentEngineGroup
)
{...}

パラメーター

hAdapter

ディスプレイ アダプターに関連付けられているコンテキスト ブロックへのハンドル。 ディスプレイ ミニポート ドライバーは、以前、DxgkDdiAddDevice 関数の MiniportDeviceContext 出力パラメーターで DirectX グラフィックス カーネル サブシステムにこのハンドルを提供しました。

pQueryDependentEngineGroup

リセット操作の影響を受けるすべてのノードを指定する DXGKARG_QUERYDEPENDENTENGINEGROUP 型の値。

戻り値

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

注釈

この関数は、エンジンリセット要求の影響を受けるすべての物理アダプター (エンジン) を記述するために使用されます。 これは、リセット プロセスに影響を与える可能性がある複数のエンジン間に依存関係があるハードウェア アーキテクチャのユーザー エクスペリエンスを向上させるのに役立ちます。 影響を受けるノードはすべて、同じエンジン アフィニティ値を持つ必要があることに注意してください。 (Windows 8での TDR の変更に関する記事のエンジン アフィニティに関する説明を参照してください)。

ディスプレイ ポート ドライバーの GPU スケジューラは、DxgkDdiResetEngine 関数を呼び出すたびに DxgkDdiQueryDependentEngineGroup を呼び出します。 GPU スケジューラは、ディスプレイ ミニポート ドライバーがすべての依存エンジンのプリエンプションを完了するまで 500 ミリ秒待機します。 ドライバーがプリエンプションを完了できないエンジンの場合、GPU スケジューラはエンジンの序数値に基づいて DxgkDdiResetEngine 関数を順番に呼び出します。

DXGKARG_QUERYDEPENDENTENGINEGROUPでビットマスクを計算する方法の例を次に示 しますDependentNodeOrdinalMask メンバー。 DXGKARG_QUERYDEPENDENTENGINEGROUP構造体の NodeOrdinal メンバーと EngineOrdinal メンバーの元の値がそれぞれ 1 と 0 の場合、ノード 1 がリセットされるときに識別子 2 と 4 を持つ追加のノードもリセットされる場合、ドライバーは DependentNodeOrdinalMask のバイナリ値を 10110 に設定するか、16 進数表記で0x16する必要があります。 インデックス値 EngineOrdinal は、すべての依存ノードで同一であると見なされます。 リセットされるノードは、 DependentNodeOrdinalMask ビット マスクに含まれています。

この関数はページング可能にする必要があり、常に成功するはずです。

オペレーティング システムでは、「スレッド処理と同期の第 1 レベル」で定義されている第 1 レベルの同期モードに従う必要があります。

詳細については、「Windows 8での TDR の変更」を参照してください。

要件

要件
サポートされている最小のクライアント Windows 8
サポートされている最小のサーバー Windows Server 2012
対象プラットフォーム デスクトップ
Header d3dkmddi.h
IRQL PASSIVE_LEVEL

こちらもご覧ください

DXGKARG_CREATECONTEXT

DXGKARG_QUERYDEPENDENTENGINEGROUP

DXGK_DRIVERCAPS

DxgkDdiAddDevice

DxgkDdiResetEngine