18#define NORMALIZE(x,addr) {if(x) x=(PVOID)((ULONG_PTR)(x)+(ULONG_PTR)(addr));}
19#define DENORMALIZE(x,addr) {if(x) x=(PVOID)((ULONG_PTR)(x)-(ULONG_PTR)(addr));}
20#define ALIGN(x,align) (((ULONG)(x)+(align)-1UL)&(~((align)-1UL)))
60 HANDLE CurrentDirectoryHandle;
64 DPRINT (
"RtlCreateProcessParameters\n");
80 CurrentDirectoryHandle =
NtCurrentPeb()->ProcessParameters->CurrentDirectory.Handle;
81 ConsoleHandle =
NtCurrentPeb()->ProcessParameters->ConsoleHandle;
82 ConsoleFlags =
NtCurrentPeb()->ProcessParameters->ConsoleFlags;
90 CurrentDirectoryHandle =
NULL;
95 if (CommandLine ==
NULL)
96 CommandLine = &EmptyString;
97 if (WindowTitle ==
NULL)
98 WindowTitle = &EmptyString;
99 if (DesktopInfo ==
NULL)
100 DesktopInfo = &EmptyString;
101 if (ShellInfo ==
NULL)
102 ShellInfo = &EmptyString;
103 if (RuntimeData ==
NULL)
104 RuntimeData = &EmptyString;
129 DPRINT (
"Process parameters allocated\n");
202 *ProcessParameters = Param;
215 RtlFreeHeap(RtlGetProcessHeap(), 0, ProcessParameters);
238 Params->Flags &= ~RTL_USER_PROCESS_PARAMETERS_NORMALIZED;
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)
struct _RTL_USER_PROCESS_PARAMETERS RTL_USER_PROCESS_PARAMETERS
KPROCESSOR_MODE NTAPI RtlpGetMode(VOID)
_Must_inspect_result_ _In_ PFSRTL_PER_STREAM_CONTEXT Ptr
NTSYSAPI void WINAPI RtlReleasePebLock(void)
NTSYSAPI void WINAPI RtlAcquirePebLock(void)
#define memmove(s1, s2, n)
PVOID PVOID PWCHAR PVOID Environment
static const char const char * DllPath
_In_ UINT _In_ UINT _In_ PNDIS_PACKET Source
_In_ PUNICODE_STRING _Inout_ PUNICODE_STRING Destination
#define RTL_USER_PROCESS_PARAMETERS_NORMALIZED
_In_ ULONG _In_ ULONG _In_ ULONG Length
static __inline VOID RtlpCopyParameterString(PWCHAR *Ptr, PUNICODE_STRING Destination, PUNICODE_STRING Source, USHORT Size)
#define DENORMALIZE(x, addr)
#define NORMALIZE(x, addr)
PRTL_USER_PROCESS_PARAMETERS NTAPI RtlDeNormalizeProcessParams(PRTL_USER_PROCESS_PARAMETERS Params)
PRTL_USER_PROCESS_PARAMETERS NTAPI RtlNormalizeProcessParams(PRTL_USER_PROCESS_PARAMETERS Params)
NTSTATUS NTAPI RtlDestroyProcessParameters(IN PRTL_USER_PROCESS_PARAMETERS ProcessParameters)
NTSTATUS NTAPI RtlCreateProcessParameters(PRTL_USER_PROCESS_PARAMETERS *ProcessParameters, PUNICODE_STRING ImagePathName, PUNICODE_STRING DllPath, PUNICODE_STRING CurrentDirectory, PUNICODE_STRING CommandLine, PWSTR Environment, PUNICODE_STRING WindowTitle, PUNICODE_STRING DesktopInfo, PUNICODE_STRING ShellInfo, PUNICODE_STRING RuntimeData)
UNICODE_STRING RuntimeData
UNICODE_STRING CommandLine
UNICODE_STRING ImagePathName
UNICODE_STRING WindowTitle
UNICODE_STRING DesktopInfo
#define STATUS_INSUFFICIENT_RESOURCES
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_DEVICE_PROPERTY_DATA _In_ DEVPROPTYPE _In_ ULONG Size
_In_ WDFIOTARGET _In_ PWDF_REQUEST_COMPLETION_PARAMS Params