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