35#if (NTDDI_VERSION < NTDDI_WIN8)
65 DWORD dwCreationFlags,
78 DPRINT(
"dwCreationFlags %x, lpEnvironment %p, lpCurrentDirectory %p, "
79 "lpStartupInfo %p, lpProcessInformation %p\n",
80 dwCreationFlags, lpEnvironment, lpCurrentDirectory,
81 lpStartupInfo, lpProcessInformation);
84 RtlMoveMemory(&StartupInfo, lpStartupInfo,
sizeof(*lpStartupInfo));
102 if (lpApplicationName)
107 if (lpCurrentDirectory)
141 lpProcessInformation,
181 BOOL bInheritHandles,
182 DWORD dwCreationFlags,
184 LPCSTR lpCurrentDirectory,
199 lpProcessInformation,
212 ANSI_STRING TitleString, ShellString, DesktopString;
226 sizeof(*StartupInfo));
235 StartupInfo->
cb =
sizeof(*StartupInfo);
315 lpStartupInfo->cb = StartupInfo->
cb;
316 lpStartupInfo->lpReserved = StartupInfo->
lpReserved;
317 lpStartupInfo->lpDesktop = StartupInfo->
lpDesktop;
318 lpStartupInfo->lpTitle = StartupInfo->
lpTitle;
319 lpStartupInfo->dwX = StartupInfo->
dwX;
320 lpStartupInfo->dwY = StartupInfo->
dwY;
321 lpStartupInfo->dwXSize = StartupInfo->
dwXSize;
322 lpStartupInfo->dwYSize = StartupInfo->
dwYSize;
326 lpStartupInfo->dwFlags = StartupInfo->
dwFlags;
327 lpStartupInfo->wShowWindow = StartupInfo->
wShowWindow;
328 lpStartupInfo->cbReserved2 = StartupInfo->
cbReserved2;
329 lpStartupInfo->lpReserved2 = StartupInfo->
lpReserved2;
332 if (lpStartupInfo->dwFlags &
336 lpStartupInfo->hStdInput = StartupInfo->
hStdInput;
337 lpStartupInfo->hStdOutput = StartupInfo->
hStdOutput;
338 lpStartupInfo->hStdError = StartupInfo->
hStdError;
376 &ProcessInformation))
#define DECLSPEC_HOTPATCH
WCHAR CurrentDirectory[1024]
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)
SIZE_T LPPROCESS_INFORMATION
#define NT_SUCCESS(StatCode)
#define INVALID_HANDLE_VALUE
BOOL WINAPI CreateProcessInternalW(IN HANDLE hUserToken, IN LPCWSTR lpApplicationName, IN LPWSTR lpCommandLine, IN LPSECURITY_ATTRIBUTES lpProcessAttributes, IN LPSECURITY_ATTRIBUTES lpThreadAttributes, IN BOOL bInheritHandles, IN DWORD dwCreationFlags, IN LPVOID lpEnvironment, IN LPCWSTR lpCurrentDirectory, IN LPSTARTUPINFOW lpStartupInfo, IN LPPROCESS_INFORMATION lpProcessInformation, OUT PHANDLE hNewToken)
BOOLEAN WINAPI Basep8BitStringToDynamicUnicodeString(OUT PUNICODE_STRING UnicodeString, IN LPCSTR String)
VOID WINAPI BasepAnsiStringToHeapUnicodeString(IN LPCSTR AnsiString, OUT LPWSTR *UnicodeString)
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 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)
#define InterlockedCompareExchangePointer
DWORD(* WaitForInputIdleType)(HANDLE hProcess, DWORD dwMilliseconds)
PVOID PVOID PWCHAR ApplicationName
DECLSPEC_NORETURN NTSYSAPI VOID NTAPI RtlRaiseStatus(_In_ NTSTATUS Status)
NTSYSAPI NTSTATUS NTAPI RtlUnicodeStringToAnsiString(PANSI_STRING DestinationString, PUNICODE_STRING SourceString, BOOLEAN AllocateDestinationString)
NTSYSAPI VOID NTAPI RtlFreeAnsiString(PANSI_STRING AnsiString)
NTSTATUS NTAPI NtClose(IN HANDLE Handle)
NTSYSAPI VOID NTAPI RtlFreeUnicodeString(PUNICODE_STRING UnicodeString)
VOID WINAPI RegisterWaitForInputIdle(IN WaitForInputIdleType lpfnRegisterWaitForInputIdle)
WaitForInputIdleType UserWaitForInputIdleRoutine
VOID WINAPI GetStartupInfoA(IN LPSTARTUPINFOA lpStartupInfo)
LPSTARTUPINFOA BaseAnsiStartupInfo
UINT WINAPI DECLSPEC_HOTPATCH WinExec(LPCSTR lpCmdLine, UINT uCmdShow)
struct _STARTUPINFOA STARTUPINFOA
#define RtlZeroMemory(Destination, Length)
#define RtlMoveMemory(Destination, Source, Length)
_In_ WDFIOTARGET _In_ PWDF_REQUEST_COMPLETION_PARAMS Params
DWORD WINAPI GetLastError(void)
#define STARTF_USESTDHANDLES