DXGKDDI_COLLECTDIAGNOSTICINFO funzione di callback (dispmprt.h)
La routine di callback DxgkDdiCollectDiagnosticInfo raccoglie le informazioni sul driver privato per motivi specificati da DXGK_DIAGNOSTICINFO_TYPE.
In Windows 10, versione 1903, il driver verrà chiamato per raccogliere informazioni private se le chiamate di funzione a DxgkDdiAddDevice o DxgkDdiStartDevice non riuscito.
Sintassi
DXGKDDI_COLLECTDIAGNOSTICINFO DxgkddiCollectdiagnosticinfo;
NTSTATUS DxgkddiCollectdiagnosticinfo(
[in] IN_CONST_PDEVICE_OBJECT PhysicalDeviceObject,
[in, out] INOUT_PDXGKARG_COLLECTDIAGNOSTICINFO pCollectDiagnosticInfo
)
{...}
Parametri
[in] PhysicalDeviceObject
Puntatore a un oggetto dispositivo fisico (PDO) che identifica una scheda di visualizzazione.
[in, out] pCollectDiagnosticInfo
Puntatore a una struttura DXGKARG_COLLECTDIAGNOSTICINFO che descrive le informazioni raccolte dal driver.
Valore restituito
Restituisce STATUS_SUCCESS se le informazioni sui dati privati sono state raccolte correttamente. In caso contrario, restituisce un codice di errore, ad esempio uno dei seguenti.
Codice errore | Significato |
---|---|
STATUS_DRIVER_INTERNAL_ERROR | Si è verificato un errore SW generico all'interno del driver. |
STATUS_ACCESS_DENIED | L'hardware è attualmente in uso da altri thread e questo DDI non può ottenere l'accesso. |
STATUS_DEVICE_HARDWARE_ERROR | Si è verificato un errore HW generico. |
STATUS_DEVICE_POWERED_OFF | Il dispositivo è spento. |
Osservazioni
Questa funzione viene chiamata a livello PASSIVE, in qualsiasi momento tra le chiamate a DxgkDdiAddDevice e DxgkDdiStartDevicee deve supportare il livello zero di sincronizzazione. I dati raccolti non devono contenere informazioni sull'utente privato.
I driver WDDM 2.7 e versioni successive sono necessari per supportare il tipo di enumerazione DXGK_DI_BLACKSCREENDXGK_DIAGNOSTICINFO_TYPE per la raccolta di dati black box dello schermo nero.
Per gli scenari di schermata nera, il sistema operativo raccoglierà prima i dati della casella bianca dal driver chiamando DxgkDdiGetDisplayStateNonIntrusive e DxgkDdiGetDisplayStateIntrusive prima di chiamare questa DDI per raccogliere informazioni sulla casella nera.
È consigliabile usare pCollectDiagnosticInfo->BucketingString per suddividere in bucket i dati della scatola nera, se possibile. Se le dimensioni dell'BufferSizeIn buffer di input non sono sufficienti per tutti i dati black box, i driver devono fare i propri compromessi per escludere i dati meno importanti nella maggior parte dell'analisi della causa radice dello schermo nero.
Fabbisogno
Requisito | Valore |
---|---|
client minimo supportato | Windows 10, versione 1903 |
intestazione |
dispmprt.h |
IRQL | PASSIVE_LEVEL |