DXGKDDI_COLLECTDBGINFO回呼函式 (d3dkmddi.h)
DxgkDdiCollectDbgInfo 函式會輸出偵錯報告的驅動程序資訊。
語法
DXGKDDI_COLLECTDBGINFO DxgkddiCollectdbginfo;
NTSTATUS DxgkddiCollectdbginfo(
[in] IN_CONST_HANDLE hAdapter,
[in/out] IN_CONST_PDXGKARG_COLLECTDBGINFO pCollectDbgInfo
)
{...}
參數
[in] hAdapter
與顯示配接器相關聯的內容區塊句柄。 先前在 MiniportDeviceContextDxgkDdiAddDevice的 MiniportDeviceContext 輸出參數中,提供了此句柄來 Dxgkkrnl。
[in/out] pCollectDbgInfo
包含偵錯報表資訊的 DXGKARG_COLLECTDBGINFO 結構的指標。
傳回值
DxgkDdiCollectDbgInfo 會傳回下列其中一個值:
傳回碼 | 描述 |
---|---|
STATUS_SUCCESS | DxgkDdiCollectDbgInfo 成功輸出偵錯報告的驅動程序資訊;或者,OS 會忽略緩衝區中 pBuffer 指向的內容,而且不會將 DxgkDdiCollectDbgInfo 中的資訊新增至偵錯報表。 |
STATUS_NO_MEMORY | DxgkDdiCollectDbgInfo 無法配置完成所需的記憶體。 |
STATUS_UNSUCCESSFUL | 另一個錯誤導致驅動程式無法收集有效的偵錯資訊。 |
言論
Dxgkrnl 每當 OS 即將產生驅動程式相關偵錯報告時,都會呼叫 KMD 的 DxgkDdiCollectDbgInfo 函式。 DxgkDdiCollectDbgInfo 可能會在 逾時偵測和復原 (TDR) 工作 或作系統錯誤檢查之前立即呼叫。 雖然 DxgkDdiCollectDbgInfo 應該儘快傳回,但沒有系統定義的驅動程式可以花費在此函式中的最大時間量。
KMD 應該收集偵錯資訊。 呼叫 DxgkDdiCollectDbgInfo 時,驅動程式會在 pCollectDbgInfo- >Reason 中收到錯誤檢查碼,指出偵錯報告所需的信息類型。 驅動程式會將必要的偵錯資訊複製到 pCollectDbgInfo->pBuffer 指向的緩衝區。 驅動程式可以複製的資訊位元組數目上限是由 pCollectDbgInfo- >BufferSize所指定。
DxgkDdiCollectDbgInfo 通常會在未定義的 IRQL 上執行。 不過,如果 pCollectDbgInfo->Reason 設定為 VIDEO_TDR_TIMEOUT_DETECTED (表示全適配卡重設) 或 VIDEO_ENGINE_TIMEOUT_DETECTED (從 Windows 8 開始,表示實體適配卡內的一或多個節點重設),驅動程式必須確定 DxgkDdiCollectDbgInfo 可分頁, 在 IRQL = PASSIVE_LEVEL執行,並支援 同步處理零層級。
要求
要求 | 價值 |
---|---|
最低支援的用戶端 | Windows Vista |
目標平臺 | 桌面 |
標頭 | d3dkmddi.h |
IRQL | PASSIVE_LEVEL(請參閱) |