PRB: IoRaiseInformationalHardError Does Not Behave as Expected

ID: Q152201


The information in this article applies to:


SYMPTOMS

IoRaiseInformationalHardError is currently described in the documentation as:


   VOID
      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.


CAUSE

IoRaiseInformationalHardError does not behave as expected for driver writers. Many writers attempt to pass in a driver-defined ErrorStatus and/or String that is expected to be displayed in the popup. This is not the case. The API's actual behavior is as follows:


RESOLUTION

Driver writers can use the Event Log APIs to communicate driver-defined event strings to the user. See section 16.6, Error Logging and NTSTATUS Values, in the Kernel-mode Driver Design Guide, and the sample in %DDK%\src\general\errorlog for more information on this technique.


STATUS

This behavior is by design.

Additional query words: 3.51 4.00


Keywords          : kbprg NTDDKKMode 
Version           : 3.51 4.0
Platform          : NT WINDOWS 
Issue type        : kbprb 

Last Reviewed: March 4, 1999