DXGKDDI_COLLECTDBGINFO2 funzione di callback (d3dkmddi.h)
La funzione DxgkDdiCollectDbgInfo2 restituisce informazioni sui driver per un report di debug.
Sintassi
DXGKDDI_COLLECTDBGINFO2 DxgkddiCollectdbginfo2;
NTSTATUS DxgkddiCollectdbginfo2(
IN_CONST_HANDLE hAdapter,
INOUT_PDXGKARG_COLLECTDBGINFO2 pCollectDbgInfo2
)
{...}
Parametri
hAdapter
[in] Handle di un blocco di contesto associato a una scheda di visualizzazione. Il miniport di visualizzazione (KMD) precedentemente fornito questo handle per Dxgkrnl nel MiniportDeviceContext parametro di output di DxgkDdiAddDevice.
pCollectDbgInfo2
[in/out] Puntatore a una struttura DXGKARG_COLLECTDBGINFO2 che contiene informazioni per il report di debug.
Valore restituito
DxgkDdiCollectDbgInfo2 restituisce uno dei valori seguenti:
Codice restituito | Descrizione |
---|---|
STATUS_SUCCESS | DxgkDdiCollectDbgInfo2 restituire correttamente le informazioni sul driver per un report di debug; IN ALTERNATIVA, il sistema operativo ha ignorato il contenuto nel buffer a cui pBuffer punta e non ha aggiunto informazioni da DxgkDdiCollectDbgInfo 2 al report di debug. |
STATUS_NO_MEMORY | DxgkDdiCollectDbgInfo2 non è riuscito ad allocare memoria necessaria per il completamento. |
STATUS_UNSUCCESSFUL | Un altro errore ha impedito al driver di raccogliere informazioni di debug valide. |
Osservazioni
Dxgkrnl chiama la funzione DxgkDdiCollectDbgInfo2 del servizio kmD ogni volta che il sistema operativo sta per generare un report di debug correlato al driver. dxgkDdiCollectDbgInfo2 potrebbe essere chiamato immediatamente prima del lavoro timeout detection and recovery (TDR) o immediatamente prima dei controlli dei bug del sistema operativo. Anche se DxgkDdiCollectDbgInfo2 dovrebbe restituire il più rapidamente possibile, non esiste un periodo massimo di tempo definito dal sistema che il driver può trascorrere in questa funzione.
DxgkDdiCollectDbgInfo2 riceve informazioni più dettagliate sulla causa radice del TDR rispetto a dxgkDdiCollectDbgInfo. Il kmD può salvare lo stato rilevante per la parte della GPU responsabile del TDR.
- Non è necessario un driver WDDM 3.2 per implementare DxgkddiCollectDbgInfo2, nel qual caso il sistema operativo chiama DxgkddiCollectDbgInfo.
Il server di gestione delle chiavi deve raccogliere informazioni di debug. Quando viene chiamato DxgkDdiCollectDbgInfo2, il driver riceve un codice di controllo dei bug in pCollectDbgInfo2->Reason che indica il tipo di informazioni necessarie per il report di debug. Il driver copia le informazioni di debug necessarie nel buffer a cui pCollectDbgInfo2->pBuffer punta. Il numero massimo di byte di informazioni che il driver può copiare viene specificato da pCollectDbgInfo2->BufferSize.
DxgkDdiCollectDbgInfo in genere viene eseguito in un IRQL non definito. Tuttavia, se pCollectDbgInfo2->Reason è impostato su VIDEO_TDR_TIMEOUT_DETECTED (per indicare una reimpostazione a livello di scheda) o VIDEO_ENGINE_TIMEOUT_DETECTED (disponibile a partire da Windows 8 per indicare una reimpostazione di uno o più nodi all'interno di una scheda fisica), il driver deve assicurarsi che DxgkDdiCollectDbgInfo2 sia pageable, viene eseguito in IRQL = PASSIVE_LEVELe supporta il livello zero di sincronizzazione.
Per altre informazioni, vedere miglioramenti del debug TDR.
Fabbisogno
Requisito | Valore |
---|---|
client minimo supportato | Windows 11, versione 24H2 (WDDM 3.2) |
intestazione | d3dkmddi.h |
IRQL | PASSIVE_LEVEL (vedere osservazioni) |