Compartilhar via


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

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

Sintaxe

DXGKDDI_COLLECTDBGINFO2 DxgkddiCollectdbginfo2;

NTSTATUS DxgkddiCollectdbginfo2(
  IN_CONST_HANDLE hAdapter,
  INOUT_PDXGKARG_COLLECTDBGINFO2 pCollectDbgInfo2
)
{...}

Parâmetros

hAdapter

[in] 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.

pCollectDbgInfo2

[entrada/saída] Um ponteiro para uma estrutura DXGKARG_COLLECTDBGINFO2 que contém informações para o relatório de depuração.

Retornar valor

DxgkDdiCollectDbgInfo2 retorna um dos seguintes valores:

Código de retorno Descrição
STATUS_SUCCESS DxgkDdiCollectDbgInfo2 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 DxgkDdiCollectDbgInfo2 ao relatório de depuração.
STATUS_NO_MEMORY DxgkDdiCollectDbgInfo2 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 DxgkDdiCollectDbgInfo2 do KMD sempre que o sistema operacional está prestes a gerar um relatório de depuração relacionado ao driver. DxgkDdiCollectDbgInfo2 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 DxgkDdiCollectDbgInfo2 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.

DxgkDdiCollectDbgInfo2 recebe informações mais detalhadas sobre a causa raiz da TDR do que DxgkDdiCollectDbgInfo . O KMD pode salvar o estado relevante para a parte da GPU responsável pelo TDR.

  • Um driver WDDM 3.2 não é necessário para implementar DxgkddiCollectDbgInfo2, nesse caso, o sistema operacional chama DxgkddiCollectDbgInfo.

O KMD deve coletar informações de depuração. Quando DxgkDdiCollectDbgInfo2 é chamado, o driver recebe um código marcar de bugs em pCollectDbgInfo2-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 para o buffer para o qual pCollectDbgInfo2-pBuffer> aponta. O número máximo de bytes de informações que o driver pode copiar é especificado por pCollectDbgInfo2-BufferSize>.

DxgkDdiCollectDbgInfo geralmente é executado em um IRQL indefinido. No entanto, se pCollectDbgInfo2-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 DxgkDdiCollectDbgInfo2 seja paginável, executado em IRQL = PASSIVE_LEVEL e dê suporte ao nível zero de sincronização.

Para obter mais informações, consulte Melhorias de depuração de TDR.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 11, versão 24H2 (WDDM 3.2)
Cabeçalho d3dkmddi.h
IRQL PASSIVE_LEVEL (consulte comentários)

Confira também

DXGKARG_COLLECTDBGINFO2

DxgkDdiCollectDbgInfo