_invalid_parameter, _invalid_parameter_noinfo, _invalid_parameter_noinfo_noreturn, _invoke_watson_invalid_parameter, _invalid_parameter_noinfo, _invalid_parameter_noinfo_noreturn, _invoke_watson

Ces fonctions sont utilisées par la bibliothèque Runtime C pour gérer les paramètres non valides transmis aux fonctions de la bibliothèque CRT.These functions are used by the C Runtime Library to handle non-valid parameters passed to CRT Library functions. Votre code peut également utiliser ces fonctions pour prendre en charge la gestion personnalisable ou par défaut des paramètres non valides.Your code may also use these functions to support default or customizable handling of non-valid parameters.

SyntaxeSyntax

extern "C" void __cdecl
_invalid_parameter(
    wchar_t const* const expression,
    wchar_t const* const function_name,
    wchar_t const* const file_name,
    unsigned int   const line_number,
    uintptr_t      const reserved);

extern "C" void __cdecl
_invalid_parameter_noinfo(void);

extern "C" __declspec(noreturn) void __cdecl
_invalid_parameter_noinfo_noreturn(void);

extern "C" __declspec(noreturn) void __cdecl
_invoke_watson(
    wchar_t const* const expression,
    wchar_t const* const function_name,
    wchar_t const* const file_name,
    unsigned int   const line_number,
    uintptr_t      const reserved);

ParamètresParameters

expressionexpression
Chaîne représentant l’expression de paramètre de code source qui n’est pas valide.A string representing the source code parameter expression that is not valid.

function_namefunction_name
Nom de la fonction qui a appelé le gestionnaire.The name of the function that called the handler.

file_namefile_name
Fichier de code source dans lequel le gestionnaire a été appelé.The source code file where the handler was called.

line_numberline_number
Numéro de ligne dans le code source où le gestionnaire a été appelé.The line number in the source code where the handler was called.

reservedreserved
Non utilisé.Unused.

Valeur de retourReturn Value

Ces fonctions ne retournent pas de valeur.These functions do not return a value. Les fonctions _invalid_parameter_noinfo_noreturn et _invoke_watson ne retournent pas à l’appelant et, dans certains cas, _invalid_parameter et _invalid_parameter_noinfo peuvent ne pas être retournés à l’appelant.The _invalid_parameter_noinfo_noreturn and _invoke_watson functions do not return to the caller, and in some cases, _invalid_parameter and _invalid_parameter_noinfo may not return to the caller.

NotesRemarks

Quand des paramètres non valides sont passés aux fonctions de la bibliothèque runtime C, celles-ci appellent un gestionnaire de paramètres non valides, fonction qui peut être spécifiée par le programmeur pour effectuer plusieurs actions.When C runtime library functions are passed non-valid parameters, the library functions call an invalid parameter handler, a function that may be specified by the programmer to do any of several things. Par exemple, il peut signaler le problème à l’utilisateur, écrire dans un journal, marquer un arrêt dans un débogueur, mettre fin au programme ou ne rien faire du tout.For example, it may report the issue to the user, write to a log, break in a debugger, terminate the program, or do nothing at all. Si aucune fonction n’est spécifiée par le programmeur, un gestionnaire par défaut, _invoke_watson, est appelé.If no function is specified by the programmer, a default handler, _invoke_watson, is called.

Par défaut, lorsqu’un paramètre non valide est identifié dans le code de débogage, les fonctions de bibliothèque CRT appellent la fonction _invalid_parameter à l’aide de paramètres détaillés.By default, when a non-valid parameter is identified in debug code, CRT library functions call the function _invalid_parameter using verbose parameters. Dans du code sans débogage, la fonction _invalid_parameter_noinfo est appelée, ce qui appelle la fonction _invalid_parameter à l’aide de paramètres vides.In non-debug code, the _invalid_parameter_noinfo function is called, which calls the _invalid_parameter function using empty parameters. Si la fonction de bibliothèque CRT non déboguée nécessite l’arrêt du programme, la fonction _invalid_parameter_noinfo_noreturn est appelée, ce qui appelle la fonction _invalid_parameter à l’aide de paramètres vides, suivis d’un appel à invoke fonction Watson permettant de forcer l’arrêt d’un programme.If the non-debug CRT library function requires program termination, the _invalid_parameter_noinfo_noreturn function is called, which calls the _invalid_parameter function using empty parameters, followed by a call to the _invoke_watson function to force program termination.

