Condividi tramite


Funzione IoRaiseInformationalHardError (ntddk.h)

La routine IoRaiseInformationalHardError invia una finestra di dialogo all'utente, segnalando un errore di I/O del dispositivo che indica il motivo per cui una richiesta di I/O utente non è riuscita.

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 nome di file o 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 restituisce TRUE 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à in coda o una finestra di dialogo equivalente è già in attesa di una risposta dell'utente, ad esempio in attesa che l'utente premi INVIO.

Osservazioni

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 le stringhe di evento definite dal driver all'utente.

IoRaiseInformationalHardError si comporta come segue:

  • Se il chiamante fornito ErrorStatus valore non è definito nel file di intestazione Ntstatus.h, la finestra di dialogo visualizza sempre il testo "Errore hard sconosciuto", indipendentemente dal valore del parametro string.
  • Se il chiamante fornito valore ErrorStatus è definito nel file di intestazione Ntstatus.h, nella finestra di dialogo viene visualizzato 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 al IoSetThreadHardErrorMode routine ha disabilitato gli errori rigidi 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 ha esito positivo e restituisce TRUE.

Fabbisogno

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 HwStorPortProhibitedDDIs(storport), IrqlIoApcLte(wdm)

Vedere anche

IoSetHardErrorOrVerifyDevice

IoSetThreadHardErrorMode

PsGetCurrentThread