Compartir a través de


DXGKDDI_COLLECTDBGINFO función de devolución de llamada (d3dkmddi.h)

La función DxgkDdiCollectDbgInfo genera información del controlador para un informe de depuración.

Sintaxis

DXGKDDI_COLLECTDBGINFO DxgkddiCollectdbginfo;

NTSTATUS DxgkddiCollectdbginfo(
  [in]     IN_CONST_HANDLE hAdapter,
  [in/out] IN_CONST_PDXGKARG_COLLECTDBGINFO pCollectDbgInfo
)
{...}

Parámetros

[in] hAdapter

Identificador de un bloque de contexto asociado a un adaptador de pantalla. El miniporte de pantalla (KMD) proporcionó anteriormente este identificador a Dxgkrnl en el parámetro de salida MiniportDeviceContext de DxgkDdiAddDevice.

[in/out] pCollectDbgInfo

Puntero a una estructura de DXGKARG_COLLECTDBGINFO que contiene información para el informe de depuración.

Valor devuelto

DxgkDdiCollectDbgInfo devuelve uno de los siguientes valores:

Código devuelto Descripción
STATUS_SUCCESS DxgkDdiCollectDbgInfo genera correctamente la información del controlador de salida para un informe de depuración; O bien, el sistema operativo omitió el contenido del búfer al que pBuffer apunta y no agregó información de DxgkDdiCollectDbgInfo al informe de depuración.
STATUS_NO_MEMORY DxgkDdiCollectDbgInfo no pudo asignar memoria necesaria para que se complete.
STATUS_UNSUCCESSFUL Otro error impedía que el controlador recopilara información de depuración válida.

Comentarios

Dxgkrnl llama a la función DxgkDdiCollectDbgInfo de KMD cada vez que el sistema operativo está a punto de generar un informe de depuración relacionado con el controlador. Es posible que se llame a DxgkDdiCollectDbgInfo inmediatamente antes de que funcione la detección de tiempo de espera y la recuperación (TDR) o inmediatamente antes de las comprobaciones de errores del sistema operativo. Aunque DxgkDdiCollectDbgInfo debe devolver lo más rápido posible, no hay ninguna cantidad máxima de tiempo definida por el sistema que el controlador pueda dedicar en esta función.

KMD debe recopilar información de depuración. Cuando se llama a DxgkDdiCollectDbgInfo, el controlador recibe un código de comprobación de errores en pCollectDbgInfo-Reason> que indica el tipo de información necesaria para el informe de depuración. El controlador copia la información de depuración necesaria en el búfer al que apunta pCollectDbgInfo-pBuffer>. PCollectDbgInfo-BufferSize> especifica el número máximo de bytes de información que el controlador puede copiar.

DxgkDdiCollectDbgInfo se ejecuta generalmente en un IRQL indefinido. Sin embargo, si pCollectDbgInfo-Reason> está establecido en VIDEO_TDR_TIMEOUT_DETECTED (para indicar un restablecimiento de todo el adaptador) o VIDEO_ENGINE_TIMEOUT_DETECTED (disponible a partir de Windows 8 para indicar un restablecimiento de uno o varios nodos dentro de un adaptador físico), el controlador debe asegurarse de que DxgkDdiCollectDbgInfo es paginable, se ejecuta en IRQL = PASSIVE_LEVEL y admite el nivel cero de sincronización.

Requisitos

Requisito Value
Cliente mínimo compatible Windows Vista
Plataforma de destino Escritorio
Encabezado d3dkmddi.h
IRQL PASSIVE_LEVEL (ver comentarios)

Consulte también

DXGKARG_COLLECTDBGINFO

DxgkDdiAddDevice

DxgkDdiResetFromTimeout