Partager via


Journalisation et débogage ACX

Cette rubrique fournit des informations sur le journal, le traçage et le débogage des extensions de classe audio ACX.

Journal des pilotes ACX

Le traçage logiciel des pilotes est généralement basé sur Event Tracing for Windows (ETW), une fonction au niveau du noyau qui journalise les messages de traçage pour les processus en mode noyau et en mode utilisateur. Les pilotes ACX étant des pilotes WDF, toutes les fonctionnalités de journaux et d'événements WDF sont disponibles pour les développeurs de pilotes ACX.

WPP

L'ETW pouvant être quelque peu compliqué à utiliser, la plupart des développeurs de pilotes utilisent le préprocesseur de trace logiciel Windows (WPP), qui simplifie et améliore le processus d'instrumentation d'un pilote pour le traçage ETW.

ACX utilise les journaux WPP pour le traçage et le débogage. Pour plus d'informations, voir Utilisation du traçage logiciel WPP dans les pilotes KMDF et Ajout du traçage logiciel WPP à un pilote Windows.

Enregistreur en vol (IFR)

L'enregistreur en vol (IFR) est pris en charge et peut être visualisé via WDFKD, RCDRKD ou avec l'extension de débogage ACXKD lorsqu'elle est disponible. Pour des informations générales sur l'utilisation des journaux IFR, voir Utilisation de l'enregistreur de traces en vol (IFR) dans les pilotes KMDF et UMDF 2 et vidéo : Accès aux journaux IFR des pilotes sans débogueur

ACX journalise les événements clés en utilisant d'autres fournisseurs ETW pour simplifier la visualisation de ces événements spéciaux.

Ajouter un journal à votre pilote

Les pilotes tiers sont vivement encouragés à utiliser également les événements WPP et ETW.

Cet exemple de code montre la vérification d'une valeur de retour et le journal d'une erreur appropriée.


    //
    // The driver uses this DDI to delete the circuits from the current device. 
    //
    status = AcxDeviceRemoveCircuit(Device, devCtx->Speaker);
    if (!NT_SUCCESS(status)) { DrvLogError(g_AudioDspLog, FLAG_INIT, L"Failed to remove speaker circuit, continuing with ReleaseHardware, %!STATUS!", status); }
    status = AcxDeviceRemoveCircuit(Device, devCtx->MicArray);
    if (!NT_SUCCESS(status)) { DrvLogError(g_AudioDspLog, FLAG_INIT, L"Failed to remove micarray circuit, continuing with ReleaseHardware, %!STATUS!", status); }
    status = AcxDeviceRemoveCircuit(Device, devCtx->SpeakerHp);
    if (!NT_SUCCESS(status)) { DrvLogError(g_AudioDspLog, FLAG_INIT, L"Failed to remove speakerHp circuit, continuing with ReleaseHardware, %!STATUS!", status); }
    status = AcxDeviceRemoveCircuit(Device, devCtx->MicrophoneHp);
    if (!NT_SUCCESS(status)) { DrvLogError(g_AudioDspLog, FLAG_INIT, L"Failed to remove microphoneHp circuit, continuing with ReleaseHardware, %!STATUS!", status); }
    status = AcxDeviceRemoveCircuit(Device, devCtx->HDMI);
    if (!NT_SUCCESS(status)) { DrvLogError(g_AudioDspLog, FLAG_INIT, L"Failed to remove HDMI circuit, continuing with ReleaseHardware, %!STATUS!", status); }

La version fonctionnalité du code d'exemple du pilote Toaster fournit des exemples de traçage WMI ainsi que du code de traçage réutilisable. Pour plus d'informations sur l'exemple de pilote Toaster, voir Exemple de pilote Toaster.

Recommandations pour le journal du pilote ACX

Pour améliorer la fiabilité de votre pilote ACX, envisagez les comportements suivants pour le journal.

  • Valeurs de retour inattendues des entrées/sorties de la mémoire tampon ou d'autres activités régulières de traitement des signaux.
  • États d'alimentation inattendus ou transitions d'état d'alimentation.
  • Erreurs liées aux appels effectués lors de mises à jour ou de réinstallations.
  • D'autres comportements susceptibles d'entraîner l'absence d'audio peuvent être pris en compte pour le journal.

Utilisation des extensions du débogueur WMI Tracing

Pour visualiser les événements de traçage dans le débogueur, utilisez l'extension WMI, Wmitrace.dll. Elle contient une bibliothèque de fonctions conçues pour contrôler et afficher le traçage des événements WMI. Pour plus d'informations, voir Extensions de traçage WMI (Wmitrace.dll).

Débogage des pilotes ACX

Les pilotes ACX sont des pilotes WDF. Les techniques de débogage décrites pour les pilotes WDF s'appliquent donc aux pilotes ACX. Consultez les rubriques suivantes pour obtenir des informations sur le débogage des pilotes WDF.

Informations générales sur les outils de débogage

Outils de débogage pour Windows (WinDbg, KD, CDB, NTSD)

Débogage KMDF

Procédures pas-à-pas en vidéo

Bibliothèque d'extension du débogueur de noyau ACX (AcxKd.dll)

Pour faciliter le débogage, ACX dispose d'une bibliothèque complémentaire de débogage du noyau (AcxKd.dll). Cette bibliothèque aide les développeurs à repérer les problèmes sur les chemins audio à une ou plusieurs piles. L'extension kd permet aux développeurs d'examiner les structures de l'ACX.

Remarque

Cette extension de débogage est en cours de développement et des informations seront fournies ici lorsqu'elles seront disponibles, le cas échéant.

Voir aussi

Vue d’ensemble des extensions de classe audio ACX

Résumé des objets ACX