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 |