Compartilhar via


DXGKDDI_COLLECTDBGINFO função de retorno de chamada (d3dkmddi.h)

A função DxgkDdiCollectDbgInfo gera informações de driver para um relatório de depuração.

Sintaxe

DXGKDDI_COLLECTDBGINFO DxgkddiCollectdbginfo;

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

Parâmetros

[in] hAdapter

Um identificador para um bloco de contexto associado a um adaptador de exibição. O KMD (visor de exibição) forneceu anteriormente esse identificador para Dxgkrnl no parâmetro de saída MiniportDeviceContext de DxgkDdiAddDevice.

[in/out] pCollectDbgInfo

Um ponteiro para uma estrutura DXGKARG_COLLECTDBGINFO que contém informações para o relatório de depuração.

Retornar valor

DxgkDdiCollectDbgInfo retorna um dos seguintes valores:

Código de retorno Descrição
STATUS_SUCCESS DxgkDdiCollectDbgInfo gera informações de driver com êxito para um relatório de depuração; OU, o sistema operacional ignorou o conteúdo no buffer para o qual pBuffer aponta e não adicionou informações de DxgkDdiCollectDbgInfo ao relatório de depuração.
STATUS_NO_MEMORY DxgkDdiCollectDbgInfo não pôde alocar a memória necessária para que ela fosse concluída.
STATUS_UNSUCCESSFUL Outro erro impediu que o driver coletasse informações de depuração válidas.

Comentários

Dxgkrnl chama a função DxgkDdiCollectDbgInfo do KMD sempre que o sistema operacional está prestes a gerar um relatório de depuração relacionado ao driver. DxgkDdiCollectDbgInfo pode ser chamado imediatamente antes do trabalho de TDR (Detecção e Recuperação de Tempo Limite) ou imediatamente antes das verificações de bug do sistema operacional. Embora DxgkDdiCollectDbgInfo deva retornar o mais rápido possível, não há nenhum tempo máximo definido pelo sistema que o driver possa gastar nessa função.

O KMD deve coletar informações de depuração. Quando DxgkDdiCollectDbgInfo é chamado, o driver recebe um código marcar de bugs em pCollectDbgInfo-Reason> que indica o tipo de informação necessário para o relatório de depuração. O driver copia as informações de depuração necessárias para o buffer para o qual pCollectDbgInfo-pBuffer> aponta. O número máximo de bytes de informações que o driver pode copiar é especificado por pCollectDbgInfo-BufferSize>.

DxgkDdiCollectDbgInfo geralmente é executado em um IRQL indefinido. No entanto, se pCollectDbgInfo-Reason> estiver definido como VIDEO_TDR_TIMEOUT_DETECTED (para indicar uma redefinição em todo o adaptador) ou VIDEO_ENGINE_TIMEOUT_DETECTED (disponível começando com Windows 8 para indicar uma redefinição de um ou mais nós dentro de um adaptador físico), o driver deverá garantir que DxgkDdiCollectDbgInfo seja paginável, executado em IRQL = PASSIVE_LEVEL e dê suporte à sincronização de nível zero.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows Vista
Plataforma de Destino Área de Trabalho
Cabeçalho d3dkmddi.h
IRQL PASSIVE_LEVEL (consulte comentários)

Confira também

DXGKARG_COLLECTDBGINFO

DxgkDdiAddDevice

DxgkDdiResetFromTimeout