Freigeben über


IoRaiseInformationalHardError-Funktion (ntddk.h)

Die IoRaiseInformationalHardError-Routine sendet ein Dialogfeld an den Benutzer, das vor einem Geräte-E/A-Fehler warnt, der angibt, warum eine Benutzer-E/A-Anforderung fehlgeschlagen ist.

Syntax

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

Parameter

[in] ErrorStatus

Der Fehler status Code (IO_ERR_XXX).

[in, optional] String

Ein Zeiger auf eine Unicode-Zeichenfolge, die zusätzliche Informationen zum Fehler bereitstellt. Einige NT-status-Codes erfordern einen Zeichenfolgenparameter, z. B. einen Datei- oder Verzeichnisnamen. Wenn für den angegebenen ErrorStatus-Wert kein Zeichenfolgenparameter erforderlich ist, legen Sie String auf NULL fest.

[in, optional] Thread

Ein Zeiger auf den Thread, dessen IRP aufgrund des durch den ErrorStatus-Parameter angegebenen Fehlers fehlgeschlagen ist.

Rückgabewert

IoRaiseInformationalHardError gibt TRUE zurück, wenn das Dialogfeld erfolgreich in die Warteschlange gestellt wurde. Diese Routine gibt FALSE zurück, wenn Dialogfelder für Thread deaktiviert sind, eine Poolzuordnung fehlgeschlagen ist, zu viele Dialogfelder bereits in die Warteschlange eingereiht sind oder ein entsprechendes Dialogfeld bereits eine Benutzerantwort aussteht (z. B. darauf warten, dass der Benutzer die EINGABETASTE drückt).

Hinweise

IoRaiseInformationalHardError verwendet einen systemdefinierten NT-Fehlerwert als Parameter. Treiberautoren können die Ereignisprotokoll-APIs verwenden, um dem Benutzer vom Treiber definierte Ereigniszeichenfolgen zu kommunizieren.

IoRaiseInformationalHardError verhält sich wie folgt:

  • Wenn der vom Aufrufer angegebene ErrorStatus-Wert nicht in der Ntstatus.h-Headerdatei definiert ist, wird im Dialogfeld immer der Text "Unbekannter harter Fehler" angezeigt, unabhängig vom Wert des String-Parameters .
  • Wenn der vom Aufrufer angegebene ErrorStatus-Wert in der Ntstatus.h-Headerdatei definiert ist, zeigt das Dialogfeld den Text in der entsprechenden MessageText-Zeichenfolge in Ntstatus.h an, unabhängig vom Wert des String-Parameters .
  • Wenn der Thread-Parameter einen Thread angibt, der im Kontext einer Anwendung ausgeführt wird, lautet der im Dialogfeld angezeigte Text "ApplicationName.exe – Systemfehler".
  • Wenn der Thread-Parameter NULL ist oder wenn er einen Thread angibt, der in einem beliebigen Systemkontext ausgeführt wird, lautet der im Dialogfeld angezeigte Text "Systemprozess – Systemfehler". Wenn der ErrorStatus-Wert in Ntstatus.h definiert ist, wird außerdem die entsprechende MessageText-Zeichenfolge in das Ereignisprotokoll geschrieben.
Wenn ein vorheriger Aufruf der IoSetThreadHardErrorMode-Routine harte Fehler für den angegebenen Thread deaktiviert hat, gibt IoRaiseInformationalHardErrorFALSE zurück.

Wenn die Routine ab Windows Vista von einem Thread in Sitzung 0 (d. h. von einem beliebigen Systemthread) aufgerufen wird, wird kein Dialogfeld angezeigt, wenn die Routine erfolgreich ist und TRUE zurückgibt.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Verfügbar ab Windows 2000.
Zielplattform Universell
Header ntddk.h (include Ntddk.h)
Bibliothek NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <=APC_LEVEL
DDI-Complianceregeln HwStorPortProhibitedDIs(storport), IrqlIoApcLte(wdm)

Weitere Informationen

IoSetHardErrorOrVerifyDevice

IoSetThreadHardErrorMode

PsGetCurrentThread