Something went wrong. Try again.
Reactos
Something went wrong. Try again.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376//// process.h//// Copyright (c) Microsoft Corporation. All rights reserved.//// This file declares the process control functionality (e.g., the exec and// spawn families of functions).//#pragma once#ifndef _INC_PROCESS // include guard for 3rd party interop#define _INC_PROCESS
#include <corecrt.h>#include <corecrt_startup.h>#include <corecrt_wprocess.h>
#pragma warning(push)#pragma warning(disable: _UCRT_DISABLED_WARNINGS)_UCRT_DISABLE_CLANG_WARNINGS
_CRT_BEGIN_C_HEADER
// Flag values for the _spawn family of functions#define _P_WAIT 0#define _P_NOWAIT 1#define _OLD_P_OVERLAY 2#define _P_NOWAITO 3#define _P_DETACH 4#define _P_OVERLAY 2
// Action codes for _cwait(). The action code argument to _cwait() is ignored on// Win32. The parameter only exists so that we do not break existing code.#define _WAIT_CHILD 0#define _WAIT_GRANDCHILD 1
#if _CRT_FUNCTIONS_REQUIRED
_ACRTIMP __declspec(noreturn) void __cdecl exit(_In_ int _Code); _ACRTIMP __declspec(noreturn) void __cdecl _exit(_In_ int _Code); _ACRTIMP __declspec(noreturn) void __cdecl _Exit(_In_ int _Code); _ACRTIMP __declspec(noreturn) void __cdecl quick_exit(_In_ int _Code); _ACRTIMP __declspec(noreturn) void __cdecl abort(void);
_DCRTIMP int __cdecl system(_In_opt_z_ char const* _Command);
_ACRTIMP void __cdecl _cexit(void); _ACRTIMP void __cdecl _c_exit(void);
typedef void (__stdcall *_tls_callback_type)(void *, unsigned long, void *); _ACRTIMP void __cdecl _register_thread_local_exe_atexit_callback(_In_ _tls_callback_type _Callback);
#endif // _CRT_FUNCTIONS_REQUIRED
// Declare DLL notification (initialization/termination) routines. The preferred// method is for the CRT client to define DllMain(), which will automatically be// called by the DLL entry point defined by the CRT. If the CRT client wants to// define the DLL entry point, the client entry point must call _CRT_INIT on all// types of notifications, as the very first thing on attach notifications and as// the very last thing on detach notifications.#ifdef _DECL_DLLMAIN
int __stdcall DllMain( _In_ void* _DllHandle, _In_ unsigned long _Reason, _In_opt_ void* _Reserved );
int __stdcall _CRT_INIT( _In_ void* _DllHandle, _In_ unsigned long _Reason, _In_opt_ void* _Reserved );
extern int (__stdcall* const _pRawDllMain)(void*, unsigned long, void*);
#endif
typedef void (__cdecl* _beginthread_proc_type )(void*);typedef unsigned (__stdcall* _beginthreadex_proc_type)(void*);
_ACRTIMP uintptr_t __cdecl _beginthread( _In_ _beginthread_proc_type _StartAddress, _In_ unsigned _StackSize, _In_opt_ void* _ArgList );
_ACRTIMP void __cdecl _endthread(void);
_Success_(return != 0)_ACRTIMP uintptr_t __cdecl _beginthreadex( _In_opt_ void* _Security, _In_ unsigned _StackSize, _In_ _beginthreadex_proc_type _StartAddress, _In_opt_ void* _ArgList, _In_ unsigned _InitFlag, _Out_opt_ unsigned* _ThrdAddr );
_ACRTIMP void __cdecl _endthreadex( _In_ unsigned _ReturnCode );
#ifdef _CRT_USE_WINAPI_FAMILY_DESKTOP_APP
_ACRTIMP int __cdecl _getpid(void);
_DCRTIMP intptr_t __cdecl _cwait( _Out_opt_ int* _TermStat, _In_ intptr_t _ProcHandle, _In_ int _Action );
_DCRTIMP intptr_t __cdecl _execl( _In_z_ char const* _FileName, _In_z_ char const* _Arguments, ...);
_DCRTIMP intptr_t __cdecl _execle( _In_z_ char const* _FileName, _In_z_ char const* _Arguments, ...);
_DCRTIMP intptr_t __cdecl _execlp( _In_z_ char const* _FileName, _In_z_ char const* _Arguments, ...);
_DCRTIMP intptr_t __cdecl _execlpe( _In_z_ char const* _FileName, _In_z_ char const* _Arguments, ...);
_DCRTIMP intptr_t __cdecl _execv( _In_z_ char const* _FileName, _In_z_ char const* const* _Arguments );
_DCRTIMP intptr_t __cdecl _execve( _In_z_ char const* _FileName, _In_z_ char const* const* _Arguments, _In_opt_z_ char const* const* _Environment );
_DCRTIMP intptr_t __cdecl _execvp( _In_z_ char const* _FileName, _In_z_ char const* const* _Arguments );
_DCRTIMP intptr_t __cdecl _execvpe( _In_z_ char const* _FileName, _In_z_ char const* const* _Arguments, _In_opt_z_ char const* const* _Environment );
_DCRTIMP intptr_t __cdecl _spawnl( _In_ int _Mode, _In_z_ char const* _FileName, _In_z_ char const* _Arguments, ...);
_DCRTIMP intptr_t __cdecl _spawnle( _In_ int _Mode, _In_z_ char const* _FileName, _In_z_ char const* _Arguments, ...);
_DCRTIMP intptr_t __cdecl _spawnlp( _In_ int _Mode, _In_z_ char const* _FileName, _In_z_ char const* _Arguments, ...);
_DCRTIMP intptr_t __cdecl _spawnlpe( _In_ int _Mode, _In_z_ char const* _FileName, _In_z_ char const* _Arguments, ...);
_DCRTIMP intptr_t __cdecl _spawnv( _In_ int _Mode, _In_z_ char const* _FileName, _In_z_ char const* const* _Arguments );
_DCRTIMP intptr_t __cdecl _spawnve( _In_ int _Mode, _In_z_ char const* _FileName, _In_z_ char const* const* _Arguments, _In_opt_z_ char const* const* _Environment );
_DCRTIMP intptr_t __cdecl _spawnvp( _In_ int _Mode, _In_z_ char const* _FileName, _In_z_ char const* const* _Arguments );
_DCRTIMP intptr_t __cdecl _spawnvpe( _In_ int _Mode, _In_z_ char const* _FileName, _In_z_ char const* const* _Arguments, _In_opt_z_ char const* const* _Environment );
_CRT_OBSOLETE(LoadLibrary) _DCRTIMP intptr_t __cdecl _loaddll( _In_z_ char* _FileName );
_CRT_OBSOLETE(FreeLibrary) _DCRTIMP int __cdecl _unloaddll( _In_ intptr_t _Handle );
typedef int (__cdecl* _GetDllProcAddrProcType)(void);
_CRT_OBSOLETE(GetProcAddress) _DCRTIMP _GetDllProcAddrProcType __cdecl _getdllprocaddr( _In_ intptr_t _Handle, _In_opt_z_ char* _ProcedureName, _In_ intptr_t _Ordinal );
#endif // _CRT_USE_WINAPI_FAMILY_DESKTOP_APP
#if defined(_CRT_INTERNAL_NONSTDC_NAMES) && _CRT_INTERNAL_NONSTDC_NAMES
#define P_WAIT _P_WAIT #define P_NOWAIT _P_NOWAIT #define P_OVERLAY _P_OVERLAY #define OLD_P_OVERLAY _OLD_P_OVERLAY #define P_NOWAITO _P_NOWAITO #define P_DETACH _P_DETACH #define WAIT_CHILD _WAIT_CHILD #define WAIT_GRANDCHILD _WAIT_GRANDCHILD
#ifdef _CRT_USE_WINAPI_FAMILY_DESKTOP_APP
_CRT_NONSTDC_DEPRECATE(_cwait) _DCRTIMP intptr_t __cdecl cwait( _Out_opt_ int* _TermStat, _In_ intptr_t _ProcHandle, _In_ int _Action );
_CRT_NONSTDC_DEPRECATE(_execl) _DCRTIMP intptr_t __cdecl execl( _In_z_ char const* _FileName, _In_z_ char const* _Arguments, ...);
_CRT_NONSTDC_DEPRECATE(_execle) _DCRTIMP intptr_t __cdecl execle( _In_z_ char const* _FileName, _In_z_ char const* _Arguments, ...);
_CRT_NONSTDC_DEPRECATE(_execlp) _DCRTIMP intptr_t __cdecl execlp( _In_z_ char const* _FileName, _In_z_ char const* _Arguments, ...);
_CRT_NONSTDC_DEPRECATE(_execlpe) _DCRTIMP intptr_t __cdecl execlpe( _In_z_ char const* _FileName, _In_z_ char const* _Arguments, ...);
_CRT_NONSTDC_DEPRECATE(_execv) _DCRTIMP intptr_t __cdecl execv( _In_z_ char const* _FileName, _In_z_ char const* const* _Arguments );
_CRT_NONSTDC_DEPRECATE(_execve) _DCRTIMP intptr_t __cdecl execve( _In_z_ char const* _FileName, _In_z_ char const* const* _Arguments, _In_opt_z_ char const* const* _Environment );
_CRT_NONSTDC_DEPRECATE(_execvp) _DCRTIMP intptr_t __cdecl execvp( _In_z_ char const* _FileName, _In_z_ char const* const* _Arguments );
_CRT_NONSTDC_DEPRECATE(_execvpe) _DCRTIMP intptr_t __cdecl execvpe( _In_z_ char const* _FileName, _In_z_ char const* const* _Arguments, _In_opt_z_ char const* const* _Environment );
_CRT_NONSTDC_DEPRECATE(_spawnl) _DCRTIMP intptr_t __cdecl spawnl( _In_ int _Mode, _In_z_ char const* _FileName, _In_z_ char const* _Arguments, ...);
_CRT_NONSTDC_DEPRECATE(_spawnle) _DCRTIMP intptr_t __cdecl spawnle( _In_ int _Mode, _In_z_ char const* _FileName, _In_z_ char const* _Arguments, ...);
_CRT_NONSTDC_DEPRECATE(_spawnlp) _DCRTIMP intptr_t __cdecl spawnlp( _In_ int _Mode, _In_z_ char const* _FileName, _In_z_ char const* _Arguments, ...);
_CRT_NONSTDC_DEPRECATE(_spawnlpe) _DCRTIMP intptr_t __cdecl spawnlpe( _In_ int _Mode, _In_z_ char const* _FileName, _In_z_ char const* _Arguments, ...);
_CRT_NONSTDC_DEPRECATE(_spawnv) _DCRTIMP intptr_t __cdecl spawnv( _In_ int _Mode, _In_z_ char const* _FileName, _In_z_ char const* const* _Arguments);
_CRT_NONSTDC_DEPRECATE(_spawnve) _DCRTIMP intptr_t __cdecl spawnve( _In_ int _Mode, _In_z_ char const* _FileName, _In_z_ char const* const* _Arguments, _In_opt_z_ char const* const* _Environment );
_CRT_NONSTDC_DEPRECATE(_spawnvp) _DCRTIMP intptr_t __cdecl spawnvp( _In_ int _Mode, _In_z_ char const* _FileName, _In_z_ char const* const* _Arguments );
_CRT_NONSTDC_DEPRECATE(_spawnvpe) _DCRTIMP intptr_t __cdecl spawnvpe( _In_ int _Mode, _In_z_ char const* _FileName, _In_z_ char const* const* _Arguments, _In_opt_z_ char const* const* _Environment );
_CRT_NONSTDC_DEPRECATE(_getpid) _ACRTIMP int __cdecl getpid(void);
#endif // _CRT_USE_WINAPI_FAMILY_DESKTOP_APP
#endif // _CRT_INTERNAL_NONSTDC_NAMES
_CRT_END_C_HEADER_UCRT_RESTORE_CLANG_WARNINGS#pragma warning(pop) // _UCRT_DISABLED_WARNINGS#endif // _INC_PROCESS