DXGKARG_COLLECTDBGINFO2-Struktur (d3dkmddi.h)
Die DXGKARG_COLLECTDBGINFO-Struktur beschreibt Informationen für einen Debugbericht, wenn DxgkDdiCollectDbgInfo2 aufgerufen wird.
Syntax
typedef struct _DXGKARG_COLLECTDBGINFO2 {
UINT Reason;
VOID *pBuffer;
SIZE_T BufferSize;
DXGKARG_COLLECTDBGINFO_EXT *pExtension;
DXGK_TDR_TYPE TdrType;
UINT TdrPayloadSize;
VOID *TdrPayload;
} DXGKARG_COLLECTDBGINFO2;
Member
Reason
[in] Der Fehlerprüfungscode , für den Debuginformationen im Puffer zurückgegeben werden sollen, auf den pBuffer zeigt. Dies sind mögliche Werte:
Wert | Bedeutung |
---|---|
VIDEO_TDR_TIMEOUT_DETECTED 0x117 | Ein DxgkDdiResetEngine-Vorgang hat einen logischen Adapter zurückgesetzt. |
VIDEO_ENGINE_TIMEOUT_DETECTED 0x141 | Ein DxgkDdiResetEngine-Vorgang hat einen oder mehrere Knoten innerhalb eines physischen Adapters zurückgesetzt. Verfügbar ab Windows 8. |
pBuffer
[out] Ein Zeiger auf einen Puffer, der die Debuginformationen aus dem von Reason angegebenen Grund empfängt.
BufferSize
Die maximale Größe in Bytes, die in den Puffer kopiert werden soll, auf den pBuffer zeigt.
pExtension
Ein Zeiger auf eine vom Betriebssystem zugewiesene DXGKARG_COLLECTDBGINFO_EXT Struktur, die der Treiber optional mit Debugerweiterungsinformationen auffüllt.
TdrType
[in] Ein DXGK_TDR_TYPE Wert, der den Typ der aufgetretenen TDR angibt.
TdrPayloadSize
[in] Die Größe der TDR-Nutzlast in Bytes, auf die TdrPayload verweist.
TdrPayload
[in] Ein Zeiger auf einen Puffer, der die nutzlastspezifisch für bestimmte TdrType-Werte enthält, wie in der folgenden Tabelle angegeben. Dieser Puffer kann NULL sein.
TdrType | Zugeordnete Struktur |
---|---|
DXGK_TDR_TYPE_ENGINE_TIMEOUT | TdrPayload verweist auf eine DXGK_TDR_PAYLOAD_ENGINE_TIMEOUT-Struktur . |
DXGK_TDR_TYPE_VSYNC_TIMEOUT | TdrPayload verweist auf eine DXGK_TDR_PAYLOAD_VSYNC_TIMEOUT-Struktur . |
Hinweise
Das Layout von DXGKARG_COLLECTDBGINFO2 ist abwärtskompatibel mit DXGKARG_COLLECTDBGINFO , damit die DxgkDdiCollectDbgInfo2-Implementierung vorhandene DxgkDdiCollectDbgInfo-Hilfsprogramme nach Bedarf wiederverwenden kann. Aus diesem Grund weisen die Felder Reason, pBuffer, BufferSize und pExtension die gleiche Semantik auf.
Für einige TDR-Typen (angegeben in TdrType) stellt das Betriebssystem zusätzliche Informationen im TdrPayload-Puffer von TdrPayloadSize-Bytes bereit. Es kann NULL sein, und der Treiber wird erwartet, dass er diesen Fall ohne Absturz behandelt.
Wenn die Nutzlast nicht NULL ist, kann sie in eine Struktur umgewandelt werden, die dem TDR-Typ entspricht. Das Betriebssystem kann diese Strukturen abwärtskompatibel vergrößern und am Ende neue Felder hinzufügen. Der Treiber muss TdrPayloadSize vor dem Zugriff auf TdrPayload-Felder überprüfen, um sicherzustellen, dass das Betriebssystem die gewünschte Nutzlastversion oder höher implementiert.
Arbeitsspeicher, auf den TdrPayload verweist, ist nur für die Dauer des DxgkddiCollectDbgInfo2-Aufrufs gültig. Der Treiber sollte keinen Zeiger auf TdrPayload über das Ende des DxgkddiCollectDbgInfo2-Aufrufs speichern.
Weitere Informationen finden Sie unter Verbesserungen der TDR-Debugfähigkeit.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Windows 11, Version 24H2 (WDDM 3.2) |
Kopfzeile | d3dkmddi.h |