[ros-dev] KPROCESS update?

Alex Ionescu ionucu at videotron.ca
Wed Mar 4 15:32:36 CET 2009


ReactOS is built on the 5.2 kernel, you are looking at the outdated  
5.1 kernel, hence no to both your questions.

On 3-Mar-09, at 11:34 PM, Jun Koi wrote:

> Hi,
>
> I examined Windows XP 3, latest update, and found some differences in
> its KPROCESS and our KPROCESS definition.
>
> Specifically, in our KPROCESS we have the union of ProcessFlags,
> between 2 fields Affinity, and BasePriority. This ProcessFlags field
> is 4 bytes in size.
>
> But XP3's KPROCESS has no such a ProcessFlags at that place. Instead,
> they have a field named StackCount, with only 2 bytes in size.
>
> So I wonder why there is the difference. The answer might be that we
> have not updated ketypes.h for a long time, and latest update of
> Windows changed some structures, therefore we have not catched up with
> yet.
>
> 1) Is that the correct understanding?
>
> 2) If so, will we update our structures to reflect the changes?
>
> Below is the output from my Windows XP.
>
> Thanks,
> J
>
> Windows XP Kernel Version 2600 (Service Pack 3) UP Free x86 compatible
> Product: WinNt, suite: TerminalServer SingleUserTS Personal
> Built by: 2600.xpsp_sp3_gdr.080814-1236
>
> kd> dt -a -b -v _KPROCESS
> ntdll!_KPROCESS
> struct _KPROCESS, 29 elements, 0x6c bytes
>   +0x000 Header           : struct _DISPATCHER_HEADER, 6 elements,  
> 0x10 bytes
>      +0x000 Type             : UChar
>      +0x001 Absolute         : UChar
>      +0x002 Size             : UChar
>      +0x003 Inserted         : UChar
>      +0x004 SignalState      : Int4B
>      +0x008 WaitListHead     : struct _LIST_ENTRY, 2 elements, 0x8  
> bytes
>         +0x000 Flink            : Ptr32 to
>         +0x004 Blink            : Ptr32 to
>   +0x010 ProfileListHead  : struct _LIST_ENTRY, 2 elements, 0x8 bytes
>      +0x000 Flink            : Ptr32 to
>      +0x004 Blink            : Ptr32 to
>   +0x018 DirectoryTableBase : (2 elements)  Uint4B
>   +0x020 LdtDescriptor    : struct _KGDTENTRY, 3 elements, 0x8 bytes
>      +0x000 LimitLow         : Uint2B
>      +0x002 BaseLow          : Uint2B
>      +0x004 HighWord         : union __unnamed, 2 elements, 0x4 bytes
>         +0x000 Bytes            : struct __unnamed, 4 elements, 0x4  
> bytes
>            +0x000 BaseMid          : UChar
>            +0x001 Flags1           : UChar
>            +0x002 Flags2           : UChar
>            +0x003 BaseHi           : UChar
>         +0x000 Bits             : struct __unnamed, 10 elements, 0x4  
> bytes
>            +0x000 BaseMid          : Bitfield Pos 0, 8 Bits
>            +0x000 Type             : Bitfield Pos 8, 5 Bits
>            +0x000 Dpl              : Bitfield Pos 13, 2 Bits
>            +0x000 Pres             : Bitfield Pos 15, 1 Bit
>            +0x000 LimitHi          : Bitfield Pos 16, 4 Bits
>            +0x000 Sys              : Bitfield Pos 20, 1 Bit
>            +0x000 Reserved_0       : Bitfield Pos 21, 1 Bit
>            +0x000 Default_Big      : Bitfield Pos 22, 1 Bit
>            +0x000 Granularity      : Bitfield Pos 23, 1 Bit
>            +0x000 BaseHi           : Bitfield Pos 24, 8 Bits
>   +0x028 Int21Descriptor  : struct _KIDTENTRY, 4 elements, 0x8 bytes
>      +0x000 Offset           : Uint2B
>      +0x002 Selector         : Uint2B
>      +0x004 Access           : Uint2B
>      +0x006 ExtendedOffset   : Uint2B
>   +0x030 IopmOffset       : Uint2B
>   +0x032 Iopl             : UChar
>   +0x033 Unused           : UChar
>   +0x034 ActiveProcessors : Uint4B
>   +0x038 KernelTime       : Uint4B
>   +0x03c UserTime         : Uint4B
>   +0x040 ReadyListHead    : struct _LIST_ENTRY, 2 elements, 0x8 bytes
>      +0x000 Flink            : Ptr32 to
>      +0x004 Blink            : Ptr32 to
>   +0x048 SwapListEntry    : struct _SINGLE_LIST_ENTRY, 1 elements,  
> 0x4 bytes
>      +0x000 Next             : Ptr32 to
>   +0x04c VdmTrapcHandler  : Ptr32 to
>   +0x050 ThreadListHead   : struct _LIST_ENTRY, 2 elements, 0x8 bytes
>      +0x000 Flink            : Ptr32 to
>      +0x004 Blink            : Ptr32 to
>   +0x058 ProcessLock      : Uint4B
>   +0x05c Affinity         : Uint4B
>   +0x060 StackCount       : Uint2B
>   +0x062 BasePriority     : Char
>   +0x063 ThreadQuantum    : Char
>   +0x064 AutoAlignment    : UChar
>   +0x065 State            : UChar
>   +0x066 ThreadSeed       : UChar
>   +0x067 DisableBoost     : UChar
>   +0x068 PowerState       : UChar
>   +0x069 DisableQuantum   : UChar
>   +0x06a IdealNode        : UChar
>   +0x06b Flags            : struct _KEXECUTE_OPTIONS, 7 elements,  
> 0x1 bytes
>      +0x000 ExecuteDisable   : Bitfield Pos 0, 1 Bit
>      +0x000 ExecuteEnable    : Bitfield Pos 1, 1 Bit
>      +0x000 DisableThunkEmulation : Bitfield Pos 2, 1 Bit
>      +0x000 Permanent        : Bitfield Pos 3, 1 Bit
>      +0x000 ExecuteDispatchEnable : Bitfield Pos 4, 1 Bit
>      +0x000 ImageDispatchEnable : Bitfield Pos 5, 1 Bit
>      +0x000 Spare            : Bitfield Pos 6, 2 Bits
>   +0x06b ExecuteOptions   : UChar
> _______________________________________________
> Ros-dev mailing list
> Ros-dev at reactos.org
> http://www.reactos.org/mailman/listinfo/ros-dev

Best regards,
Alex Ionescu



More information about the Ros-dev mailing list