cleanup process parameters

This commit is contained in:
Pavel Yosifovich
2023-03-15 13:59:59 -04:00
parent 567a5fec3a
commit 316afd47bf
+9 -16
View File
@@ -17,16 +17,6 @@ typedef struct _RTL_USER_PROCESS_INFORMATION {
} RTL_USER_PROCESS_INFORMATION, * PRTL_USER_PROCESS_INFORMATION;
extern"C" {
NTSTATUS NTAPI NtCreateProcess(
_Out_ PHANDLE ProcessHandle,
_In_ ACCESS_MASK DesiredAccess,
_In_opt_ POBJECT_ATTRIBUTES ObjectAttributes,
_In_ HANDLE ParentProcess,
_In_ BOOLEAN InheritObjectTable,
_In_opt_ HANDLE SectionHandle,
_In_opt_ HANDLE DebugPort,
_In_opt_ HANDLE ExceptionPort
);
NTSTATUS NTAPI RtlCreateUserProcess(
__in PUNICODE_STRING NtImagePathName,
__in ULONG Attributes,
@@ -37,11 +27,10 @@ extern"C" {
__in BOOLEAN InheritHandles,
__in_opt HANDLE DebugPort,
__in_opt HANDLE TokenHandle,
__out PRTL_USER_PROCESS_INFORMATION ProcessInformation
);
__out PRTL_USER_PROCESS_INFORMATION ProcessInformation);
NTSTATUS NTAPI RtlCreateProcessParameters(
__deref_out PVOID* pProcessParameters,
__deref_out PRTL_USER_PROCESS_PARAMETERS* pProcessParameters,
__in PUNICODE_STRING ImagePathName,
__in_opt PUNICODE_STRING DllPath,
__in_opt PUNICODE_STRING CurrentDirectory,
@@ -50,8 +39,11 @@ extern"C" {
__in_opt PUNICODE_STRING WindowTitle,
__in_opt PUNICODE_STRING DesktopInfo,
__in_opt PUNICODE_STRING ShellInfo,
__in_opt PUNICODE_STRING RuntimeData
);
__in_opt PUNICODE_STRING RuntimeData);
NTSTATUS NTAPI RtlDestroyProcessParameters(
_In_ _Post_invalid_ PRTL_USER_PROCESS_PARAMETERS ProcessParameters);
}
int Error(NTSTATUS status) {
@@ -69,7 +61,7 @@ int wmain(int argc, const wchar_t* argv[]) {
RtlInitUnicodeString(&name, argv[1]);
RTL_USER_PROCESS_INFORMATION info;
PVOID params;
PRTL_USER_PROCESS_PARAMETERS params;
auto status = RtlCreateProcessParameters(&params, &name, nullptr, nullptr, &name,
nullptr,
nullptr,
@@ -86,6 +78,7 @@ int wmain(int argc, const wchar_t* argv[]) {
printf("Process 0x%p created!\n", info.ClientId.UniqueProcess);
ResumeThread(info.Thread);
RtlDestroyProcessParameters(params);
return 0;
}