Partager via


DXGKDDI_COLLECTDBGINFO fonction de rappel (d3dkmddi.h)

La fonction DxgkDdiCollectDbgInfo génère des informations de pilote pour un rapport de débogage.

Syntaxe

DXGKDDI_COLLECTDBGINFO DxgkddiCollectdbginfo;

NTSTATUS DxgkddiCollectdbginfo(
  [in]     IN_CONST_HANDLE hAdapter,
  [in/out] IN_CONST_PDXGKARG_COLLECTDBGINFO pCollectDbgInfo
)
{...}

Paramètres

[in] hAdapter

Handle vers un bloc de contexte associé à un adaptateur d’affichage. Le miniport d’affichage (KMD) fournissait précédemment ce handle à Dxgkrnl dans le paramètre de sortie MiniportDeviceContext de DxgkDdiAddDevice.

[in/out] pCollectDbgInfo

Pointeur vers une structure de DXGKARG_COLLECTDBGINFO qui contient des informations pour le rapport de débogage.

Valeur retournée

DxgkDdiCollectDbgInfo retourne l’une des valeurs suivantes :

Code de retour Description
STATUS_SUCCESS DxgkDdiCollectDbgInfo a réussi à générer des informations de pilote pour un rapport de débogage ; OU, le système d’exploitation a ignoré le contenu de la mémoire tampon vers laquelle pBuffer pointe et n’a pas ajouté d’informations de DxgkDdiCollectDbgInfo au rapport de débogage.
STATUS_NO_MEMORY DxgkDdiCollectDbgInfo n’a pas pu allouer la mémoire nécessaire pour qu’elle 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 DxgkDdiCollectDbgInfo 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. DxgkDdiCollectDbgInfo peut être appelé immédiatement avant le travail de détection et de récupération du délai d’expiration (TDR) ou immédiatement avant les vérifications de bogues du système d’exploitation. Alors que DxgkDdiCollectDbgInfo doit retourner aussi rapidement que possible, le pilote ne peut pas passer de temps maximal défini par le système dans cette fonction.

KMD doit collecter des informations de débogage. Lorsque DxgkDdiCollectDbgInfo est appelé, le pilote reçoit un code case activée bogue dans pCollectDbgInfo-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 pCollectDbgInfo-pBuffer> pointe. Le nombre maximal d’octets d’informations que le pilote peut copier est spécifié par pCollectDbgInfo-BufferSize>.

DxgkDdiCollectDbgInfo s’exécute généralement à un IRQL non défini. Toutefois, si pCollectDbgInfo-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 dans une carte physique), le pilote doit s’assurer que DxgkDdiCollectDbgInfo est paginable, s’exécute à IRQL = PASSIVE_LEVEL et prend en charge le niveau zéro de synchronisation.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows Vista
Plateforme cible Desktop (Expérience utilisateur)
En-tête d3dkmddi.h
IRQL PASSIVE_LEVEL (voir les remarques)

Voir aussi

DXGKARG_COLLECTDBGINFO

DxgkDdiAddDevice

DxgkDdiResetFromTimeout