ReactOS 0.4.16-dev-747-gbc52d5f
invalid_parameter.cpp File Reference
Include dependency graph for invalid_parameter.cpp:

Go to the source code of this file.

Functions

void __cdecl __acrt_initialize_invalid_parameter_handler (void *const encoded_null)
 
void __cdecl _invalid_parameter_internal (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, __crt_cached_ptd_host &ptd)
 
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)
 
void __cdecl _invalid_parameter_noinfo ()
 
 __declspec (noreturn) void __cdecl _invalid_parameter_noinfo_noreturn()
 
 UNREFERENCED_PARAMETER (function_name)
 
 UNREFERENCED_PARAMETER (file_name)
 
 UNREFERENCED_PARAMETER (line_number)
 
 UNREFERENCED_PARAMETER (reserved)
 
 __fastfail (FAST_FAIL_INVALID_ARG)
 
_invalid_parameter_handler __cdecl _set_invalid_parameter_handler (_invalid_parameter_handler const new_handler)
 
_invalid_parameter_handler __cdecl _get_invalid_parameter_handler ()
 
_invalid_parameter_handler __cdecl _set_thread_local_invalid_parameter_handler (_invalid_parameter_handler const new_handler)
 
_invalid_parameter_handler __cdecl _get_thread_local_invalid_parameter_handler ()
 

Variables

static __crt_state_management::dual_state_global< _invalid_parameter_handler__acrt_invalid_parameter_handler
 
wchar_t const *const function_name
 
wchar_t const *const wchar_t const *const file_name
 
wchar_t const *const wchar_t const *const unsigned int const line_number
 
wchar_t const *const wchar_t const *const unsigned int const uintptr_t const reserved
 

Function Documentation

◆ __acrt_initialize_invalid_parameter_handler()

void __cdecl __acrt_initialize_invalid_parameter_handler ( void *const  encoded_null)

Definition at line 67 of file invalid_parameter.cpp.

68{
69#if defined _CRT_GLOBAL_STATE_ISOLATION
70 const _invalid_parameter_handler encoded_os_iph = __crt_fast_encode_pointer(invalid_parameter_handler_continue);
71#endif
72 const _invalid_parameter_handler iph[] =
73 {
74 reinterpret_cast<_invalid_parameter_handler>(encoded_null)
75#if defined _CRT_GLOBAL_STATE_ISOLATION
76 ,encoded_os_iph
77#endif
78 };
79
80 __acrt_invalid_parameter_handler.initialize_from_array(iph);
81}
void(__cdecl * _invalid_parameter_handler)(const wchar_t *, const wchar_t *, const wchar_t *, unsigned int, uintptr_t)
Definition: stdlib.h:125
static __crt_state_management::dual_state_global< _invalid_parameter_handler > __acrt_invalid_parameter_handler

◆ __declspec()

__declspec ( noreturn  )

Definition at line 136 of file invalid_parameter.cpp.

137{
138 _invalid_parameter(nullptr, nullptr, nullptr, 0, 0);
139 _invoke_watson (nullptr, nullptr, nullptr, 0, 0);
140}
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)

◆ __fastfail()

__fastfail ( FAST_FAIL_INVALID_ARG  )

Referenced by $if(), __declspec(), abort(), and lstrlenW().

◆ _get_invalid_parameter_handler()

_invalid_parameter_handler __cdecl _get_invalid_parameter_handler ( void  )

Definition at line 317 of file invalid_parameter.cpp.

318{
319 return __crt_fast_decode_pointer(__acrt_invalid_parameter_handler.value());
320}

◆ _get_thread_local_invalid_parameter_handler()

_invalid_parameter_handler __cdecl _get_thread_local_invalid_parameter_handler ( void  )

Definition at line 333 of file invalid_parameter.cpp.

334{
336 if (!ptd)
337 {
338 return nullptr;
339 }
340
341 return ptd->_thread_local_iph;
342}
__acrt_ptd *__cdecl __acrt_getptd_noexit(void)
_In_ size_t const _In_ int _In_ bool const _In_ unsigned const _In_ __acrt_rounding_mode const _Inout_ __crt_cached_ptd_host & ptd
Definition: cvt.cpp:355

