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

DxgkDdiDestroyAllocation 関数は割り当てを解放します。

構文

DXGKDDI_DESTROYALLOCATION DxgkddiDestroyallocation;

NTSTATUS DxgkddiDestroyallocation(
  [in] IN_CONST_HANDLE hAdapter,
  [in] IN_CONST_PDXGKARG_DESTROYALLOCATION pDestroyAllocation
)
{...}

パラメーター

[in] hAdapter

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

[in] pDestroyAllocation

割り当てを解放するための情報を含む DXGKARG_DESTROYALLOCATION 構造体へのポインター。

戻り値

DxgkDdiDestroyAllocation はSTATUS_SUCCESSを返します。割り当てが正常に解放されない場合は、適切なエラー結果が返されます。

注釈

ユーザー モードディスプレイ ドライバーが pfnDeallocateCb 関数を呼び出すと、DirectX グラフィックス カーネル サブシステム ( Dxgkrnl.sysの一部) は、ディスプレイ ミニポート ドライバーの DxgkDdiDestroyAllocation 関数を呼び出して割り当てを解放します。 ディスプレイ ミニポート ドライバーは、内部データ構造と割り当てへの参照をクリーンする必要があります。 Microsoft Direct3D ランタイムは、ビデオ メモリ マネージャー ( Dxgkrnl.sysの一部でもあります) への呼び出しを開始し、GPU スケジューラ ( Dxgkrnl.sysの一部でもあります) を呼び出して、ビデオ メモリが実際に解放される前に同期します。

ディスプレイ ミニポート ドライバーは、リソース全体と割り当てを解放できます。 リソースを解放する必要があるかどうかを判断するために、ディスプレイ ミニポート ドライバーは、pDestroyAllocation パラメーターが指すDXGKARG_DESTROYALLOCATION構造体の Flags メンバーに DestroyResource フラグが設定されているかどうかをチェックできます。 リソースを解放するには、ディスプレイ ミニポート ドライバーは、DXGKARG_DESTROYALLOCATIONの hResource メンバーが指定するハンドルをクリーンする必要があります。 ディスプレイ ミニポート ドライバーがリソースを解放しない場合、ドライバーは必要に応じて hResource の値を変更できます。

DxgkDdiDestroyAllocation を ページング可能にする必要があります。

要件

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

こちらもご覧ください

DXGKARG_DESTROYALLOCATION

DxgkDdiAddDevice

pfnDeallocateCb