VIDEO_PORT_DEBUG_REPORT_INTERFACE Struktur (video.h)

Die VIDEO_PORT_DEBUG_REPORT_INTERFACE-Struktur enthält Zeiger auf die Debugberichtsfunktionen, 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;

Member

Size

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

Version

Gibt die Version der Schnittstelle an, die vom Videoporttreiber zurückgegeben wird. 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 Schnittstellendereferenzierungsfunktion, 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)

Hinweise

Der Video-Miniporttreiber stellt die Elemente Größe und Version dieser Struktur bereit und ruft dann VideoPortQueryServices auf, das die verbleibenden Member initialisiert.

Wenn ihr Video-Miniporttreiber einen Fehler erkennt und dann wiederhergestellt wird, können Sie einen Fehlerbericht erstellen, der später für das 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 ersten Bericht zu erstellen.
  2. Fügen Sie dann dem Bericht Daten hinzu, indem Sie einen oder mehrere Aufrufe von DbgReportSecondaryData ausführen.
  3. Wenn Sie das Hinzufügen von Daten zum Bericht abgeschlossen haben, rufen Sie DbgReportComplete auf.

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 DbgReportCreate bereitgestellt. Das vierte Argument im Bericht wird vom Betriebssystem bereitgestellt und gibt die Anzahl der Berichte an, die seit dem Starten des Computers generiert wurden. Wenn der Wert von ulpArg4 beispielsweise 5 ist, bedeutet dies, dass vier vorherige Fehlerberichte vom Anzeigeminiporttreiber seit dem letzten Start des Computers generiert wurden. Nur der fünfte Bericht wird gespeichert, da jeder Bericht den vorherigen bericht überschreibt.

Die VIDEO_DEBUG_REPORT Struktur, die von DbgReportCreate zurückgegeben und anschließend an DbgReportSecondaryData und DbgReportComplete übergeben wird, ist undurchsichtig. Versuchen Sie nicht, direkt auf die Member zuzugreifen.

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

DbgReportErstellen

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.

DbgReportErstellen von Parametern

  • HwDeviceHandle [in] Ein Handle für einen Kontextblock, der einer Grafikkarte zugeordnet ist. Der Display-Miniporttreiber hat dieses Handle in seiner DxgkDdiAddDevice-Funktion erstellt. Dieser Parameter kann NULL sein.
  • ulCode [in] Ein 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 Anzeigeminiporttreibers bestimmt den Wert und die Bedeutung von ulpArg1.
  • ulpArg2 [in] Das zweite Argument, das dem Bericht hinzugefügt werden soll. Der Entwickler des Anzeigeminiporttreibers bestimmt den Wert und die Bedeutung von ulpArg2.
  • ulpArg3 [in] Das dritte Argument, das dem Bericht hinzugefügt werden soll. Der Entwickler des Anzeigeminiporttreibers bestimmt den Wert und die Bedeutung von ulpArg3.
  • ulpArg4 [in] Reserviert für die Systemverwendung.

DbgReportSecondaryData

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

Rufen Sie DbgReportSecondaryData auf, um einem anfänglichen Bericht Daten hinzuzufügen, der durch einen vorherigen Aufruf von DbgReportCreate erstellt wurde. Sie können DbgReportSecondaryData mehrmals aufrufen, aber bei jedem Aufruf überschreiben die in den Bericht geschriebenen Daten die vom vorherigen Aufruf geschriebenen Daten. Die folgenden Schritte bieten eine gute Strategie für das inkrementelle 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. Abrufen von Daten, die riskanter zu sammeln sind.
  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 einbeziehen, da die von diesem Aufruf geschriebenen Daten die Daten überschreiben, die vom ersten Aufruf von DbgReportSecondaryData geschrieben wurden.
  5. Fahren Sie mit dem Aufrufen von DbgReportSecondaryData fort, und verbessern Sie die Daten jedes Mal, bis Sie keine weiteren Daten mehr hinzufügen können.

Wenn Sie das Hinzufügen von Daten zum Bericht abgeschlossen haben, schließen Sie den Bericht, indem Sie DbgReportComplete aufrufen. Wenn der Computer nicht mehr reagiert, bevor Sie DbgReportComplete aufrufen, werden die Dem Bericht durch den letzten erfolgreichen Aufruf von DbgReportSecondaryData hinzugefügten Daten gespeichert und dann an Microsoft gesendet, wenn der Computer neu gestartet wird.

DbgReportSecondaryData-Parameter

  • hReport [in, out] Ein Handle für den Fehlerbericht, an den Daten angefügt werden. Der Anzeige-Miniporttreiber hat dieses Handle zuvor durch Aufrufen von DbgReportCreate abgerufen.
  • pvData [in] Ein 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 Bytes. 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 ressourcen frei, die dem Bericht zugeordnet sind.

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 zu schließenden Fehlerbericht enthält. Der Anzeige-Miniporttreiber hat dieses Handle zuvor durch Aufrufen von DbgReportCreate abgerufen.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows XP SP2
Unterstützte Mindestversion (Server) Windows Server 2003 SP1
Kopfzeile video.h (Video.h einschließen)

Weitere Informationen

SCHNITTSTELLE

VideoPortQueryServices