25#define WIN32_NO_STATUS
34#include "wine/condrv.h"
68 RtlReleasePath( load_path );
110 while (*
p && *
p !=
' ' && *
p !=
'\t') *
pos++ = *
p++;
117 if (!first_space) first_space =
pos;
118 if (!(*
pos++ = *
p++))
break;
125 else if (first_space)
169 cur_dir = newdirW.
Buffer + 4;
180 if (RtlCreateProcessParametersEx( &
params, &imageW,
NULL, cur_dir ? &curdirW :
NULL,
202 if (!
params->ConsoleHandle)
params->ConsoleHandle = CONSOLE_HANDLE_ALLOC;
266 PS_CREATE_INFO create_info;
268 PS_ATTRIBUTE_LIST *
attr = (PS_ATTRIBUTE_LIST *)
buffer;
279 attr->Attributes[
pos].Attribute = PS_ATTRIBUTE_IMAGE_NAME;
284 attr->Attributes[
pos].Attribute = PS_ATTRIBUTE_CLIENT_ID;
285 attr->Attributes[
pos].Size =
sizeof(
info->ClientId);
289 attr->Attributes[
pos].Attribute = PS_ATTRIBUTE_IMAGE_INFO;
290 attr->Attributes[
pos].Size =
sizeof(
info->ImageInformation);
291 attr->Attributes[
pos].ValuePtr = &
info->ImageInformation;
296 attr->Attributes[
pos].Attribute = PS_ATTRIBUTE_PARENT_PROCESS;
304 attr->Attributes[
pos].Attribute = PS_ATTRIBUTE_HANDLE_LIST;
312 attr->Attributes[
pos].Attribute = PS_ATTRIBUTE_TOKEN;
320 attr->Attributes[
pos].Attribute = PS_ATTRIBUTE_DEBUG_PORT;
328 attr->Attributes[
pos].Attribute = PS_ATTRIBUTE_JOB_LIST;
336 attr->Attributes[
pos].Attribute = PS_ATTRIBUTE_MACHINE_TYPE;
348 &process_attr, &thread_attr, process_flags,
350 &create_info,
attr );
367 L"C:\\windows\\syswow64\\winevdm.exe" :
368 L"C:\\windows\\system32\\winevdm.exe");
380 winevdm,
params->ImagePathName.Buffer,
params->CommandLine.Buffer );
383 status =
create_nt_process(
token,
debug,
psa, tsa,
flags,
params,
info, 0, 0,
NULL,
NULL );
403 lstrcpyW( comspec,
L"C:\\windows\\system32\\cmd.exe" );
412 status =
create_nt_process(
token,
debug,
psa, tsa,
flags,
params,
info, 0, 0,
NULL,
NULL );
476 STARTUPINFOEXW
infoW;
492 infoW.lpAttributeList = ((STARTUPINFOEXW *)startup_info)->lpAttributeList;
517 WCHAR *
p, *tidy_cmdline = cmd_line;
529 if (new_token)
FIXME(
"No support for returning created process token\n" );
533 if (!cmd_line || !cmd_line[0])
563 info->dwProcessId =
info->dwThreadId = 0;
587 switch(
attrs->attrs[
i].attr)
591 TRACE(
"PROC_THREAD_ATTRIBUTE_PARENT_PROCESS parent %p.\n",
parent);
598 case PROC_THREAD_ATTRIBUTE_EXTENDED_FLAGS:
599 FIXME(
"PROC_THREAD_ATTRIBUTE_EXTENDED_FLAGS %lx.\n", *(
ULONG *)
attrs->attrs[
i].value);
602 handle_list = &
attrs->attrs[
i];
603 TRACE(
"PROC_THREAD_ATTRIBUTE_HANDLE_LIST handle count %Iu.\n",
attrs->attrs[
i].size /
sizeof(
HANDLE));
605 case PROC_THREAD_ATTRIBUTE_PSEUDOCONSOLE:
608 TRACE(
"PROC_THREAD_ATTRIBUTE_PSEUDOCONSOLE %p reference %p\n",
613 case PROC_THREAD_ATTRIBUTE_JOB_LIST:
614 job_list = &attrs->
attrs[
i];
615 TRACE(
"PROC_THREAD_ATTRIBUTE_JOB_LIST handle count %Iu.\n",
618 case PROC_THREAD_ATTRIBUTE_MACHINE_TYPE:
620 TRACE(
"PROC_THREAD_ATTRIBUTE_MACHINE %x.\n",
machine );
623 FIXME(
"Unsupported attribute %#Ix.\n", attrs->
attrs[
i].attr);
646 nt_flags,
params, &rtl_info );
655 nt_flags,
params, &rtl_info );
661 nt_flags,
params, &rtl_info );
673 TRACE(
"started process pid %04lx tid %04lx\n",
info->dwProcessId,
info->dwThreadId );
718 case ProcessMemoryPriority:
720 case ProcessPowerThrottling:
722 case ProcessLeapSecondInfo:
804 OBJECT_HANDLE_FLAG_INFORMATION
info;
830 switch (
pbi.BasePriority)
883 return pbi.UniqueProcessId;
931 create->dwLowDateTime =
time.CreateTime.u.LowPart;
932 create->dwHighDateTime =
time.CreateTime.u.HighPart;
933 exit->dwLowDateTime =
time.ExitTime.u.LowPart;
934 exit->dwHighDateTime =
time.ExitTime.u.HighPart;
937 user->dwLowDateTime =
time.UserTime.u.LowPart;
938 user->dwHighDateTime =
time.UserTime.u.HighPart;
974 if (minset) *minset = 32*1024*1024;
975 if (maxset) *maxset = 32*1024*1024;
1007 return RtlIsProcessorFeaturePresent(
feature );
1040 case ProcessMachineTypeInfo:
1042 PROCESS_MACHINE_INFORMATION *
mi =
data;
1043 SYSTEM_SUPPORTED_PROCESSOR_ARCHITECTURES_INFORMATION machines[8];
1054 machines,
sizeof(machines),
NULL );
1057 for (
i = 0; machines[
i].Machine;
i++)
1061 mi->ProcessMachine = machines[
i].Machine;
1063 mi->MachineAttributes = 0;
1065 mi->MachineAttributes |= KernelEnabled;
1067 mi->MachineAttributes |= UserEnabled;
1068 if (machines[
i].WoW64Container)
1069 mi->MachineAttributes |= Wow64Container;
1097 attr.RootDirectory = 0;
1101 attr.SecurityQualityOfService =
NULL;
1104 cid.UniqueThread = 0;
1136 PROCESS_CYCLE_TIME_INFORMATION
time;
1141 *cycle =
time.AccumulatedCycles;
1173 OBJECT_HANDLE_FLAG_INFORMATION
info;
1355 info->cb =
sizeof(*info);
1365 info->dwFillAttribute =
params->dwFillAttribute;
1368 info->cbReserved2 =
params->RuntimeInfo.MaximumLength;
1369 info->lpReserved2 =
params->RuntimeInfo.MaximumLength ? (
void *)
params->RuntimeInfo.Buffer :
NULL;
1428 if (prev) *prev = *
ptr;
1453 DWORD count_neededW;
1454 DWORD count_neededA = 0;
1467 if (
count > count_neededA)
1476 if (count_neededA >=
count)
1477 return count_neededA + 1;
1478 return count_neededA;
1558 const char *
p =
env;
1784 case PROC_THREAD_ATTRIBUTE_EXTENDED_FLAGS:
1793 case PROC_THREAD_ATTRIBUTE_CHILD_PROCESS_POLICY:
1796 case PROC_THREAD_ATTRIBUTE_MITIGATION_POLICY:
1800 case PROC_THREAD_ATTRIBUTE_PSEUDOCONSOLE:
1803 case PROC_THREAD_ATTRIBUTE_JOB_LIST:
1806 case PROC_THREAD_ATTRIBUTE_MACHINE_TYPE:
NTSTATUS NtQueryObject(IN HANDLE Handle, IN OBJECT_INFO_CLASS ObjectInformationClass, OUT PVOID ObjectInformation, IN ULONG ObjectInformationLength, OUT PULONG ReturnLength)
ACPI_SIZE strlen(const char *String)
static void startup(void)
WINBASEAPI _Check_return_ _Out_ AppPolicyProcessTerminationMethod * policy
#define WINE_DEFAULT_DEBUG_CHANNEL(t)
static const WCHAR nameW[]
void user(int argc, const char *argv[])
PVOID NTAPI RtlAllocateHeap(IN PVOID HeapHandle, IN ULONG Flags, IN SIZE_T Size)
BOOLEAN NTAPI RtlFreeHeap(IN PVOID HeapHandle, IN ULONG Flags, IN PVOID HeapBase)
@ ProcessBasicInformation
@ ProcessWow64Information
#define STATUS_INVALID_HANDLE
static LPCWSTR LPCWSTR LPCWSTR env
NTSTATUS NTAPI DbgUiConnectToDbg(VOID)
HANDLE NTAPI DbgUiGetThreadDebugObject(VOID)
#define ERROR_NOT_ENOUGH_MEMORY
#define ERROR_INSUFFICIENT_BUFFER
BOOL WINAPI DECLSPEC_HOTPATCH CreateProcessAsUserW(_In_opt_ HANDLE hToken, _In_opt_ LPCWSTR lpApplicationName, _Inout_opt_ LPWSTR lpCommandLine, _In_opt_ LPSECURITY_ATTRIBUTES lpProcessAttributes, _In_opt_ LPSECURITY_ATTRIBUTES lpThreadAttributes, _In_ BOOL bInheritHandles, _In_ DWORD dwCreationFlags, _In_opt_ LPVOID lpEnvironment, _In_opt_ LPCWSTR lpCurrentDirectory, _In_ LPSTARTUPINFOW lpStartupInfo, _Out_ LPPROCESS_INFORMATION lpProcessInformation)
static __inline BOOL set_ntstatus(NTSTATUS status)
#define ERROR_CALL_NOT_IMPLEMENTED
#define ERROR_INVALID_PARAMETER
#define GetEnvironmentVariableW(x, y, z)
#define INVALID_HANDLE_VALUE
#define GetCurrentProcess()
#define ERROR_NOT_SUPPORTED
#define HeapFree(x, y, z)
#define ERROR_INVALID_HANDLE
#define WideCharToMultiByte
#define GetEnvironmentVariableA(x, y, z)
#define MultiByteToWideChar
static void cleanup(void)
static const WCHAR valueW[]
DWORD WINAPI ExpandEnvironmentStringsW(IN LPCWSTR lpSrc, IN LPWSTR lpDst, IN DWORD nSize)
DWORD WINAPI GetFileAttributesW(LPCWSTR lpFileName)
DWORD WINAPI SearchPathW(IN LPCWSTR lpPath OPTIONAL, IN LPCWSTR lpFileName, IN LPCWSTR lpExtension OPTIONAL, IN DWORD nBufferLength, OUT LPWSTR lpBuffer, OUT LPWSTR *lpFilePart OPTIONAL)
DWORD WINAPI GetLongPathNameW(IN LPCWSTR lpszShortPath, OUT LPWSTR lpszLongPath, IN DWORD cchBuffer)
DWORD WINAPI GetFullPathNameW(IN LPCWSTR lpFileName, IN DWORD nBufferLength, OUT LPWSTR lpBuffer, OUT LPWSTR *lpFilePart)
BOOL WINAPI TerminateProcess(IN HANDLE hProcess, IN UINT uExitCode)
HANDLE WINAPI OpenProcess(IN DWORD dwDesiredAccess, IN BOOL bInheritHandle, IN DWORD dwProcessId)
WCHAR * file_name_AtoW(LPCSTR name, BOOL alloc)
UINT WINAPI DECLSPEC_HOTPATCH GetErrorMode(void)
BOOL WINAPI DECLSPEC_HOTPATCH SetEnvironmentStringsW(WCHAR *env)
static WCHAR * command_lineW
BOOL WINAPI DECLSPEC_HOTPATCH SetEnvironmentVariableA(LPCSTR name, LPCSTR value)
BOOL WINAPI DECLSPEC_HOTPATCH GetProcessWorkingSetSizeEx(HANDLE process, SIZE_T *minset, SIZE_T *maxset, DWORD *flags)
BOOL WINAPI BaseFlushAppcompatCache(void)
BOOL WINAPI DECLSPEC_HOTPATCH ProcessIdToSessionId(DWORD pid, DWORD *id)
HRESULT WINAPI GetApplicationRestartSettings(HANDLE process, WCHAR *cmdline, DWORD *size, DWORD *flags)
void WINAPI DECLSPEC_HOTPATCH GetStartupInfoW(STARTUPINFOW *info)
BOOL WINAPI DECLSPEC_HOTPATCH GetHandleInformation(HANDLE handle, DWORD *flags)
BOOL WINAPI DECLSPEC_HOTPATCH GetProcessTimes(HANDLE process, FILETIME *create, FILETIME *exit, FILETIME *kernel, FILETIME *user)
HANDLE WINAPI kernelbase_GetCurrentProcess(void)
BOOL WINAPI DECLSPEC_HOTPATCH SetProcessGroupAffinity(HANDLE process, const GROUP_AFFINITY *new, GROUP_AFFINITY *old)
DWORD WINAPI DECLSPEC_HOTPATCH GetProcessVersion(DWORD pid)
UINT WINAPI DECLSPEC_HOTPATCH SetErrorMode(UINT mode)
BOOL WINAPI DECLSPEC_HOTPATCH CreateProcessInternalA(HANDLE token, const char *app_name, char *cmd_line, SECURITY_ATTRIBUTES *process_attr, SECURITY_ATTRIBUTES *thread_attr, BOOL inherit, DWORD flags, void *env, const char *cur_dir, STARTUPINFOA *startup_info, PROCESS_INFORMATION *info, HANDLE *new_token)
BOOL WINAPI SetProcessPriorityBoost(HANDLE process, BOOL disable)
BOOL WINAPI DECLSPEC_HOTPATCH CompareObjectHandles(HANDLE first, HANDLE second)
DWORD WINAPI DECLSPEC_HOTPATCH ExpandEnvironmentStringsA(LPCSTR src, LPSTR dst, DWORD count)
BOOL WINAPI DECLSPEC_HOTPATCH IsProcessInJob(HANDLE process, HANDLE job, BOOL *result)
BOOL WINAPI DECLSPEC_HOTPATCH CreateProcessInternalW(HANDLE token, const WCHAR *app_name, WCHAR *cmd_line, SECURITY_ATTRIBUTES *process_attr, SECURITY_ATTRIBUTES *thread_attr, BOOL inherit, DWORD flags, void *env, const WCHAR *cur_dir, STARTUPINFOW *startup_info, PROCESS_INFORMATION *info, HANDLE *new_token)
BOOL WINAPI GetProcessInformation(HANDLE process, PROCESS_INFORMATION_CLASS info_class, void *data, DWORD size)
BOOL WINAPI DECLSPEC_HOTPATCH GetProcessPriorityBoost(HANDLE process, PBOOL disable)
BOOL WINAPI GetProcessMitigationPolicy(HANDLE process, PROCESS_MITIGATION_POLICY policy, void *buffer, SIZE_T length)
HANDLE WINAPI DECLSPEC_HOTPATCH GetStdHandle(DWORD std_handle)
BOOL WINAPI SetProcessInformation(HANDLE process, PROCESS_INFORMATION_CLASS info_class, void *info, DWORD size)
static DWORD validate_proc_thread_attribute(DWORD_PTR attr, SIZE_T size)
DWORD WINAPI DECLSPEC_HOTPATCH GetPriorityClass(HANDLE process)
static NTSTATUS create_cmd_process(HANDLE token, HANDLE debug, SECURITY_ATTRIBUTES *psa, SECURITY_ATTRIBUTES *tsa, DWORD flags, RTL_USER_PROCESS_PARAMETERS *params, RTL_USER_PROCESS_INFORMATION *info)
BOOL WINAPI DECLSPEC_HOTPATCH SetHandleInformation(HANDLE handle, DWORD mask, DWORD flags)
static DWORD shutdown_flags
BOOL WINAPI DECLSPEC_HOTPATCH SetPriorityClass(HANDLE process, DWORD class)
BOOL WINAPI DECLSPEC_HOTPATCH SetStdHandleEx(DWORD std_handle, HANDLE handle, HANDLE *prev)
BOOL WINAPI DECLSPEC_HOTPATCH FreeEnvironmentStringsW(LPWSTR ptr)
BOOL WINAPI DECLSPEC_HOTPATCH SetProcessShutdownParameters(DWORD level, DWORD flags)
BOOL WINAPI DECLSPEC_HOTPATCH CreateProcessA(const char *app_name, char *cmd_line, SECURITY_ATTRIBUTES *process_attr, SECURITY_ATTRIBUTES *thread_attr, BOOL inherit, DWORD flags, void *env, const char *cur_dir, STARTUPINFOA *startup_info, PROCESS_INFORMATION *info)
LPWSTR WINAPI DECLSPEC_HOTPATCH GetEnvironmentStringsW(void)
BOOL WINAPI DECLSPEC_HOTPATCH GetProcessShutdownParameters(LPDWORD level, LPDWORD flags)
BOOL WINAPI DECLSPEC_HOTPATCH DuplicateHandle(HANDLE source_process, HANDLE source, HANDLE dest_process, HANDLE *dest, DWORD access, BOOL inherit, DWORD options)
BOOL WINAPI SetProcessMitigationPolicy(PROCESS_MITIGATION_POLICY policy, void *buffer, SIZE_T length)
DWORD WINAPI kernelbase_GetCurrentProcessId(void)
BOOL WINAPI DECLSPEC_HOTPATCH GetProcessGroupAffinity(HANDLE process, USHORT *count, USHORT *array)
BOOL WINAPI DECLSPEC_HOTPATCH IsProcessorFeaturePresent(DWORD feature)
HANDLE WINAPI kernelbase_GetProcessHeap(void)
LPSTR WINAPI DECLSPEC_HOTPATCH GetEnvironmentStringsA(void)
static DWORD shutdown_priority
BOOL WINAPI DECLSPEC_HOTPATCH GetExitCodeProcess(HANDLE process, LPDWORD exit_code)
void WINAPI DECLSPEC_HOTPATCH DeleteProcThreadAttributeList(struct _PROC_THREAD_ATTRIBUTE_LIST *list)
static SIZE_T get_env_length(const WCHAR *env)
static char * command_lineA
BOOL WINAPI DECLSPEC_HOTPATCH SetEnvironmentStringsA(char *env)
BOOL WINAPI DECLSPEC_HOTPATCH CreateProcessAsUserA(HANDLE token, const char *app_name, char *cmd_line, SECURITY_ATTRIBUTES *process_attr, SECURITY_ATTRIBUTES *thread_attr, BOOL inherit, DWORD flags, void *env, const char *cur_dir, STARTUPINFOA *startup_info, PROCESS_INFORMATION *info)
LPWSTR WINAPI GetCommandLineW(void)
LPSTR WINAPI GetCommandLineA(void)
BOOL WINAPI DECLSPEC_HOTPATCH GetProcessHandleCount(HANDLE process, DWORD *count)
void init_startup_info(RTL_USER_PROCESS_PARAMETERS *params)
static NTSTATUS create_nt_process(HANDLE token, HANDLE debug, SECURITY_ATTRIBUTES *psa, SECURITY_ATTRIBUTES *tsa, DWORD process_flags, RTL_USER_PROCESS_PARAMETERS *params, RTL_USER_PROCESS_INFORMATION *info, HANDLE parent, USHORT machine, const struct proc_thread_attr *handle_list, const struct proc_thread_attr *job_list)
static NTSTATUS create_vdm_process(HANDLE token, HANDLE debug, SECURITY_ATTRIBUTES *psa, SECURITY_ATTRIBUTES *tsa, DWORD flags, RTL_USER_PROCESS_PARAMETERS *params, RTL_USER_PROCESS_INFORMATION *info)
BOOL WINAPI DECLSPEC_HOTPATCH SetProcessAffinityUpdateMode(HANDLE process, DWORD flags)
static RTL_USER_PROCESS_PARAMETERS * create_process_params(const WCHAR *filename, const WCHAR *cmdline, const WCHAR *cur_dir, void *env, DWORD flags, const STARTUPINFOW *startup)
BOOL WINAPI DECLSPEC_HOTPATCH SetStdHandle(DWORD std_handle, HANDLE handle)
BOOL WINAPI DECLSPEC_HOTPATCH QueryProcessCycleTime(HANDLE process, ULONG64 *cycle)
BOOL WINAPI DECLSPEC_HOTPATCH IsWow64Process2(HANDLE process, USHORT *machine, USHORT *native_machine)
BOOL WINAPI DECLSPEC_HOTPATCH SetProcessWorkingSetSizeEx(HANDLE process, SIZE_T minset, SIZE_T maxset, DWORD flags)
BOOL WINAPI DECLSPEC_HOTPATCH CreateProcessW(const WCHAR *app_name, WCHAR *cmd_line, SECURITY_ATTRIBUTES *process_attr, SECURITY_ATTRIBUTES *thread_attr, BOOL inherit, DWORD flags, void *env, const WCHAR *cur_dir, STARTUPINFOW *startup_info, PROCESS_INFORMATION *info)
UINT WINAPI DECLSPEC_HOTPATCH SetHandleCount(UINT count)
BOOL WINAPI DECLSPEC_HOTPATCH SetEnvironmentVariableW(LPCWSTR name, LPCWSTR value)
BOOL WINAPI DECLSPEC_HOTPATCH UpdateProcThreadAttribute(struct _PROC_THREAD_ATTRIBUTE_LIST *list, DWORD flags, DWORD_PTR attr, void *value, SIZE_T size, void *prev_ret, SIZE_T *size_ret)
static BOOL find_exe_file(const WCHAR *name, WCHAR *buffer, DWORD buflen)
BOOL WINAPI DECLSPEC_HOTPATCH InitializeProcThreadAttributeList(struct _PROC_THREAD_ATTRIBUTE_LIST *list, DWORD count, DWORD flags, SIZE_T *size)
DWORD WINAPI GetVersion(void)
static const WCHAR desktopW[]
#define InterlockedExchangePointer(Target, Value)
_Must_inspect_result_ _In_ PLARGE_INTEGER _In_ PLARGE_INTEGER _In_ ULONG _In_ PFILE_OBJECT _In_ PVOID Process
GLuint GLuint GLsizei count
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
GLenum const GLfloat * params
GLuint GLsizei GLsizei * length
GLuint GLint GLboolean GLint GLenum access
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat token
static const WCHAR titleW[]
_CRTIMP size_t __cdecl wcslen(_In_z_ const wchar_t *_Str)
#define PROCESS_CREATE_FLAGS_BREAKAWAY
#define PROCESS_QUERY_INFORMATION
#define PROCESS_CREATE_FLAGS_INHERIT_HANDLES
#define PROCESS_CREATE_FLAGS_NO_DEBUG_INHERIT
NTSYSAPI void WINAPI RtlReleasePebLock(void)
#define PROCESS_PRIOCLASS_REALTIME
#define PROCESS_PRIOCLASS_ABOVE_NORMAL
NTSYSAPI NTSTATUS WINAPI NtQuerySystemInformationEx(SYSTEM_INFORMATION_CLASS, void *, ULONG, void *, ULONG, ULONG *)
NTSYSAPI void WINAPI RtlAcquirePebLock(void)
#define PROCESS_PRIOCLASS_NORMAL
NTSYSAPI NTSTATUS WINAPI RtlExpandEnvironmentStrings_U(PCWSTR, const UNICODE_STRING *, UNICODE_STRING *, ULONG *)
#define PROCESS_PRIOCLASS_HIGH
#define PROCESS_PRIOCLASS_IDLE
@ ProcessSessionInformation
@ ProcessImageInformation
@ ProcessDefaultHardErrorMode
#define PROCESS_PRIOCLASS_BELOW_NORMAL
NTSYSAPI PEB *WINAPI RtlGetCurrentPeb(void)
NTSYSAPI NTSTATUS WINAPI RtlDosPathNameToNtPathName_U_WithStatus(PCWSTR, PUNICODE_STRING, PWSTR *, CURDIR *)
#define THREAD_CREATE_FLAGS_CREATE_SUSPENDED
enum _PROCESSINFOCLASS PROCESS_INFORMATION_CLASS
NTSYSAPI void WINAPI RtlSetCurrentEnvironment(PWSTR, PWSTR *)
#define PROCESS_PARAMS_FLAG_NORMALIZED
#define QUOTA_LIMITS_HARDWS_MIN_DISABLE
#define QUOTA_LIMITS_HARDWS_MAX_DISABLE
static const SecPkgInfoW infoW
static const BOOL is_win64
#define memcpy(s1, s2, n)
#define ERROR_FILE_NOT_FOUND
#define PROCESS_QUERY_LIMITED_INFORMATION
#define eq(received, expected, label, type)
static const char machine[]
static const struct access_res create[16]
static PIO_STATUS_BLOCK void ULONG FS_INFORMATION_CLASS info_class
#define InitializeObjectAttributes(p, n, a, r, s)
INTERNETFEATURELIST feature
static SCRIPT_CACHE SCRIPT_ANALYSIS * psa
NTSYSAPI NTSTATUS NTAPI RtlDestroyProcessParameters(_In_ PRTL_USER_PROCESS_PARAMETERS ProcessParameters)
NTSYSAPI NTSTATUS NTAPI RtlSetEnvironmentVariable(_In_z_ PWSTR *Environment, _In_ PUNICODE_STRING Name, _In_ PUNICODE_STRING Value)
NTSYSAPI NTSTATUS NTAPI RtlCreateEnvironment(_In_ BOOLEAN Inherit, _Out_ PWSTR *Environment)
NTSYSAPI VOID NTAPI RtlDestroyEnvironment(_In_ PWSTR Environment)
NTSYSAPI BOOLEAN NTAPI RtlCreateUnicodeStringFromAsciiz(_Out_ PUNICODE_STRING Destination, _In_ PCSZ Source)
NTSYSAPI PRTL_USER_PROCESS_PARAMETERS NTAPI RtlNormalizeProcessParams(_In_ PRTL_USER_PROCESS_PARAMETERS ProcessParameters)
NTSYSAPI NTSTATUS NTAPI RtlQueryEnvironmentVariable_U(_In_opt_ PWSTR Environment, _In_ PCUNICODE_STRING Name, _Out_ PUNICODE_STRING Value)
NTSYSAPI BOOLEAN NTAPI RtlDosPathNameToNtPathName_U(_In_opt_z_ PCWSTR DosPathName, _Out_ PUNICODE_STRING NtPathName, _Out_opt_ PCWSTR *NtFileNamePart, _Out_opt_ PRTL_RELATIVE_NAME_U DirectoryInfo)
#define THREAD_ALL_ACCESS
NTSYSAPI NTSTATUS NTAPI RtlUnicodeStringToAnsiString(PANSI_STRING DestinationString, PUNICODE_STRING SourceString, BOOLEAN AllocateDestinationString)
#define PROCESS_ALL_ACCESS
NTSYSAPI VOID NTAPI RtlInitUnicodeString(PUNICODE_STRING DestinationString, PCWSTR SourceString)
NTSTATUS NTAPI NtTerminateProcess(HANDLE ProcessHandle, LONG ExitStatus)
#define FILE_SHARE_DELETE
NTSTATUS NTAPI NtClose(IN HANDLE Handle)
#define FILE_ATTRIBUTE_DIRECTORY
NTSYSAPI VOID NTAPI RtlFreeUnicodeString(PUNICODE_STRING UnicodeString)
#define UNICODE_STRING_MAX_CHARS
NTSTATUS NTAPI NtIsProcessInJob(IN HANDLE ProcessHandle, IN HANDLE JobHandle OPTIONAL)
NTSTATUS NTAPI NtOpenProcess(OUT PHANDLE ProcessHandle, IN ACCESS_MASK DesiredAccess, IN POBJECT_ATTRIBUTES ObjectAttributes, IN PCLIENT_ID ClientId)
NTSTATUS NTAPI NtSetInformationProcess(IN HANDLE ProcessHandle, IN PROCESSINFOCLASS ProcessInformationClass, IN PVOID ProcessInformation, IN ULONG ProcessInformationLength)
NTSTATUS NTAPI NtQueryInformationProcess(_In_ HANDLE ProcessHandle, _In_ PROCESSINFOCLASS ProcessInformationClass, _Out_ PVOID ProcessInformation, _In_ ULONG ProcessInformationLength, _Out_opt_ PULONG ReturnLength)
NTSTATUS NTAPI NtResumeThread(IN HANDLE ThreadHandle, OUT PULONG SuspendCount OPTIONAL)
#define STATUS_INVALID_IMAGE_WIN_16
#define STATUS_INVALID_IMAGE_NE_FORMAT
#define STATUS_PROCESS_IN_JOB
#define STATUS_PROCESS_NOT_IN_JOB
#define STATUS_INVALID_IMAGE_NOT_MZ
#define STATUS_INVALID_IMAGE_PROTECT
NTSTATUS NTAPI NtDuplicateObject(IN HANDLE SourceProcessHandle, IN HANDLE SourceHandle, IN HANDLE TargetProcessHandle OPTIONAL, OUT PHANDLE TargetHandle OPTIONAL, IN ACCESS_MASK DesiredAccess, IN ULONG HandleAttributes, IN ULONG Options)
NTSTATUS NTAPI NtSetInformationObject(IN HANDLE ObjectHandle, IN OBJECT_INFORMATION_CLASS ObjectInformationClass, IN PVOID ObjectInformation, IN ULONG Length)
#define offsetof(TYPE, MEMBER)
#define DECLSPEC_HOTPATCH
#define STATUS_BUFFER_TOO_SMALL
PRTL_USER_PROCESS_PARAMETERS ProcessParameters
struct proc_thread_attr attrs[1]
LPVOID lpSecurityDescriptor
#define FIELD_OFFSET(t, f)
#define STATUS_NOT_A_DIRECTORY
#define STATUS_OBJECT_PATH_NOT_FOUND
struct _OBJECT_ATTRIBUTES OBJECT_ATTRIBUTES
#define INVALID_FILE_ATTRIBUTES
_Must_inspect_result_ _In_ WDFDMAENABLER _In_ _In_opt_ PWDF_OBJECT_ATTRIBUTES Attributes
static UINT WPARAM LPARAM BOOL ansi
#define NORMAL_PRIORITY_CLASS
#define STD_OUTPUT_HANDLE
#define CREATE_BREAKAWAY_FROM_JOB
#define REALTIME_PRIORITY_CLASS
#define HANDLE_FLAG_PROTECT_FROM_CLOSE
#define BELOW_NORMAL_PRIORITY_CLASS
#define CREATE_UNICODE_ENVIRONMENT
#define HIGH_PRIORITY_CLASS
#define HANDLE_FLAG_INHERIT
DWORD WINAPI GetCurrentProcessId(void)
#define PROC_THREAD_ATTRIBUTE_NUMBER
#define CREATE_DEFAULT_ERROR_MODE
#define CREATE_NEW_PROCESS_GROUP
#define PROC_THREAD_ATTRIBUTE_PARENT_PROCESS
#define EXTENDED_STARTUPINFO_PRESENT
#define DEBUG_ONLY_THIS_PROCESS
#define PROC_THREAD_ATTRIBUTE_HANDLE_LIST
#define STARTF_USESTDHANDLES
#define IDLE_PRIORITY_CLASS
#define CREATE_NEW_CONSOLE
#define ABOVE_NORMAL_PRIORITY_CLASS
#define PROC_THREAD_ATTRIBUTE_IDEAL_PROCESSOR
_Inout_ PERBANDINFO * pbi
_In_ ULONG_PTR _In_ ULONG _Out_ ULONG_PTR * pid
#define ERROR_OBJECT_NAME_EXISTS
#define ERROR_GEN_FAILURE
#define ERROR_ENVVAR_NOT_FOUND
_Out_ PCLIENT_ID ClientId