PRB: IoRaiseInformationalHardError Does Not Behave as ExpectedID: Q152201 
  | 
IoRaiseInformationalHardError is currently described in the documentation
as:
   VOID
      IoRaiseInformationalHardError(
         IN NTSTATUS  ErrorStatus,
         IN PUNICODE_STRING  String,      /* optional */ 
         IN PKTHREAD  Thread        /* optional */ 
         ); 
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:
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.
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