Função IoRaiseInformationalHardError (ntddk.h)

A rotina IoRaiseInformationalHardError envia uma caixa de diálogo ao usuário, avisando sobre um erro de E/S do dispositivo que indica por que uma solicitação de E/S do usuário falhou.

Sintaxe

BOOLEAN IoRaiseInformationalHardError(
  [in]           NTSTATUS        ErrorStatus,
  [in, optional] PUNICODE_STRING String,
  [in, optional] PKTHREAD        Thread
);

Parâmetros

[in] ErrorStatus

O erro status código (IO_ERR_XXX).

[in, optional] String

Um ponteiro para uma cadeia de caracteres Unicode, que fornece informações adicionais sobre o erro. Alguns códigos de status NT exigem um parâmetro de cadeia de caracteres, como um nome de arquivo ou diretório. Se o valor errorStatus especificado não exigir um parâmetro de cadeia de caracteres, defina String como NULL.

[in, optional] Thread

Um ponteiro para o thread cujo IRP falhou devido ao erro especificado pelo parâmetro ErrorStatus .

Retornar valor

IoRaiseInformationalHardError retornará TRUE se a caixa de diálogo tiver sido enfileirada com êxito. Essa rotina retornará FALSE se as caixas de diálogo estiverem desabilitadas para Thread, uma alocação de pool falhar, muitas caixas de diálogo já estiverem enfileiradas ou uma caixa de diálogo equivalente já estiver pendente de uma resposta do usuário (como esperar que o usuário pressione RETURN).

Comentários

IoRaiseInformationalHardError usa um valor de erro NT definido pelo sistema como um parâmetro. Os gravadores de driver podem usar as APIs de log de eventos para comunicar cadeias de caracteres de evento definidas pelo driver para o usuário.

IoRaiseInformationalHardError se comporta da seguinte maneira:

  • Se o valor ErrorStatus fornecido pelo chamador não estiver definido no arquivo de cabeçalho Ntstatus.h, a caixa de diálogo sempre mostrará o texto "Erro Rígido Desconhecido", independentemente do valor do parâmetro String .
  • Se o valor ErrorStatus fornecido pelo chamador for definido no arquivo de cabeçalho Ntstatus.h, a caixa de diálogo mostrará o texto na cadeia de caracteres MessageText correspondente em Ntstatus.h, independentemente do valor do parâmetro String .
  • Se o parâmetro Thread especificar um thread em execução no contexto de um aplicativo, o texto mostrado na caixa de diálogo será "ApplicationName.exe – Erro do Sistema".
  • Se o parâmetro Thread for NULL ou se especificar um thread em execução em um contexto arbitrário do sistema, o texto mostrado na caixa de diálogo será "Processo do Sistema – Erro do Sistema". Além disso, se o valor ErrorStatus for definido em Ntstatus.h, a cadeia de caracteres MessageText correspondente será gravada no log de eventos.
Se uma chamada anterior para a rotina IoSetThreadHardErrorMode tiver desabilitado erros rígidos para o thread especificado, IoRaiseInformationalHardError retornará FALSE.

A partir do Windows Vista, se a rotina for chamada de um thread na sessão 0 (ou seja, de qualquer thread do sistema), nenhuma caixa de diálogo será exibida quando a rotina for bem-sucedida e retornar TRUE.

Requisitos

Requisito Valor
Cliente mínimo com suporte Disponível a partir do Windows 2000.
Plataforma de Destino Universal
Cabeçalho ntddk.h (inclua Ntddk.h)
Biblioteca NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <=APC_LEVEL
Regras de conformidade da DDI HwStorPortProhibitedDDIs(storport), IrqlIoApcLte(wdm)

Confira também

IoSetHardErrorOrVerifyDevice

IoSetThreadHardErrorMode

PsGetCurrentThread