La fonction _invalid_parameter vérifie si un gestionnaire de paramètres non valides défini par l’utilisateur a été défini et, si tel est le cas, l’appelle.The _invalid_parameter function checks whether a user-defined invalid parameter handler was set, and if so, calls it. Par exemple, si un gestionnaire de thread local défini par l’utilisateur a été défini par un appel à set_thread_local_invalid_parameter_handler dans le thread actuel, il est appelé, puis la fonction retourne le contrôle.For example, if a user-defined thread-local handler was set by a call to set_thread_local_invalid_parameter_handler in the current thread, it is called, then the function returns. Sinon, si un gestionnaire de paramètres non valides global défini par l’utilisateur a été défini par un appel à set_invalid_parameter_handler, il est appelé, puis la fonction retourne le contrôle.Otherwise, if a user-defined global invalid parameter handler was set by a call to set_invalid_parameter_handler, it is called, then the function returns. Dans le cas contraire, le gestionnaire par défaut _invoke_watson est appelé.Otherwise, the default handler _invoke_watson is called. Le comportement par défaut de _invoke_watson consiste à mettre fin au programme.The default behavior of _invoke_watson is to terminate the program. Les gestionnaires définis par l’utilisateur peuvent arrêter le programme ou retourner le contrôle.User-defined handlers may terminate or return. Il est recommandé que les gestionnaires définis par l’utilisateur terminent le programme, sauf si la récupération est certaine.We recommend that user-defined handlers terminate the program unless recovery is certain.

Quand le gestionnaire par défaut _invoke_watson est appelé, si le processeur prend en charge une opération __fastfail , il est appelé à l’aide d’un paramètre de FAST_FAIL_INVALID_ARG et le processus se termine.When the default handler _invoke_watson is called, if the processor supports a __fastfail operation, it is invoked using a parameter of FAST_FAIL_INVALID_ARG and the process terminates. Sinon, une exception d’échec rapide est déclenchée, qui peut être interceptée par un débogueur attaché.Otherwise, a fast fail exception is raised, which can be caught by an attached debugger. Si le processus est autorisé à continuer, il est arrêté par un appel à la fonction Windows TerminateProcess à l’aide de l’état de code d’exception STATUS_INVALID_CRUNTIME_PARAMETER.If the process is allowed to continue, it is terminated by a call to the Windows TerminateProcess function using an exception code status of STATUS_INVALID_CRUNTIME_PARAMETER.

Configuration requiseRequirements

FonctionFunction En-tête requisRequired header
_invalid_parameter, _invalid_parameter_noinfo, _invalid_parameter_noinfo_noreturn, _invoke_watson_invalid_parameter, _invalid_parameter_noinfo, _invalid_parameter_noinfo_noreturn, _invoke_watson <corecrt.h><corecrt.h>

Pour plus d'informations sur la compatibilité, voir Compatibilité.For additional compatibility information, see Compatibility.

Voir aussiSee also

Référence alphabétique des fonctionsAlphabetical Function Reference
_get_invalid_parameter_handler, _get_thread_local_invalid_parameter_handler_get_invalid_parameter_handler, _get_thread_local_invalid_parameter_handler
_set_invalid_parameter_handler, _set_thread_local_invalid_parameter_handler_set_invalid_parameter_handler, _set_thread_local_invalid_parameter_handler
Validation de paramètreParameter Validation