Funzione IoRaiseInformationalHardError (ntddk.h)

La routine IoRaiseInformationalHardError invia una finestra di dialogo all'utente, avvisando un errore di I/O del dispositivo che indica perché non è riuscita una richiesta di I/O utente.

Sintassi

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

Parametri

[in] ErrorStatus

Codice di stato dell'errore (IO_ERR_XXX).

[in, optional] String

Puntatore a una stringa Unicode, che fornisce informazioni aggiuntive sull'errore. Alcuni codici di stato NT richiedono un parametro stringa, ad esempio un file o un nome di directory. Se il valore ErrorStatus specificato non richiede un parametro stringa, impostare String su NULL.

[in, optional] Thread

Puntatore al thread il cui IRP non è riuscito a causa dell'errore specificato dal parametro ErrorStatus .

Valore restituito

IoRaiseInformationalHardError restituisceTRUE se la finestra di dialogo è stata accodata correttamente. Questa routine restituisce FALSE se le finestre di dialogo sono disabilitate per Thread, un'allocazione del pool non è riuscita, troppe finestre di dialogo sono già accodate o una finestra di dialogo equivalente è già in attesa di una risposta dell'utente, ad esempio in attesa che l'utente premere RETURN.

Commenti

IoRaiseInformationalHardError accetta un valore di errore NT definito dal sistema come parametro. I writer di driver possono usare le API del registro eventi per comunicare stringhe di eventi definite dal driver all'utente.

IoRaiseInformationalHardError si comporta come segue:

  • Se il valore ErrorStatus fornito dal chiamante non è definito nel file di intestazione Ntstatus.h, la finestra di dialogo mostra sempre il testo "Errore rigido sconosciuto", indipendentemente dal valore del parametro String .
  • Se il valore ErrorStatus fornito dal chiamante è definito nel file di intestazione Ntstatus.h, la finestra di dialogo mostra il testo nella stringa MessageText corrispondente in Ntstatus.h, indipendentemente dal valore del parametro String .
  • Se il parametro Thread specifica un thread in esecuzione nel contesto di un'applicazione, il testo visualizzato nella finestra di dialogo è "ApplicationName.exe - Errore di sistema".
  • Se il parametro Thread è NULL o se specifica un thread in esecuzione in un contesto di sistema arbitrario, il testo visualizzato nella finestra di dialogo è "Processo di sistema - Errore di sistema". Inoltre, se il valore ErrorStatus è definito in Ntstatus.h , la stringa MessageText corrispondente viene scritta nel registro eventi.
Se una chiamata precedente alla routine IoSetThreadHardErrorMode disabilitata per il thread specificato, IoRaiseInformationalHardError restituisce FALSE.

A partire da Windows Vista, se la routine viene chiamata da un thread nella sessione 0 ,ovvero da qualsiasi thread di sistema, non viene visualizzata alcuna finestra di dialogo quando la routine riesce e restituisce TRUE.

Requisiti

Requisito Valore
Client minimo supportato Disponibile a partire da Windows 2000.
Piattaforma di destinazione Universale
Intestazione ntddk.h (include Ntddk.h)
Libreria NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <=APC_LEVEL
Regole di conformità DDI HwStorPortProhibitedDDDIs(storport), IrqlIoApcLte(wdm)

Vedi anche

IoSetHardErrorOrVerifyDevice

IoSetThreadHardErrorMode

PsGetCurrentThread