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