Fonction IoRaiseInformationalHardError (ntddk.h)
La routine IoRaiseInformationalHardError envoie une boîte de dialogue à l’utilisateur, un avertissement concernant une erreur d’E/S d’appareil qui indique la raison de l’échec d’une demande d’E/S utilisateur.
Syntaxe
BOOLEAN IoRaiseInformationalHardError(
[in] NTSTATUS ErrorStatus,
[in, optional] PUNICODE_STRING String,
[in, optional] PKTHREAD Thread
);
Paramètres
[in] ErrorStatus
Code de status 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 de status 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 String 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 retournée
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, si une allocation de pool a échoué, si un trop grand nombre de boîtes de dialogue sont déjà mises en file d’attente ou si une boîte de dialogue équivalente est déjà en attente d’une réponse de l’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 des chaînes d’événements définies par le pilote à l’utilisateur.
IoRaiseInformationalHardError se comporte comme suit :
- Si la valeur ErrorStatus fournie par l’appelant n’est pas définie dans le fichier d’en-tête Ntstatus.h, la boîte de dialogue affiche toujours le texte « Erreur matérielle 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 dans 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 a la valeur NULL ou s’il spécifie un thread qui s’exécute 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.
À compter de Windows Vista, si la routine est appelée à partir d’un thread dans la session 0 (c’est-à-dire à partir d’un thread système), aucune boîte de dialogue n’apparaît lorsque la routine réussit et retourne TRUE.
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Disponible à partir de Windows 2000. |
Plateforme cible | Universal |
En-tête | ntddk.h (incluez Ntddk.h) |
Bibliothèque | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | <=APC_LEVEL |
Règles de conformité DDI | HwStorPortProhibitedDDIs(storport), IrqlIoApcLte(wdm) |