[KMTESTS:IO]
authorPierre Schweitzer <pierre@reactos.org>
Tue, 29 Sep 2015 18:43:35 +0000 (18:43 +0000)
committerPierre Schweitzer <pierre@reactos.org>
Tue, 29 Sep 2015 18:43:35 +0000 (18:43 +0000)
[KMTESTS:OB]
Simplify kernel mode thread creation

svn path=/trunk/; revision=69417

rostests/kmtests/ntos_io/IoCreateFile.c
rostests/kmtests/ntos_ob/ObWait.c

index 9c35a08..ae4294b 100644 (file)
@@ -871,10 +871,7 @@ UserModeTest(VOID)
 
 START_TEST(IoCreateFile)
 {
-    NTSTATUS Status;
-    OBJECT_ATTRIBUTES ObjectAttributes;
-    HANDLE ThreadHandle;
-    PVOID ThreadObject = NULL;
+    PKTHREAD ThreadHandle;
 
     TestSymlinks();
 
@@ -882,36 +879,6 @@ START_TEST(IoCreateFile)
     UserModeTest();
 
     /* We've to be in kernel mode, so spawn a thread */
-    InitializeObjectAttributes(&ObjectAttributes,
-                               NULL,
-                               OBJ_KERNEL_HANDLE,
-                               NULL,
-                               NULL);
-    Status = PsCreateSystemThread(&ThreadHandle,
-                                  SYNCHRONIZE,
-                                  &ObjectAttributes,
-                                  NULL,
-                                  NULL,
-                                  KernelModeTest,
-                                  NULL);
-    ok_eq_hex(Status, STATUS_SUCCESS);
-    if (Status == STATUS_SUCCESS)
-    {
-        /* Then, just wait on our thread to finish */
-        Status = ObReferenceObjectByHandle(ThreadHandle,
-                                           SYNCHRONIZE,
-                                           *PsThreadType,
-                                           KernelMode,
-                                           &ThreadObject,
-                                           NULL);
-        ObCloseHandle(ThreadHandle, KernelMode);
-
-        Status = KeWaitForSingleObject(ThreadObject,
-                                       Executive,
-                                       KernelMode,
-                                       FALSE,
-                                       NULL);
-        ok_eq_hex(Status, STATUS_SUCCESS);
-        ObDereferenceObject(ThreadObject);
-    }
+    ThreadHandle = KmtStartThread(KernelModeTest, NULL);
+    KmtFinishThread(ThreadHandle, NULL);
 }
index 82e4b1a..7d2b712 100644 (file)
@@ -23,42 +23,9 @@ KernelModeTest(IN PVOID Context)
 
 START_TEST(ZwWaitForMultipleObjects)
 {
-    NTSTATUS Status;
-    OBJECT_ATTRIBUTES ObjectAttributes;
-    HANDLE ThreadHandle;
-    PVOID ThreadObject = NULL;
+    PKTHREAD ThreadHandle;
 
     /* We've to be in kernel mode, so spawn a thread */
-    InitializeObjectAttributes(&ObjectAttributes,
-                               NULL,
-                               OBJ_KERNEL_HANDLE,
-                               NULL,
-                               NULL);
-    Status = PsCreateSystemThread(&ThreadHandle,
-                                  SYNCHRONIZE,
-                                  &ObjectAttributes,
-                                  NULL,
-                                  NULL,
-                                  KernelModeTest,
-                                  NULL);
-    ok_eq_hex(Status, STATUS_SUCCESS);
-    if (Status == STATUS_SUCCESS)
-    {
-        /* Then, just wait on our thread to finish */
-        Status = ObReferenceObjectByHandle(ThreadHandle,
-                                           SYNCHRONIZE,
-                                           *PsThreadType,
-                                           KernelMode,
-                                           &ThreadObject,
-                                           NULL);
-        ObCloseHandle(ThreadHandle, KernelMode);
-
-        Status = KeWaitForSingleObject(ThreadObject,
-                                       Executive,
-                                       KernelMode,
-                                       FALSE,
-                                       NULL);
-        ok_eq_hex(Status, STATUS_SUCCESS);
-        ObDereferenceObject(ThreadObject);
-    }
+    ThreadHandle = KmtStartThread(KernelModeTest, NULL);
+    KmtFinishThread(ThreadHandle, NULL);
 }