次の方法で共有


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-Index> を 0 に設定した場合、DXGKCB_ENUMHANDLECHILDRENは最初の割り当てハンドルを返します。Index が 1 に設定されている場合、DXGKCB_ENUMHANDLECHILDRENは 2 番目の割り当てハンドルを返します。 Index がリソースに関連付けられている割り当ての数より大きい場合、DXGKCB_ENUMHANDLECHILDRENNULL を返します。

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

要件

要件
サポートされている最小のクライアント Windows Vista (WDDM 1.0)
対象プラットフォーム デスクトップ
Header d3dkmddi.h (D3dkmddi.h を含む)
IRQL PASSIVE_LEVEL

こちらもご覧ください

DXGKARGCB_ENUMHANDLECHILDREN

DXGKCB_GETHANDLEDATA

DXGKRNL_INTERFACE