Freigeben über


VIDEO_PORT_DEBUG_REPORT_INTERFACE Struktur (video.h)

Die VIDEO_PORT_DEBUG_REPORT_INTERFACE Struktur enthält Zeiger auf die Debugbericht-Funktionen, die vom Videoporttreiber implementiert werden.

Syntax

typedef struct _VIDEO_PORT_DEBUG_REPORT_INTERFACE
{
    IN USHORT                  Size;
    IN USHORT                  Version;
    OUT PVOID                  Context;
    OUT PINTERFACE_REFERENCE   InterfaceReference;
    OUT PINTERFACE_DEREFERENCE InterfaceDereference;

    OUT
    PVIDEO_DEBUG_REPORT
    (*DbgReportCreate)(
        IN PVOID HwDeviceExtension,
        IN ULONG ulCode,
        IN ULONG_PTR ulpArg1,
        IN ULONG_PTR ulpArg2,
        IN ULONG_PTR ulpArg3,
        IN ULONG_PTR ulpArg4
        );

    OUT
    BOOLEAN
    (*DbgReportSecondaryData)(
        IN OUT PVIDEO_DEBUG_REPORT pReport,
        IN PVOID pvData,
        IN ULONG ulDataSize
        );

    OUT
    VOID
    (*DbgReportComplete)(
        IN OUT PVIDEO_DEBUG_REPORT pReport
        );
} VIDEO_PORT_DEBUG_REPORT_INTERFACE, *PVIDEO_PORT_DEBUG_REPORT_INTERFACE;

Angehörige

Size

Gibt die Größe dieser Struktur in Bytes an.

Version

Gibt die Vom Videoporttreiber zurückgegebene Version der Schnittstelle an. Derzeit ist die einzige unterstützte Version VIDEO_PORT_DEBUG_REPORT_INTERFACE_VERSION_1.

Context

Zeiger auf einen Kontext, der vom Videoporttreiber bereitgestellt wird.

InterfaceReference

Zeiger auf eine Schnittstellenverweisfunktion, die vom Videoporttreiber implementiert wird.

InterfaceDereference

Zeiger auf eine Schnittstellen-Ableitungsfunktion, die vom Videoporttreiber implementiert wird.

OUT (IN PVOID HwDeviceExtension,IN ULONG ulCode,IN ULONG_PTR ulpArg1,IN ULONG_PTR ulpArg2,IN ULONG_PTR ulpArg3,IN ULONG_PTR ulpArg4) PVIDEO_DEBUG_REPORT( *DbgReportCreate unnamedParam1)

OUT (IN OUT PVIDEO_DEBUG_REPORT pReport,IN PVOID pvData,IN ULONG ulDataSize) BOOLEAN( *DbgReportSecondaryData unnamedParam1)

OUT (IN OUT PVIDEO_DEBUG_REPORT pReport) VOID( *DbgReportComplete unnamedParam1)

Bemerkungen

Der Videominiporttreiber stellt die Size und Version Member dieser Struktur bereit und ruft dann VideoPortQueryServicesauf, wodurch die verbleibenden Member initialisiert werden.

Wenn Ihr Video-Miniporttreiber einen Fehler erkennt und dann wiederhergestellt wird, können Sie einen Fehlerbericht erstellen, der später zum Debuggen verwendet werden kann, indem Sie die Rückruffunktionsmember von VIDEO_PORT_DEBUG_REPORT_INTERFACE wie folgt aufrufen:

  1. Rufen Sie zunächst DbgReportCreate auf, um einen anfänglichen Bericht zu erstellen.
  2. Fügen Sie dann dem Bericht Daten hinzu, indem Sie einen oder mehrere Aufrufe an DbgReportSecondaryData.
  3. Wenn Sie mit dem Hinzufügen von Daten zum Bericht fertig sind, rufen Sie DbgReportCompleteauf.

Der Fehlerbericht wird in einer Datei gespeichert und soll beim Neustart des Computers an Microsoft gesendet werden. Der Fehlerbericht enthält einen Fehlercode und vier Argumente. Der Fehlercode und die ersten drei Argumente werden vom Aufrufer von DbgReportCreatebereitgestellt. Das vierte Argument im Bericht wird vom Betriebssystem bereitgestellt und gibt die Anzahl der berichte an, die seit dem Start des Computers generiert wurden. Wenn beispielsweise der Wert von ulpArg4 5 ist, bedeutet dies, dass vier vorherige Fehlerberichte seit dem letzten Start des Computers vom Anzeigeminiporttreiber generiert wurden. Nur der fünfte Bericht wird gespeichert, da jeder Bericht den vorherigen überschreibt.

Die von DbgReportCreate zurückgegebene VIDEO_DEBUG_REPORT Struktur und anschließend an DbgReportSecondaryData und dbgReportComplete- ist undurchsichtig. Versuchen Sie nicht, direkt auf ihre Mitglieder zuzugreifen.

In den folgenden Abschnitten werden diese Rückruffunktionen ausführlich beschrieben. Diese Rückrufe müssen bei IRQL = PASSIVE_LEVEL aufgerufen werden.

DbgReportCreate

DbgReportCreate erstellt einen anfänglichen Fehlerbericht. Es erstellt einen Eintrag im Systemereignisprotokoll und zeigt ein Dialogfeld an, das den Benutzer über den Fehler informiert und die Möglichkeit bietet, einen Fehlerbericht an Microsoft hochzuladen. DbgReportCreate gibt einen Zeiger auf eine undurchsichtige VIDEO_DEBUG_REPORT Struktur zurück, die ein Handle für den neu erstellten Debugbericht darstellt.

