次の方法で共有


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

DXGKCB_ENUMHANDLECHILDREN は、特定のリソースに関連付けられている割り当てを一度に 1 つずつ列挙します。

構文

DXGKCB_ENUMHANDLECHILDREN DxgkcbEnumhandlechildren;

D3DKMT_HANDLE DxgkcbEnumhandlechildren(
  [in] IN_CONST_PDXGKARGCB_ENUMHANDLECHILDREN unnamedParam1
)
{...}

パラメーター

[in] unnamedParam1

取得する親リソースと子割り当てのインデックスを記述する DXGKARGCB_ENUMHANDLECHILDREN 構造体へのポインター。

戻り値

DXGKCB_ENUMHANDLECHILDREN は、pData が記述する子割り当てに対する Dxgkrnl固有のハンドル 返します。 ハンドルの デバイス固有の データを取得するには、ディスプレイ ミニポート ドライバーは、DXGKCB_GETHANDLEDATA 関数を呼び出す必要があります。

DXGKCB_ENUMHANDLECHILDREN は、DXGKARGCB_ENUMHANDLECHILDREN 構造体の Index メンバーで指定された子割り当てインデックス値が、親リソースに関連付けられている割り当ての数を超えた場合に NULL ハンドルを返します。 DXGKCB_ENUMHANDLECHILDREN が予期せず NULL ハンドルを返した場合、DirectX グラフィックス カーネル サブシステムは、次のような理由で親リソースへのハンドルを解決できませんでした。

  • 悪意のある攻撃またはその他のバグが原因で、無効なハンドルがユーザー モード ディスプレイ ドライバーから受信されました。
  • 割り当てには有効期間の問題がありました。

NULL ハンドルが予期せず返された場合、ディスプレイ ミニポート ドライバーは、STATUS_INVALID_HANDLEで現在実行中の DDI 関数を失敗させる必要があります。

備考

ディスプレイ ミニポート ドライバーは、リソースに関連付けられているすべての割り当てを列挙するループ内の DXGKCB_ENUMHANDLECHILDREN を呼び出すことができます。

割り当てハンドルインデックスは 0 から始まります。 ディスプレイ ミニポート ドライバーが pData->Index0 に設定した場合、DXGKCB_ENUMHANDLECHILDREN は最初の割り当てハンドルを返します。Index が 1 に設定されている場合、DXGKCB_ENUMHANDLECHILDREN は 2 番目の割り当てハンドルを返します。などなど。 Index がリソースに関連付けられている割り当ての数より大きい場合、DXGKCB_ENUMHANDLECHILDREN は NULL 返します。

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

必要条件

要件 価値
サポートされる最小クライアント Windows Vista (WDDM 1.0)
ターゲット プラットフォーム デスクトップ
ヘッダー d3dkmddi.h (D3dkmddi.h を含む)
IRQL PASSIVE_LEVEL

関連項目

DXGKARGCB_ENUMHANDLECHILDREN

DXGKCB_GETHANDLEDATA

DXGKRNL_INTERFACE