DXGKDDI_COLLECTDIAGNOSTICINFO fonction de rappel (dispmprt.h)

La routine de rappel DxgkDdiCollectDiagnosticInfo collecte les informations sur le pilote privé pour les raisons spécifiées par DXGK_DIAGNOSTICINFO_TYPE.

Dans Windows 10 version 1903, le pilote est appelé pour collecter des informations privées si la fonction appelle DxgkDdiAddDevice ou DxgkDdiStartDevice a échoué.

Syntaxe

DXGKDDI_COLLECTDIAGNOSTICINFO DxgkddiCollectdiagnosticinfo;

NTSTATUS DxgkddiCollectdiagnosticinfo(
  [in]      IN_CONST_PDEVICE_OBJECT PhysicalDeviceObject,
  [in, out] INOUT_PDXGKARG_COLLECTDIAGNOSTICINFO pCollectDiagnosticInfo
)
{...}

Paramètres

[in] PhysicalDeviceObject

Pointeur vers un objet de périphérique physique (PDO) qui identifie une carte graphique.

[in, out] pCollectDiagnosticInfo

Pointeur vers une structure DXGKARG_COLLECTDIAGNOSTICINFO qui décrit les informations collectées par le pilote.

Valeur retournée

Retourne STATUS_SUCCESS si les informations de données privées ont été correctement collectées. Sinon, il retourne un code d’erreur tel que l’un des suivants.

Code d'erreur Signification
STATUS_DRIVER_INTERNAL_ERROR Une erreur sw générique s’est produite à l’intérieur du pilote.
STATUS_ACCESS_DENIED Le matériel est actuellement utilisé par d’autres threads et cette DDI ne peut pas y accéder.
STATUS_DEVICE_HARDWARE_ERROR Une erreur HW générique s’est produite.
STATUS_DEVICE_POWERED_OFF L’appareil est hors tension.

Remarques

Cette fonction est appelée au niveau PASSIF, à tout moment entre les appels à DxgkDdiAddDevice et DxgkDdiStartDevice, et doit prendre en charge le niveau zéro de synchronisation. Les données collectées ne doivent pas contenir d’informations utilisateur privées.

Les pilotes WDDM 2.7 et versions ultérieures sont requis pour prendre en charge le DXGK_DI_BLACKSCREENDXGK_DIAGNOSTICINFO_TYPE type d’énumération pour la collecte de données de boîte noire d’écran noir.

Pour les scénarios d’écran noir, le système d’exploitation collecte d’abord les données de la zone blanche à partir du pilote en appelant DxgkDdiGetDisplayStateNonIntrusive et DxgkDdiGetDisplayStateIntrusive avant d’appeler cette DDI pour collecter des informations de boîte noire.

Il est recommandé d’utiliser pCollectDiagnosticInfo-BucketingString> pour compartimenter les données de boîte noire dans la cas où cela est possible. Si la taille de la mémoire tampon d’entrée BufferSizeIn n’est pas suffisante pour toutes les données de boîte noire, les pilotes doivent faire leurs propres compromis en laissant de côté les données les moins importantes dans la plupart des analyses de la cause racine de l’écran noir.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 10 version 1903
En-tête dispmprt.h
IRQL PASSIVE_LEVEL

Voir aussi

DXGKARG_COLLECTDIAGNOSTICINFO

DxgkDdiAddDevice

DxgkDdiStartDevice