DbgReportCreate-Parameter

  • HwDeviceHandle [in] Ein Handle zu einem Kontextblock, der einem Anzeigeadapter zugeordnet ist. Der Anzeige-Miniporttreiber hat dieses Handle in seiner DxgkDdiAddDevice-Funktion erstellt. Dieser Parameter kann NULL sein.
  • ulCode [in] Einen Code für den Fehlerbericht. Die folgenden Codes werden unterstützt: THREAD_STUCK_IN_DEVICE_DRIVER VIDEO_DRIVER_DEBUG_REPORT_REQUEST, VIDEO_TDR_FATAL_ERROR und VIDEO_TDR_SUCCESS.
  • ulpArg1 [in] Das erste Argument, das dem Bericht hinzugefügt werden soll. Der Entwickler des Display Miniporttreibers bestimmt den Wert und die Bedeutung von ulpArg1.
  • ulpArg2 [in] Das zweite Argument, das dem Bericht hinzugefügt werden soll. Der Entwickler des Display Miniporttreibers bestimmt den Wert und die Bedeutung von ulpArg2.
  • ulpArg3 [in] Das dritte Argument, das dem Bericht hinzugefügt werden soll. Der Entwickler des Display Miniporttreibers bestimmt den Wert und die Bedeutung von ulpArg3.
  • ulpArg4 [in] Reserviert für die Systemverwendung.

DbgReportSecondaryData

Die DbgReportSecondaryData-Funktion fügt Daten an einen anfänglichen Fehlerbericht an, der zuvor von DbgReportCreateerstellt wurde. Wenn DbgReportSecondaryData erfolgreich ist, wird TRUE-zurückgegeben. Andernfalls wird FALSE-zurückgegeben.

Rufen Sie DbgReportSecondaryData- auf, um daten zu einem ursprünglichen Bericht hinzuzufügen, der durch einen vorherigen Aufruf von DbgReportCreateerstellt wurde. Sie können DbgReportSecondaryData- mehrmals aufrufen, aber bei jedem Aufruf überschreibt die in den Bericht geschriebenen Daten die vom vorherigen Aufruf geschriebenen Daten. Die folgenden Schritte bieten eine gute Strategie zum inkrementellen Hinzufügen von Daten zum Bericht.

  1. Rufen Sie die Daten ab, die am sichersten zu sammeln sind.
  2. Rufen Sie DbgReportSecondaryData- auf, um diese Daten in den Bericht zu schreiben.
  3. Rufen Sie Daten ab, die riskanter sind, um sie zu sammeln.
  4. Rufen Sie DbgReportSecondaryData- auf, um die ursprünglichen sicheren Daten zusammen mit den neu gesammelten riskanten Daten in den Bericht zu schreiben. Sie müssen sowohl die sicheren als auch die riskanten Daten in diesen Aufruf einschließen, da die von diesem Aufruf geschriebenen Daten die Daten überschreiben, die vom ersten Aufruf an DbgReportSecondaryDatageschrieben wurden.
  5. Rufen Sie weiterhin DbgReportSecondaryData-auf, und erhöhen Sie die Daten jedes Mal, bis Sie keine weiteren Daten hinzufügen müssen.

Wenn Sie mit dem Hinzufügen von Daten zum Bericht fertig sind, schließen Sie den Bericht, indem Sie DbgReportComplete-aufrufen. Wenn der Computer nicht mehr reagiert, bevor Sie DbgReportCompleteaufrufen, werden die Daten, die dem Bericht durch den letzten erfolgreichen Aufruf von DbgReportSecondaryData gespeichert und dann an Microsoft gesendet, wenn der Computer neu gestartet wird.

DbgReportSecondaryData-Parameter

  • hReport [in, out] Ein Handle an den Fehlerbericht, an den Daten angefügt werden. Der Display-Miniporttreiber hat dieses Handle zuvor durch Aufrufen von DbgReportCreate erhalten.
  • pvData [in] Einen Zeiger auf einen Puffer, der die daten enthält, die dem Bericht hinzugefügt werden sollen.
  • ulDataSize [in] Die Größe der Daten, die dem Bericht hinzugefügt werden sollen, in Byte. Der Wert dieses Parameters muss kleiner oder gleich DXGK_DEBUG_REPORT_MAX_SIZE sein.

DbgReportComplete

Die DbgReportComplete--Funktion schließt einen Fehlerbericht und gibt alle dem Bericht zugeordneten Ressourcen frei.

DbgReportComplete erstellt einen Eintrag im Systemereignisprotokoll und zeigt ein Dialogfeld an, das den Benutzer über den Fehler und die Möglichkeit informiert, einen Fehlerbericht an Microsoft hochzuladen.

DbgReportComplete-Parameter

  • hReport Ein Zeiger auf eine VIDEO_DEBUG_REPORT Struktur, die ein Handle für den fehlerbericht enthält, der geschlossen werden soll. Der Display-Miniporttreiber hat dieses Handle zuvor durch Aufrufen DbgReportCreateabgerufen.

Anforderungen

Anforderung Wert
mindestens unterstützte Client- Windows XP SP2
mindestens unterstützte Server- Windows Server 2003 SP1
Header- video.h (video.h einschließen)

Siehe auch

INTERFACE-

VideoPortQueryServices-