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

DxgkDdiCollectDbgInfo 関数は、デバッグ レポートのドライバー情報を出力します。

構文

DXGKDDI_COLLECTDBGINFO DxgkddiCollectdbginfo;

NTSTATUS DxgkddiCollectdbginfo(
  [in]     IN_CONST_HANDLE hAdapter,
  [in/out] IN_CONST_PDXGKARG_COLLECTDBGINFO pCollectDbgInfo
)
{...}

パラメーター

[in] hAdapter

ディスプレイ アダプターに関連付けられているコンテキスト ブロックへのハンドル。 ディスプレイ ミニポート (KMD) は、以前に DxgkDdiAddDeviceMiniportDeviceContext 出力パラメーターで Dxgkrnl にこのハンドルを提供しました。

[in/out] pCollectDbgInfo

デバッグ レポートの情報を含む DXGKARG_COLLECTDBGINFO 構造体へのポインター。

戻り値

DxgkDdiCollectDbgInfo は、次のいずれかの値を返します。

リターン コード 説明
STATUS_SUCCESS DxgkDdiCollectDbgInfo は、デバッグ レポートのドライバー情報を正常に出力しました。または、 OS は pBuffer が指すバッファー内のコンテンツを無視し、 DxgkDdiCollectDbgInfo からデバッグ レポートに情報を追加しませんでした。
STATUS_NO_MEMORY DxgkDdiCollectDbgInfo では、完了するために必要なメモリを割り当てられませんでした。
STATUS_UNSUCCESSFUL 別のエラーにより、ドライバーが有効なデバッグ情報を収集できませんでした。

注釈

Dxgkrnl は、OS がドライバー関連のデバッグ レポートを生成しようとするたびに、 KMD の DxgkDdiCollectDbgInfo 関数を呼び出します。 DxgkDdiCollectDbgInfo は、 タイムアウト検出と回復 (TDR) が機能 する直前、または OS バグ チェックの直前に呼び出される場合があります。 DxgkDdiCollectDbgInfo はできるだけ早く戻る必要がありますが、ドライバーがこの関数に費やすことができるシステム定義の最大時間はありません。

KMD はデバッグ情報を収集する必要があります。 DxgkDdiCollectDbgInfo が呼び出されると、ドライバーは、デバッグ レポートに必要な情報の種類を示すバグ チェック コードを pCollectDbgInfo-Reason> で受け取ります。 ドライバーは、pCollectDbgInfo-pBuffer> が指すバッファーに必要なデバッグ情報をコピーします。 ドライバーがコピーできる情報の最大バイト数は、pCollectDbgInfo-BufferSize> によって指定されます。

DxgkDdiCollectDbgInfo は 通常、未定義の IRQL で実行されます。 ただし、pCollectDbgInfo-Reason> が (アダプター全体のリセットを示すために) VIDEO_TDR_TIMEOUT_DETECTEDまたはVIDEO_ENGINE_TIMEOUT_DETECTED (物理アダプター内の 1 つ以上のノードのリセットを示すためにWindows 8以降で使用可能) に設定されている場合、ドライバーは DxgkDdiCollectDbgInfo がページング可能であり、IRQL = PASSIVE_LEVELで実行され、同期ゼロ レベルをサポートしていることを確認する必要があります。

要件

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

こちらもご覧ください

DXGKARG_COLLECTDBGINFO

DxgkDdiAddDevice

DxgkDdiResetFromTimeout