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 miniporto de exibição (KMD) 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.

Valor de retorno

DxgkDdiCollectDbgInfo retorna um dos seguintes valores:

Código de retorno Descrição
STATUS_SUCCESS DxgkDdiCollectDbgInfo informações de driver de saída com êxito para um relatório de depuração; OU, o sistema operacional ignorou o conteúdo no buffer que pBuffer aponta e não adicionou informações de DxgkDdiCollectDbgInfo ao relatório de depuração.
STATUS_NO_MEMORY DxgkDdiCollectDbgInfo não puderam alocar 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.

Observações

Dxgkrnl chama a função DxgkDdiCollectDbgInfo do KMD sempre que o sistema operacional estiver prestes a gerar um relatório de depuração relacionado ao driver. DxgkDdiCollectDbgInfo pode ser chamado imediatamente antes de de trabalho de TDR (Detecção e Recuperação de Tempo Limite) ou imediatamente antes da verificação de bugs do sistema operacional. Embora DxgkDdiCollectDbgInfo deve 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 de verificação de bugs em pCollectDbgInfo->Reason que indica o tipo de informação necessária para o relatório de depuração. O driver copia as informações de depuração necessárias no 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 for definido como VIDEO_TDR_TIMEOUT_DETECTED (para indicar uma redefinição em todo o adaptador) ou VIDEO_ENGINE_TIMEOUT_DETECTED (disponível a partir do 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_LEVELe dá suporte sincronização zero nível.

Requisitos

Requisito Valor
de cliente com suporte mínimo Windows Vista
da Plataforma de Destino Área de trabalho
cabeçalho d3dkmddi.h
IRQL PASSIVE_LEVEL (consulte comentários)

Consulte também

DXGKARG_COLLECTDBGINFO

DxgkDdiAddDevice

DxgkDdiResetFromTimeout