Actually, in XP, OBJ_KERNEL_HANDLE Did work, and gave you a kernel handle that you could never use. In Windows Vista, it returns a failure code. Not sure about 2003.

Best regards,
Alex Ionescu

On Sat, Sep 19, 2015 at 2:46 PM, <tfaber@svn.reactos.org> wrote:
Author: tfaber
Date: Sat Sep 19 21:46:40 2015
New Revision: 69296

URL: http://svn.reactos.org/svn/reactos?rev=69296&view=rev
Log:
[KMTESTS]
- Add missing OBJ_KERNEL_HANDLE
- OBJ_KERNEL_HANDLE in user mode has no effect... no reason to make a define around it
CORE-10207

Modified:
    trunk/rostests/kmtests/ntos_io/IoCreateFile.c
    trunk/rostests/kmtests/ntos_ke/KeEvent.c
    trunk/rostests/kmtests/rtl/RtlRegistry.c

Modified: trunk/rostests/kmtests/ntos_io/IoCreateFile.c
URL: http://svn.reactos.org/svn/reactos/trunk/rostests/kmtests/ntos_io/IoCreateFile.c?rev=69296&r1=69295&r2=69296&view=diff
==============================================================================
--- trunk/rostests/kmtests/ntos_io/IoCreateFile.c       [iso-8859-1] (original)
+++ trunk/rostests/kmtests/ntos_io/IoCreateFile.c       [iso-8859-1] Sat Sep 19 21:46:40 2015
@@ -454,7 +454,7 @@
     ok_eq_hex(IoStatusBlock.Status, 0xFFFFFFFF);
     if (Status == STATUS_SUCCESS)
     {
-        ObCloseHandle(ParentHandle, KernelMode);
+        ObCloseHandle(ParentHandle, UserMode);
     }

     /* Attempt relative target open */
@@ -462,7 +462,7 @@
     IoStatusBlock.Information = 0xFFFFFFFF;
     InitializeObjectAttributes(&ObjectAttributes,
                                &SystemRoot,
-                               OBJ_CASE_INSENSITIVE,
+                               OBJ_CASE_INSENSITIVE | OBJ_KERNEL_HANDLE,
                                NULL, NULL);
     Status = ZwOpenFile(&SystemRootHandle,
                         GENERIC_WRITE | GENERIC_READ | SYNCHRONIZE,
@@ -478,7 +478,7 @@
         IoStatusBlock.Information = 0xFFFFFFFF;
         InitializeObjectAttributes(&ObjectAttributes,
                                    &Regedit,
-                                   OBJ_CASE_INSENSITIVE,
+                                   OBJ_CASE_INSENSITIVE | OBJ_KERNEL_HANDLE,
                                    SystemRootHandle,
                                    NULL);
         Status = IoCreateFile(&ParentHandle,

Modified: trunk/rostests/kmtests/ntos_ke/KeEvent.c
URL: http://svn.reactos.org/svn/reactos/trunk/rostests/kmtests/ntos_ke/KeEvent.c?rev=69296&r1=69295&r2=69296&view=diff
==============================================================================
--- trunk/rostests/kmtests/ntos_ke/KeEvent.c    [iso-8859-1] (original)
+++ trunk/rostests/kmtests/ntos_ke/KeEvent.c    [iso-8859-1] Sat Sep 19 21:46:40 2015
@@ -155,6 +155,7 @@
     PVOID ThreadObjects[RTL_NUMBER_OF(Threads)];
     LONG State;
     PKTHREAD Thread = KeGetCurrentThread();
+    OBJECT_ATTRIBUTES ObjectAttributes;

     LongTimeout.QuadPart = -100 * MILLISECOND;
     ShortTimeout.QuadPart = -1 * MILLISECOND;
@@ -165,7 +166,12 @@
     {
         Threads[i].Event = Event;
         Threads[i].Signal = FALSE;
-        Status = PsCreateSystemThread(&Threads[i].Handle, GENERIC_ALL, NULL, NULL, NULL, WaitForEventThread, &Threads[i]);
+        InitializeObjectAttributes(&ObjectAttributes,
+                                   NULL,
+                                   OBJ_KERNEL_HANDLE,
+                                   NULL,
+                                   NULL);
+        Status = PsCreateSystemThread(&Threads[i].Handle, GENERIC_ALL, &ObjectAttributes, NULL, NULL, WaitForEventThread, &Threads[i]);
         ok_eq_hex(Status, STATUS_SUCCESS);
         Status = ObReferenceObjectByHandle(Threads[i].Handle, SYNCHRONIZE, *PsThreadType, KernelMode, (PVOID *)&Threads[i].Thread, NULL);
         ok_eq_hex(Status, STATUS_SUCCESS);

Modified: trunk/rostests/kmtests/rtl/RtlRegistry.c
URL: http://svn.reactos.org/svn/reactos/trunk/rostests/kmtests/rtl/RtlRegistry.c?rev=69296&r1=69295&r2=69296&view=diff
==============================================================================
--- trunk/rostests/kmtests/rtl/RtlRegistry.c    [iso-8859-1] (original)
+++ trunk/rostests/kmtests/rtl/RtlRegistry.c    [iso-8859-1] Sat Sep 19 21:46:40 2015
@@ -7,12 +7,6 @@

 #define KMT_EMULATE_KERNEL
 #include <kmt_test.h>
-
-#ifdef KMT_KERNEL_MODE
-#define KMT_KERNEL_HANDLE OBJ_KERNEL_HANDLE
-#else
-#define KMT_KERNEL_HANDLE 0
-#endif

 #ifndef RTL_NUMBER_OF
 #define RTL_NUMBER_OF(x) (sizeof(x) / sizeof(x[0]))
@@ -212,7 +206,7 @@
     RtlInitUnicodeString(&KeyName, L"\\Registry\\MACHINE\\Software");
     InitializeObjectAttributes(&ObjectAttributes,
                                &KeyName,
-                               OBJ_CASE_INSENSITIVE | KMT_KERNEL_HANDLE,
+                               OBJ_CASE_INSENSITIVE | OBJ_KERNEL_HANDLE,
                                NULL,
                                NULL);
     Status = ZwOpenKey(&SoftwareHandle,
@@ -225,7 +219,7 @@
     RtlInitUnicodeString(&KeyName, L"RtlRegistryKmtestKey");
     InitializeObjectAttributes(&ObjectAttributes,
                                &KeyName,
-                               OBJ_CASE_INSENSITIVE | KMT_KERNEL_HANDLE,
+                               OBJ_CASE_INSENSITIVE | OBJ_KERNEL_HANDLE,
                                SoftwareHandle,
                                NULL);
     Status = ZwCreateKey(&KeyHandle,