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) |