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