◆ _invalid_parameter()

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 
)

Definition at line 116 of file invalid_parameter.cpp.

123{
124 __crt_cached_ptd_host ptd;
126}
wchar_t const *const wchar_t const *const unsigned int const uintptr_t const reserved
wchar_t const *const function_name
wchar_t const *const wchar_t const *const file_name
void __cdecl _invalid_parameter_internal(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, __crt_cached_ptd_host &ptd)
wchar_t const *const wchar_t const *const unsigned int const line_number

Referenced by __declspec(), _fsopen(), _invalid_parameter_noinfo(), _tasctime_s(), localtime_s(), and rand_s().

◆ _invalid_parameter_internal()

void __cdecl _invalid_parameter_internal ( 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,
__crt_cached_ptd_host &  ptd 
)

Definition at line 90 of file invalid_parameter.cpp.

98{
99 __acrt_ptd * const raw_ptd = ptd.get_raw_ptd_noexit();
100 if (raw_ptd && raw_ptd->_thread_local_iph)
101 {
103 return;
104 }
105
106 _invalid_parameter_handler const global_handler = __crt_fast_decode_pointer(__acrt_invalid_parameter_handler.value(ptd));
107 if (global_handler)
108 {
109 global_handler(expression, function_name, file_name, line_number, reserved);
110 return;
111 }
112
113 _invoke_watson(expression, function_name, file_name, line_number, reserved);
114}
_invalid_parameter_handler _thread_local_iph

Referenced by _invalid_parameter().

◆ _invalid_parameter_noinfo()

void __cdecl _invalid_parameter_noinfo ( void  )

Definition at line 128 of file invalid_parameter.cpp.

129{
130 _invalid_parameter(nullptr, nullptr, nullptr, 0, 0);
131}

◆ _set_invalid_parameter_handler()

_invalid_parameter_handler __cdecl _set_invalid_parameter_handler ( _invalid_parameter_handler const  new_handler)

Definition at line 310 of file invalid_parameter.cpp.

311{
312 _invalid_parameter_handler const old_handler = __crt_fast_decode_pointer(__acrt_invalid_parameter_handler.value());
313 __acrt_invalid_parameter_handler.value() = __crt_fast_encode_pointer(new_handler);
314 return old_handler;
315}

◆ _set_thread_local_invalid_parameter_handler()

_invalid_parameter_handler __cdecl _set_thread_local_invalid_parameter_handler ( _invalid_parameter_handler const  new_handler)

Definition at line 324 of file invalid_parameter.cpp.

325{
326 __acrt_ptd* const ptd = __acrt_getptd();
327
328 _invalid_parameter_handler const old_handler = ptd->_thread_local_iph;
329 ptd->_thread_local_iph = new_handler;
330 return old_handler;
331}
__acrt_ptd *__cdecl __acrt_getptd(void)

◆ UNREFERENCED_PARAMETER() [1/4]

UNREFERENCED_PARAMETER ( file_name  )

◆ UNREFERENCED_PARAMETER() [2/4]

UNREFERENCED_PARAMETER ( function_name  )

◆ UNREFERENCED_PARAMETER() [3/4]

UNREFERENCED_PARAMETER ( line_number  )

◆ UNREFERENCED_PARAMETER() [4/4]

UNREFERENCED_PARAMETER ( reserved  )

Variable Documentation

◆ __acrt_invalid_parameter_handler

__crt_state_management::dual_state_global<_invalid_parameter_handler> __acrt_invalid_parameter_handler
static

◆ file_name

◆ function_name

◆ line_number

◆ reserved

Initial value:
{
#define UNREFERENCED_PARAMETER(P)
Definition: ntbasedef.h:325

Definition at line 289 of file invalid_parameter.cpp.

Referenced by _invalid_parameter(), and _invalid_parameter_internal().