estructura de VIDEO_PORT_DEBUG_REPORT_INTERFACE (video.h)

La estructura VIDEO_PORT_DEBUG_REPORT_INTERFACE contiene punteros a las funciones Debug Report, que implementa el controlador de puerto de vídeo.

Sintaxis

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;

Miembros

Size

Especifica el tamaño, en bytes, de esta estructura.

Version

Especifica la versión de la interfaz devuelta por el controlador de puerto de vídeo. Actualmente, la única versión admitida es VIDEO_PORT_DEBUG_REPORT_INTERFACE_VERSION_1.

Context

Puntero a un contexto proporcionado por el controlador de puerto de vídeo.

InterfaceReference

Puntero a una función de referencia de interfaz implementada por el controlador de puerto de vídeo.

InterfaceDereference

Puntero a una función de desreferencia de interfaz implementada por el controlador de puerto de vídeo.

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)

Comentarios

El controlador de minipuerto de vídeo proporciona los miembros Size y Version de esta estructura y, a continuación, llama a VideoPortQueryServices, que inicializa sus miembros restantes.

Si el controlador de minipuerto de vídeo detecta un error y, a continuación, se recupera de él, puede crear un informe de errores que se pueda usar más adelante para la depuración mediante una llamada a los miembros de la función de devolución de llamada de VIDEO_PORT_DEBUG_REPORT_INTERFACE de la siguiente manera:

  1. En primer lugar, llame a DbgReportCreate para crear un informe inicial.
  2. A continuación, agregue datos al informe realizando una o varias llamadas a DbgReportSecondaryData.
  3. Cuando haya terminado de agregar datos al informe, llame a DbgReportComplete.

El informe de errores se guarda en un archivo y se programa para enviarse a Microsoft cuando se reinicia el equipo. El informe de errores contiene un código de error y cuatro argumentos. El autor de la llamada de DbgReportCreate proporciona el código de error y los tres primeros argumentos. El sistema operativo proporciona el cuarto argumento del informe e indica el número de informes generados desde que se inició el equipo. Por ejemplo, si el valor de ulpArg4 es 5, esto significa que el controlador de miniporte de pantalla generó cuatro informes de errores anteriores desde que se inició por última vez el equipo. Solo se guarda el quinto informe porque cada informe sobrescribe el anterior.

La estructura de VIDEO_DEBUG_REPORT devuelta por DbgReportCreate y posteriormente pasada a DbgReportSecondaryData y DbgReportComplete es opaca. No intente acceder directamente a sus miembros.

En las secciones siguientes se describen estas funciones de devolución de llamada con detalle. Estas devoluciones de llamada deben llamarse en IRQL = PASSIVE_LEVEL.

DbgReportCreate

DbgReportCreate crea un informe de error inicial. Crea una entrada en el registro de eventos del sistema y muestra un cuadro de diálogo que informa al usuario del error y presenta la oportunidad de cargar un informe de errores en Microsoft. DbgReportCreate devuelve un puntero a una estructura de VIDEO_DEBUG_REPORT opaca que representa un identificador para el informe de depuración recién creado.

DbgReportCreate Parameters

  • HwDeviceHandle [in] Identificador de un bloque de contexto asociado a un adaptador de pantalla. El controlador de minipuerto de pantalla creó este identificador en su función DxgkDdiAddDevice. Este parámetro puede ser NULL.
  • ulCode [in] Código para el informe de errores. Se admiten los siguientes códigos: THREAD_STUCK_IN_DEVICE_DRIVER VIDEO_DRIVER_DEBUG_REPORT_REQUEST, VIDEO_TDR_FATAL_ERROR y VIDEO_TDR_SUCCESS.
  • ulpArg1 [in] Primer argumento que se va a agregar al informe. El desarrollador del controlador de minipuerto de pantalla determina el valor y el significado de ulpArg1.
  • ulpArg2 [in] Segundo argumento que se va a agregar al informe. El desarrollador del controlador de minipuerto de pantalla determina el valor y el significado de ulpArg2.
  • ulpArg3 [in] Tercer argumento que se va a agregar al informe. El desarrollador del controlador de minipuerto de pantalla determina el valor y el significado de ulpArg3.
  • ulpArg4 [in] Reservado para uso del sistema.

DbgReportSecondaryData

La función DbgReportSecondaryData anexa datos a un informe de error inicial creado anteriormente por DbgReportCreate. Si DbgReportSecondaryData se realiza correctamente, devuelve TRUE. De lo contrario, devuelve FALSE.

Llame a DbgReportSecondaryData para agregar datos a un informe inicial creado por una llamada anterior a DbgReportCreate. Puede llamar a DbgReportSecondaryData varias veces, pero con cada llamada, los datos escritos en el informe sobrescriben los datos escritos por la llamada anterior. Los pasos siguientes proporcionan una buena estrategia para agregar datos de forma incremental al informe.

  1. Obtenga los datos más seguros para recopilar.
  2. Llame a DbgReportSecondaryData para escribir esos datos en el informe.
  3. Obtenga datos que son más peligrosos para recopilar.
  4. Llame a DbgReportSecondaryData para escribir los datos seguros originales junto con los datos de riesgo recién recopilados en el informe. Debe incluir tanto los datos seguros como los de riesgo en esta llamada porque los datos escritos por esta llamada sobrescriben los datos escritos por la primera llamada a DbgReportSecondaryData.
  5. Siga llamando a DbgReportSecondaryData, mejorando los datos cada vez, hasta que no tenga más datos que agregar.

Cuando haya terminado de agregar datos al informe, cierre el informe llamando a DbgReportComplete. Si el equipo deja de responder antes de llamar a DbgReportComplete, los datos agregados al informe por la llamada correcta más reciente a DbgReportSecondaryData se guardan y, a continuación, se envían a Microsoft cuando se reinicia el equipo.

Parámetros dbgReportSecondaryData

  • hReport [in, out] Identificador del informe de errores al que se anexarán los datos. El controlador de minipuerto de pantalla obtuvo anteriormente este identificador llamando a DbgReportCreate.
  • pvData [in] Puntero a un búfer que contiene los datos que se van a agregar al informe.
  • ulDataSize [in] Tamaño, en bytes, de los datos que se van a agregar al informe. El valor de este parámetro debe ser menor o igual que DXGK_DEBUG_REPORT_MAX_SIZE.

DbgReportComplete

La función DbgReportComplete cierra un informe de errores y libera los recursos asociados al informe.

DbgReportComplete crea una entrada en el registro de eventos del sistema y muestra un cuadro de diálogo que informa al usuario del error y la oportunidad de cargar un informe de errores en Microsoft.

Parámetros dbgReportComplete

  • hReport Puntero a una estructura de VIDEO_DEBUG_REPORT que contiene un identificador para el informe de errores que se va a cerrar. El controlador de minipuerto de pantalla obtuvo anteriormente este identificador llamando a DbgReportCreate.

Requisitos

Requisito Value
Cliente mínimo compatible Windows XP SP2
Servidor mínimo compatible Windows Server 2003 SP1
Encabezado video.h (incluya Video.h)

Consulte también

INTERFAZ

VideoPortQueryServices