Condividi tramite


DXGKDDI_COLLECTDBGINFO2 funzione di callback (d3dkmddi.h)

La funzione DxgkDdiCollectDbgInfo2 restituisce informazioni sul driver per un report di debug.

Sintassi

DXGKDDI_COLLECTDBGINFO2 DxgkddiCollectdbginfo2;

NTSTATUS DxgkddiCollectdbginfo2(
  IN_CONST_HANDLE hAdapter,
  INOUT_PDXGKARG_COLLECTDBGINFO2 pCollectDbgInfo2
)
{...}

Parametri

hAdapter

[in] Handle a un blocco di contesto associato a una scheda di visualizzazione. Il miniport visualizzato (KMD) in precedenza ha fornito questo handle a Dxgkrnl nel parametro di output MiniportDeviceContext 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 informazioni sul driver di output per un report di debug; OR, il sistema operativo ha ignorato il contenuto nel buffer a cui pBuffer punta e non ha aggiunto informazioni da DxgkDdiCollectDbgInfo2 al report di debug.
STATUS_NO_MEMORY DxgkDdiCollectDbgInfo2 non è riuscito a allocare memoria necessaria per il completamento.
STATUS_UNSUCCESSFUL Un altro errore impedisce al driver di raccogliere informazioni di debug valide.

Commenti

Dxgkrnl chiama la funzione DxgkDdiCollectDbgInfo2 del sistema operativo ogni volta che il sistema operativo sta per generare un report di debug correlato al driver. DxgkDdiCollectDbgInfo2 può essere chiamato immediatamente prima del funzionamento del rilevamento timeout e del ripristino (TDR) o immediatamente prima dei controlli del bug del sistema operativo. Anche se DxgkDdiCollectDbgInfo2 deve restituire il più rapidamente possibile, non esiste un periodo massimo massimo di tempo definito dal sistema che il driver può trascorrere in questa funzione.

DxgkDdiCollectDbgInfo2 riceve informazioni più dettagliate sulla causa radice della causa TDR rispetto a DxgkDdiCollectDbgInfo . KmD può salvare lo stato pertinente alla parte della GPU responsabile del TDR.

  • Un driver WDDM 3.2 non è necessario per implementare DxgkddiCollectDbgInfo2, nel qual caso il sistema operativo chiama DxgkddiCollectDbgInfo.

Il servizio di gestione delle chiavi deve raccogliere informazioni di debug. Quando viene chiamato DxgkDdiCollectDbgInfo2, il driver riceve un codice di controllo 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 è specificato da pCollectDbgInfo2-BufferSize>.

DxgkDdiCollectDbgInfo viene in genere eseguito in un irQL non definito. Tuttavia, se pCollectDbgInfo2-Reason> è impostato su VIDEO_TDR_TIMEOUT_DETECTED (per indicare una reimpostazione a livello di adattatore) 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 paginabile, viene eseguito a IRQL = PASSIVE_LEVEL e supporta il livello zero di sincronizzazione.

Per altre informazioni, vedere Miglioramenti alla debug TDR.

Requisiti

Requisito Valore
Client minimo supportato Windows 11 versione 24H2 (WDDM 3.2)
Intestazione d3dkmddi.h
IRQL PASSIVE_LEVEL (vedere Osservazioni)

Vedi anche

DXGKARG_COLLECTDBGINFO2

DxgkDdiCollectDbgInfo