[ros-dev] [ros-diffs] [tfaber] 69296: [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

Thomas Faber thomas.faber at reactos.org
Wed Sep 23 12:51:28 UTC 2015


Oh? I'll need to add a test for that then, thanks.

What does Windows's RTL do, then? I know in XP/2003 it might just hand
out user handles, but e.g. on Win7 that would cause verifier to
bugcheck.


On 2015-09-20 20:51, Alex Ionescu wrote:
> 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 at svn.reactos.org
> <mailto:tfaber at 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,
>
>
>
>
>
> _______________________________________________
> Ros-dev mailing list
> Ros-dev at reactos.org
> http://www.reactos.org/mailman/listinfo/ros-dev
>




More information about the Ros-dev mailing list