次の方法で共有


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

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

構文

DXGKDDI_DESTROYALLOCATION DxgkddiDestroyallocation;

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

パラメーター

[in] hAdapter

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

[in] pDestroyAllocation

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

戻り値

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

備考

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

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

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

必要条件

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

関連項目

DXGKARG_DESTROYALLOCATION

DxgkDdiAddDevice

pfnDeallocateCb