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 |