Partager via


DXGKDDI_COLLECTDIAGNOSTICINFO fonction de rappel (dispmprt.h)

La routine de rappel DxgkDdiCollectDiagnosticInfo collecte les informations du pilote privé pour des 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 d’appareil physique (PDO) qui identifie un adaptateur d’affichage.

[in, out] pCollectDiagnosticInfo

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

Valeur de retour

Retourne STATUS_SUCCESS si les informations de données privées ont été collectées avec succès. Sinon, il retourne un code d’erreur tel que l’un des éléments 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 éteint.

Remarques

Cette fonction est appelée au niveau PASSIF, à tout moment entre les appels à DxgkDdiAddDevice et DxgkDdiStartDevice, et doit prendre en charge 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 ultérieurs sont nécessaires pour prendre en charge le type d’énumération DXGK_DI_BLACKSCREENDXGK_DIAGNOSTICINFO_TYPE pour la collecte de données de boîte noire à écran noir.

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

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

Exigences

Exigence Valeur
client minimum pris en charge Windows 10, version 1903
d’en-tête dispmprt.h
IRQL PASSIVE_LEVEL

Voir aussi

DXGKARG_COLLECTDIAGNOSTICINFO

DxgkDdiAddDevice

DxgkDdiStartDevice