DXGKDDI_COLLECTDBGINFO2回呼函式 (d3dkmddi.h)
DxgkDdiCollectDbgInfo2 函式會輸出偵錯報表的驅動程序資訊。
語法
DXGKDDI_COLLECTDBGINFO2 DxgkddiCollectdbginfo2;
NTSTATUS DxgkddiCollectdbginfo2(
IN_CONST_HANDLE hAdapter,
INOUT_PDXGKARG_COLLECTDBGINFO2 pCollectDbgInfo2
)
{...}
參數
hAdapter
[in]與顯示配接器相關聯的內容區塊句柄。 先前在 DxgkDdiAddDevice 的 MiniportDDeviceContext 輸出參數中,顯示迷你埠 (KMD) 提供給 Dxgkrnl。
pCollectDbgInfo2
[in/out]包含偵錯報表資訊的 DXGKARG_COLLECTDBGINFO2 結構的指標。
傳回值
DxgkDdiCollectDbgInfo2 會傳回下列其中一個值:
傳回碼 | Description |
---|---|
STATUS_SUCCESS | DxgkDdiCollectDbgInfo2 已成功輸出偵錯報表的驅動程序資訊;或者,OS 會忽略 pBuffer 指向緩衝區中的內容,而且不會將 DxgkDdiCollectDbgInfo2 中的資訊新增至偵錯報表。 |
STATUS_NO_MEMORY | DxgkDdiCollectDbgInfo2 無法配置完成所需的記憶體。 |
STATUS_UNSUCCESSFUL | 另一個錯誤導致驅動程式無法收集有效的偵錯資訊。 |
備註
每當 OS 即將產生驅動程式相關的偵錯報告時,Dxgkrnl 就會呼叫 KMD 的 DxgkDdiCollectDbgInfo2 函式。 DxgkDdiCollectDbgInfo2 可能會在 逾時偵測和復原之前立即呼叫, (TDR) 運作 ,或在 OS 錯誤檢查之前立即呼叫。 雖然 DxgkDdiCollectDbgInfo2 應該儘快傳回,但驅動程式可以在此函式中花費的時間上限沒有系統定義的最大時間量。
DxgkDdiCollectDbgInfo2 收到 TDR 根本原因比 DxgkDollectDbgInfo 更詳細的資訊。 KMD 可以儲存與負責 TDR 之 GPU 部分相關的狀態。
- 實作 DxgkddiCollectDbgInfo2 不需要 WDDM 3.2 驅動程式,在此情況下,OS 會呼叫 DxgkddiCollectDbgInfo。
KMD 應該收集偵錯資訊。 呼叫 DxgkDdiCollectDbgInfo2 時,驅動程式會在 pCollectDbgInfo2-Reason> 中收到錯誤檢查程式代碼,指出偵錯報表所需的信息類型。 驅動程式會將必要的偵錯資訊複製到 pCollectDbgInfo2-pBuffer> 指向的緩衝區。 驅動程式可以複製的資訊位元組數目上限是由 pCollectDbgInfo2-BufferSize> 所指定。
DxgkDdiCollectDbgInfo 通常會在未定義的 IRQL 上執行。 不過,如果 pCollectDbgInfo2-Reason> 設定為 VIDEO_TDR_TIMEOUT_DETECTED (,表示全適配卡重設 ) 或VIDEO_ENGINE_TIMEOUT_DETECTED (Windows 8 可用,以指出實體配接器) 內的一或多個節點重設,驅動程式必須確定 DxgkDdiCollectDbgInfo2 可分頁、在 IRQL = PASSIVE_LEVEL執行,並支援同步處理零層級。
如需詳細資訊,請參閱 TDR 偵錯性改善。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows 11 版本 24H2 (WDDM 3.2) |
標頭 | d3dkmddi.h |
IRQL | PASSIVE_LEVEL (请参阅备注) |