Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
No Windows 10, versão 2004, Windows Hardware Error Architecture (WHEA) inclui uma nova interface (v2). Esta página descreve como registrar como uma fonte de erro e relatar erros.
Adicionando uma fonte de erro
Para registrar com WHEA como uma fonte de erro usando WHEA v2, o driver deve fazer o seguinte:
Especifique uma configuração para o driver de dispositivo instanciando uma estrutura WHEA_ERROR_SOURCE_CONFIGURATION_DEVICE_DRIVER, fornecendo ponteiros para WHEA_ERROR_SOURCE_INITIALIZE_DEVICE_DRIVER e WHEA_ERROR_SOURCE_UNINITIALIZE_DEVICE_DRIVER funções de retorno de chamada de eventos.
Chame WheaAddErrorSourceDeviceDriver, fornecendo a estrutura de configuração. Normalmente, o driver chama essa rotina de DriverEntry.
Para remover uma fonte de erro posteriormente, chame WheaRemoveErrorSourceDeviceDriver.
O WHEA chama a função de retorno de chamada de eventos WHEA_ERROR_SOURCE_INITIALIZE_DEVICE_DRIVER do driver quando a fonte de erro está pronta para relatar erros. O driver recebe um ErrorSourceId como um parâmetro para o retorno de chamada.
Relatando um erro
Para relatar um erro, execute as seguintes etapas em sequência ao mesmo tempo:
Chame WheaCreateHwErrorReportDeviceDriver, fornecendo o ErrorSourceId e, opcionalmente, um DeviceObject para o driver. A rotina retorna um identificador para o erro em andamento.
Para adicionar dados ao erro, chame WheaAddHwErrorReportSectionDeviceDriver, fornecendo o identificador de erro. Essa função adiciona uma única seção ao relatório de erros e configura um buffer de dados fornecido pelo driver. O driver pode chamar essa rotina até MaxSectionsPerReport vezes, conforme especificado em WHEA_ERROR_SOURCE_CONFIGURATION_DEVICE_DRIVER.
Opcionalmente, o driver pode chamar WheaHwErrorReportSetSeverityDeviceDriver para definir a gravidade do erro do pacote e seções. Consulte também WheaHwErrorReportSetSectionNameDeviceDriver, que é uma função auxiliar para atualizar o campo FRUText da estrutura WHEA_ERROR_RECORD_SECTION_DESCRIPTOR.
Copie os dados de erro para o conjunto de buffers.
Chame WheaHwErrorReportSubmitDeviceDriver, fornecendo novamente o identificador de erro. Após essa chamada, os buffers nos conjuntos de buffers não estão disponíveis e o identificador é inválido.
Se ocorrer um erro ou o erro não for mais válido, o driver pode opcionalmente chamar WheaHwErrorReportAbandonDeviceDriver. Neste caso, nenhum relatório é submetido à WHEA.
O driver deve chamar WheaHwErrorReportSubmitDeviceDriver ou WheaHwErrorReportAbandonDeviceDriver em cada identificador criado por WheaCreateHwErrorReportDeviceDriver. Caso contrário, WheaRemoveErrorSourceDeviceDriver pode retornar STATUS_RESOURCE_IN_USE.