Función IoRaiseInformationalHardError (ntddk.h)

La rutina IoRaiseInformationalHardError envía un cuadro de diálogo al usuario, advertencia sobre un error de E/S del dispositivo que indica por qué se produjo un error en una solicitud de E/S de usuario.

Sintaxis

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

Parámetros

[in] ErrorStatus

Código de estado de error (IO_ERR_XXX).

[in, optional] String

Puntero a una cadena Unicode, que proporciona información adicional sobre el error. Algunos códigos de estado NT requieren un parámetro de cadena, como un nombre de archivo o directorio. Si el valor ErrorStatus especificado no requiere un parámetro de cadena, establezca String en NULL.

[in, optional] Thread

Puntero al subproceso cuyo IRP no se pudo realizar debido al error especificado por el parámetro ErrorStatus .

Valor devuelto

IoRaiseInformationalHardError devuelve TRUE si el cuadro de diálogo se puso en cola correctamente. Esta rutina devuelve FALSE si los cuadros de diálogo están deshabilitados para Subproceso, error de asignación de grupo, demasiados cuadros de diálogo ya están en cola o un cuadro de diálogo equivalente ya está pendiente de una respuesta de usuario (por ejemplo, esperando que el usuario presione RETURN).

Comentarios

IoRaiseInformationalHardError toma un valor de error NT definido por el sistema como parámetro. Los escritores de controladores pueden usar las API de registro de eventos para comunicar las cadenas de eventos definidas por el controlador al usuario.

IoRaiseInformationalHardError se comporta de la siguiente manera:

  • Si el valor errorStatus proporcionado por el autor de la llamada no está definido en el archivo de encabezado Ntstatus.h, el cuadro de diálogo siempre muestra el texto "Error duro desconocido", independientemente del valor del parámetro String .
  • Si el valor errorStatus proporcionado por el autor de la llamada se define en el archivo de encabezado Ntstatus.h, el cuadro de diálogo muestra el texto de la cadena MessageText correspondiente en Ntstatus.h, independientemente del valor del parámetro String .
  • Si el parámetro Thread especifica un subproceso que se ejecuta en el contexto de una aplicación, el texto que se muestra en el cuadro de diálogo es "ApplicationName.exe - Error del sistema".
  • Si el parámetro Thread es NULL o si especifica un subproceso que se ejecuta en un contexto arbitrario del sistema, el texto que se muestra en el cuadro de diálogo es "System Process - System Error". Además, si el valor ErrorStatus se define en Ntstatus.h, la cadena MessageText correspondiente se escribe en el registro de eventos.
Si una llamada anterior a la rutina IoSetThreadHardErrorMode deshabilitaba los errores duros del subproceso especificado, IoRaiseInformationalHardError devuelve FALSE.

A partir de Windows Vista, si se llama a la rutina desde un subproceso en la sesión 0 (es decir, desde cualquier subproceso del sistema), no aparece ningún cuadro de diálogo cuando la rutina se realiza correctamente y devuelve TRUE.

Requisitos

Requisito Value
Cliente mínimo compatible Disponible a partir de Windows 2000.
Plataforma de destino Universal
Encabezado ntddk.h (incluya Ntddk.h)
Library NtosKrnl.lib
Archivo DLL NtosKrnl.exe
IRQL <=APC_LEVEL
Reglas de cumplimiento de DDI HwStorPortProhibitedDIs(storport), IrqlIoApcLte(wdm)

Consulte también

IoSetHardErrorOrVerifyDevice

IoSetThreadHardErrorMode

PsGetCurrentThread