IoRaiseInformationalHardError

BOOLEAN
IoRaiseInformationalHardError(

IN NTSTATUS ErrorStatus,
IN PUNICODE_STRING String,/* optional */
IN PKTHREAD Thread /* optional */
);

IoRaiseInformationalHardError sends a popup to the user, warning about a device I/O error that indicates why a user I/O request failed.

Parameters

ErrorStatus

Identifies the error status (IO_ERR_XXX).

String

Points to a Unicode string, which provides additional information about the error. Some NT status codes require a string parameter, such as a file or directory name. If the ErrorStatus does not require a parameter, then String is NULL.

Thread

Points to the thread whose IRP was failed due to the error.

Return Value

IoRaiseInformationalHardError returns TRUE if the popup was successfully queued. This routine returns FALSE if popups are disabled for Thread, a pool allocation failed, too many popups are already queued, or an equivalent popup is already pending a user response (such as waiting for the user to press RETURN).

Comments

IoRaiseInformationalHardError takes a system-defined NT error value as a parameter. Driver writers can use the event log APIs to communicate driver-defined event strings to the user.

Callers of IoRaiseInformationalHardError must be running at IRQL < DISPATCH_LEVEL.

See Also

IoSetHardErrorOrVerifyDevice, PsGetCurrentThread