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(a)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/IoCreateF…
==============================================================================
--- 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…
==============================================================================
--- 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…
==============================================================================
--- 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,