DXGKDDI_COLLECTDBGINFO2 fonction de rappel (d3dkmddi.h)
La fonction DxgkDdiCollectDbgInfo2 génère des informations sur le pilote pour un rapport de débogage.
Syntaxe
DXGKDDI_COLLECTDBGINFO2 DxgkddiCollectdbginfo2;
NTSTATUS DxgkddiCollectdbginfo2(
IN_CONST_HANDLE hAdapter,
INOUT_PDXGKARG_COLLECTDBGINFO2 pCollectDbgInfo2
)
{...}
Paramètres
hAdapter
[in] Handle d’un bloc de contexte associé à une carte d’affichage. Le miniport d’affichage (KMD) fournissait précédemment ce handle à Dxgkrnl dans le paramètre de sortie MiniportDeviceContext de DxgkDdiAddDevice.
pCollectDbgInfo2
[in/out] Pointeur vers une structure de DXGKARG_COLLECTDBGINFO2 qui contient des informations pour le rapport de débogage.
Valeur retournée
DxgkDdiCollectDbgInfo2 retourne l’une des valeurs suivantes :
Code de retour | Description |
---|---|
STATUS_SUCCESS | DxgkDdiCollectDbgInfo2 a correctement généré des informations sur le pilote pour un rapport de débogage ; OU, le système d’exploitation a ignoré le contenu dans la mémoire tampon vers laquelle pBuffer pointe et n’a pas ajouté d’informations de DxgkDdiCollectDbgInfo2 au rapport de débogage. |
STATUS_NO_MEMORY | DxgkDdiCollectDbgInfo2 n’a pas pu allouer la mémoire requise pour qu’il se termine. |
STATUS_UNSUCCESSFUL | Une autre erreur a empêché le pilote de collecter des informations de débogage valides. |
Remarques
Dxgkrnl appelle la fonction DxgkDdiCollectDbgInfo2 de KMD chaque fois que le système d’exploitation est sur le point de générer un rapport de débogage lié au pilote. DxgkDdiCollectDbgInfo2 peut être appelé immédiatement avant le travail de détection et de récupération du délai d’attente (TDR) ou immédiatement avant les vérifications des bogues du système d’exploitation. Bien que DxgkDdiCollectDbgInfo2 soit retourné aussi rapidement que possible, le pilote ne peut pas passer de temps maximal défini par le système dans cette fonction.
DxgkDdiCollectDbgInfo2 reçoit des informations plus détaillées sur la cause racine du TDR que DxgkDdiCollectDbgInfo . KMD peut enregistrer l’état pertinent pour la partie du GPU responsable du TDR.
- Un pilote WDDM 3.2 n’est pas nécessaire pour implémenter DxgkddiCollectDbgInfo2, auquel cas le système d’exploitation appelle DxgkddiCollectDbgInfo.
KMD doit collecter des informations de débogage. Lorsque DxgkDdiCollectDbgInfo2 est appelé, le pilote reçoit un code case activée de bogue dans pCollectDbgInfo2-Reason> qui indique le type d’informations requises pour le rapport de débogage. Le pilote copie les informations de débogage requises dans la mémoire tampon vers laquelle pCollectDbgInfo2-pBuffer> pointe. Le nombre maximal d’octets d’informations que le pilote peut copier est spécifié par pCollectDbgInfo2-BufferSize>.
DxgkDdiCollectDbgInfo s’exécute généralement à un IRQL non défini. Toutefois, si pCollectDbgInfo2-Reason> est défini sur VIDEO_TDR_TIMEOUT_DETECTED (pour indiquer une réinitialisation à l’échelle de l’adaptateur) ou VIDEO_ENGINE_TIMEOUT_DETECTED (disponible à partir de Windows 8 pour indiquer une réinitialisation d’un ou plusieurs nœuds au sein d’une carte physique), le pilote doit s’assurer que DxgkDdiCollectDbgInfo2 est paginable, s’exécute à IRQL = PASSIVE_LEVEL et prend en charge le niveau zéro de synchronisation.
Pour plus d’informations, consultez Améliorations de la capacité de débogage TDR.
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Windows 11, version 24H2 (WDDM 3.2) |
En-tête | d3dkmddi.h |
IRQL | PASSIVE_LEVEL (voir remarques) |