Partager via


IoRaiseInformationalHardError, fonction (ntddk.h)

La routine IoRaiseInformationalHardError envoie une boîte de dialogue à l’utilisateur, en avertissement concernant une erreur d’E/S d’appareil qui indique pourquoi une demande d’E/S utilisateur a échoué.

Syntaxe

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

Paramètres

[in] ErrorStatus

Code d’état d’erreur (IO_ERR_XXX).

[in, optional] String

Pointeur vers une chaîne Unicode, qui fournit des informations supplémentaires sur l’erreur. Certains codes d’état NT nécessitent un paramètre de chaîne, tel qu’un nom de fichier ou de répertoire. Si la valeur ErrorStatus spécifiée ne nécessite pas de paramètre de chaîne, définissez chaîne sur NULL.

[in, optional] Thread

Pointeur vers le thread dont L’IRP a échoué en raison de l’erreur spécifiée par le paramètre ErrorStatus.

Valeur de retour

IoRaiseInformationalHardError retourne TRUE si la boîte de dialogue a été correctement mise en file d’attente. Cette routine retourne FALSE si les boîtes de dialogue sont désactivées pour thread, une allocation de pool a échoué, un trop grand nombre de boîtes de dialogue sont déjà mises en file d’attente, ou une boîte de dialogue équivalente est déjà en attente d’une réponse utilisateur (par exemple, en attendant que l’utilisateur appuie sur RETOUR).

Remarques

IoRaiseInformationalHardError prend une valeur d’erreur NT définie par le système comme paramètre. Les enregistreurs de pilotes peuvent utiliser les API du journal des événements pour communiquer les chaînes d’événements définies par le pilote à l’utilisateur.

IoRaiseInformationalHardError se comporte comme suit :

  • Si l’appelant ErrorStatus valeur n’est pas définie dans le fichier d’en-tête Ntstatus.h, la boîte de dialogue affiche toujours le texte « Erreur dure inconnue », quelle que soit la valeur du paramètre string .
  • Si la valeur errorStatus fournie par l’appelant est définie dans le fichier d’en-tête Ntstatus.h, la boîte de dialogue affiche le texte de la chaîne MessageText correspondante dans Ntstatus.h, quelle que soit la valeur du paramètre String.
  • Si le paramètre thread spécifie un thread qui s’exécute dans le contexte d’une application, le texte affiché dans la boîte de dialogue est «ApplicationName.exe - Erreur système ».
  • Si le paramètre thread est NULL ou s’il spécifie un thread en cours d’exécution dans un contexte système arbitraire, le texte affiché dans la boîte de dialogue est « Processus système - Erreur système ». En outre, si la valeur ErrorStatus est définie dans Ntstatus.h, la chaîne MessageText correspondante est écrite dans le journal des événements.
Si un appel précédent au IoSetThreadHardErrorMode routine a désactivé les erreurs dures pour le thread spécifié, IoRaiseInformationalHardError retourne FALSE.

À compter de Windows Vista, si la routine est appelée à partir d’un thread dans la session 0 (autrement dit, à partir d’un thread système), aucune boîte de dialogue n’apparaît lorsque la routine réussit et retourne TRUE.

Exigences

Exigence Valeur
client minimum pris en charge Disponible à partir de Windows 2000.
plateforme cible Universel
d’en-tête ntddk.h (include Ntddk.h)
bibliothèque NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <=APC_LEVEL
règles de conformité DDI HwStorPortProhibitedDDIs(storport), IrqlIoApcLte(wdm)

Voir aussi

IoSetHardErrorOrVerifyDevice

IoSetThreadHardErrorMode

psGetCurrentThread