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