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;
Angehörige
Reason
[in] Der Fehlerüberprüfungscode, für den Debuginformationen im Puffer zurückgegeben werden sollen, auf die pBuffer verweist. 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 mindestens einen Knoten innerhalb eines physischen Adapters zurückgesetzt. Verfügbar ab Windows 8. |
pBuffer
[out] Ein Zeiger auf einen Puffer, der die Debuginformationen aus dem Grund empfängt, der Reason angibt.
BufferSize
Die maximale Größe in Bytes, auf die der Puffer kopiert werden soll, auf den pBuffer verweist.
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 des 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 Nutzlast enthält, die für bestimmte TdrType--Werte spezifisch ist, 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. |
Bemerkungen
Das Layout von DXGKARG_COLLECTDBGINFO2 ist abwärtskompatibel mit DXGKARG_COLLECTDBGINFO, damit die DxgkDdiCollectDbgInfo2- Implementierung bei Bedarf vorhandene DxgkDdiCollectDbgInfo Hilfsprogramme wiederverwenden kann. Aus diesem Grund weisen die Reason, pBuffer, BufferSizeund pExtension Felder dieselbe 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 dieser Fall ohne Absturz behandelt wird.
Wenn die Nutzlast nicht NULL ist, kann sie in eine Struktur umgerechnet werden, die dem TDR-Typ entspricht. Das Betriebssystem kann diese Strukturen auf abwärtskompatible Weise vergrößern und am Ende neue Felder hinzufügen. Der Treiber muss TdrPayloadSize- überprüfen, bevor er auf TdrPayload Felder zugreift, um sicherzustellen, dass das Betriebssystem die gewünschte Nutzlastversion oder höher implementiert.
Speicher, auf den TdrPayload Punkte verweist, ist nur für die Dauer des DxgkddiCollectDbgInfo2 Aufrufs gültig. Der Treiber sollte keinen Zeiger speichern, um TdrPayload über das Ende des DxgkddiCollectDbgInfo2 Aufrufs zu speichern.
Weitere Informationen finden Sie unter Verbesserungen der TDR-Debuggierbarkeit.
Anforderungen
Anforderung | Wert |
---|---|
mindestens unterstützte Client- | Windows 11, Version 24H2 (WDDM 3.2) |
Header- | d3dkmddi.h |