ntdll: Add RtlCreateUserProcess stub.
authorAustin English <austinenglish@gmail.com>
Tue, 15 Dec 2015 07:51:05 +0000 (01:51 -0600)
committerAlexandre Julliard <julliard@winehq.org>
Sat, 9 Jan 2016 08:30:04 +0000 (17:30 +0900)
Signed-off-by: Austin English <austinenglish@gmail.com>
Signed-off-by: Sebastian Lackner <sebastian@fds-team.de>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
dlls/ntdll/ntdll.spec
dlls/ntdll/rtl.c
include/winternl.h

index a96edb173b64213312686911a634f6a06301dc46..4e49709248d659555298b4c19f69e07b7a617def 100644 (file)
 @ stdcall RtlCreateTimerQueue(ptr)
 @ stdcall RtlCreateUnicodeString(ptr wstr)
 @ stdcall RtlCreateUnicodeStringFromAsciiz(ptr str)
-@ stub RtlCreateUserProcess
+@ stdcall RtlCreateUserProcess(ptr long ptr ptr ptr long long long long ptr)
 @ stub RtlCreateUserSecurityObject
 @ stdcall RtlCreateUserThread(long ptr long ptr long long ptr ptr ptr ptr)
 @ stub RtlCustomCPToUnicodeN
index 74ad35a57cff66a15b89478c6c32a6a73092790d..f699cff9a10617b95303876cd832e3ff14f74971 100644 (file)
@@ -1613,3 +1613,16 @@ void WINAPI RtlInsertElementGenericTableAvl(PRTL_AVL_TABLE table, void *buffer,
 {
     FIXME("%p %p %u %p: stub\n", table, buffer, size, element);
 }
+
+/**********************************************************************
+ *           RtlCreateUserProcess [NTDLL.@]
+ */
+NTSTATUS WINAPI RtlCreateUserProcess(UNICODE_STRING *path, ULONG attributes, RTL_USER_PROCESS_PARAMETERS *parameters,
+                                     SECURITY_DESCRIPTOR *process_descriptor, SECURITY_DESCRIPTOR *thread_descriptor,
+                                     HANDLE parent, BOOLEAN inherit, HANDLE debug, HANDLE exception,
+                                     RTL_USER_PROCESS_INFORMATION *info)
+{
+    FIXME("(%p %u %p %p %p %p %d %p %p %p): stub\n", path, attributes, parameters, process_descriptor, thread_descriptor,
+                                     parent, inherit, debug, exception, info);
+    return STATUS_NOT_IMPLEMENTED;
+}
index 42ecb5b99b8d6e51f96e9a731567280f79d4aa01..3494c0064845263adba8d95398dae9687fc2666e 100644 (file)
@@ -1893,6 +1893,15 @@ typedef struct _LPC_MESSAGE {
   UCHAR Data[ANYSIZE_ARRAY];
 } LPC_MESSAGE, *PLPC_MESSAGE;
 
+typedef struct _RTL_USER_PROCESS_INFORMATION
+{
+  ULONG Length;
+  HANDLE Process;
+  HANDLE Thread;
+  CLIENT_ID ClientId;
+  SECTION_IMAGE_INFORMATION ImageInformation;
+} RTL_USER_PROCESS_INFORMATION, *PRTL_USER_PROCESS_INFORMATION;
+
 typedef enum _SHUTDOWN_ACTION {
   ShutdownNoReboot,
   ShutdownReboot,
@@ -2393,6 +2402,7 @@ NTSYSAPI NTSTATUS  WINAPI RtlCreateTimerQueue(PHANDLE);
 NTSYSAPI NTSTATUS  WINAPI RtlCreateTimer(PHANDLE, HANDLE, RTL_WAITORTIMERCALLBACKFUNC, PVOID, DWORD, DWORD, ULONG);
 NTSYSAPI BOOLEAN   WINAPI RtlCreateUnicodeString(PUNICODE_STRING,LPCWSTR);
 NTSYSAPI BOOLEAN   WINAPI RtlCreateUnicodeStringFromAsciiz(PUNICODE_STRING,LPCSTR);
+NTSYSAPI NTSTATUS  WINAPI RtlCreateUserProcess(UNICODE_STRING*,ULONG,RTL_USER_PROCESS_PARAMETERS*,SECURITY_DESCRIPTOR*,SECURITY_DESCRIPTOR*,HANDLE,BOOLEAN,HANDLE,HANDLE,RTL_USER_PROCESS_INFORMATION*);
 NTSYSAPI NTSTATUS  WINAPI RtlCreateUserThread(HANDLE,const SECURITY_DESCRIPTOR*,BOOLEAN,PVOID,SIZE_T,SIZE_T,PRTL_THREAD_START_ROUTINE,void*,HANDLE*,CLIENT_ID*);
 NTSYSAPI void      WINAPI RtlDeactivateActivationContext(DWORD,ULONG_PTR);
 NTSYSAPI PVOID     WINAPI RtlDecodePointer(PVOID);