精华内容
下载资源
问答
  • 贴上代码, 我想问一下嵌套类ReverseArrayIterator中的next() 方法该怎样写,才能完成链表 ``` /** * 下压栈链表实现 * * @author maji * @date 2018-7-14 */ public class Stack<Item> implements ...
  • 萌新们,学到链表时候会不会困惑呢? 我那时是感觉比较难的了(我比较菜呜呜呜),学链表学了很久才弄清楚...先序遍历链表 *4.后续遍历链表 *5.跳跃遍历链表 */ public class LastWeek<E> { private clas

    萌新们,学到链表时候会不会困惑呢?

    我那时是感觉比较难的了(我比较菜呜呜呜),学链表学了很久才弄清楚怎么个操作法。

    现在我来分享这个基础的链表的操作噢,基本很多时候都要用到,所以一定要好好理解呀~~

    链表基础 快快学起来!!!


    上代码:

    import java.util.Objects;
    / *1.顺序添加节点
     *2.逆序添加节点
     *3.先序遍历链表
     *4.后续遍历链表
     *5.跳跃遍历链表
     */
    public class LastWeek<E> {
    
        private class Node {
    
            public E e;
            public Node pre;
            public Node next;
    
            public Node(E e, Node pre, Node next) {
                this.e = e;
                this.pre = pre;
                this.next = next;
            }
    
            public Node() {
                this(null, null, null);
            }
    
            public Node(E e) {
                this(e, null, null);
            }
    
            @Override
            public String toString() {
                return e.toString();
            }
    
        }
    
        private int size;
    
        public Node head, tail;
    
    
        /**
         * 在链表尾部添加元素
         */
        public void addLast(E e) {
            Node newNode = new Node(e);
            if (head == null) {
                head = newNode;
            } else {
                Node curNode = head;
                int count = 1;
                while (count < size) {
                    curNode = curNode.next;
                    count++;
                }
                newNode.next = null;
                newNode.pre = curNode;
                curNode.next = newNode;
            }
            size++;
        }
    
        /**
         * 在链表头部添元素
         */
        public void addFirst(E e) {
            Node newNode = new Node(e);
            if (head != null) {
                newNode.next = head;
                head.pre = newNode;
            }
            head = newNode;
            size++;
        }
    
    
        public static void main(String[] args) {
    
        	LastWeek<Integer> list = new LastWeek<>();
            //在链表头部添元素
            list.addFirst(1);
            list.addFirst(2);
            list.addFirst(3);
    
            //在链表头部添元素
            list.addLast(4);
            list.addLast(5);
    
    
            System.out.println("正序遍历");
            LastWeek<Integer>.Node node = list.head;
            while (node != null) {
                System.out.println(node);
                node = node.next;
            }
    
    
            System.out.println("反序遍历");
            LastWeek<Integer>.Node node1 = list.head;
            while (node1.next != null) {
                node1 = node1.next;
            }
            while (node1 != null) {
                System.out.println(node1);
                node1 = node1.pre;
            }
    
            System.out.println("跳跃遍历");
            LastWeek<Integer>.Node node2 = list.head;
            while (!Objects.isNull(node2)) {
                System.out.println(node2);
                node2 = node2.next;
                if (!Objects.isNull(node2)){
                    node2 = node2.next;
                }
            }
        }
    }
    
    展开全文
  • 遍历活动进程链表

    2016-12-07 01:31:36
    EPROCESS 结构的关键字段 0xb4 4 pid 0xb8 4 活动进程链表指针 ,指向全局变量... (它们怎么互指,有待windbg,或查资料) 0xf4 4 句柄表的指针 0x16c 16 进程名称 0x188 4 进程里面的线程链表 0x1a8 4 指向PEB的指针

    EPROCESS 结构的关键字段

    0xb4	4	pid
    0xb8	4	活动进程链表指针 ,指向全局变量PsActiveProcessHead,而全局变量PsActiveProcessHead指向活动进程链表指针
    		     (它们怎么互指,有待windbg,或查资料)
                         每个eprocess结构里面都有list_entry双端链表的节点,来指示上一个节点和下一个节点,然后减去偏移量就得倒eprocess结构的指针了。
    0xf4	4	句柄表的指针
    0x16c	16	进程名称
    0x188	4	进程里面的线程链表
    0x1a8	4	指向PEB的指针
    
    
    NTSTATUS WINAPI ZwQuerySystemInformation 的工作原理
    ZwQuerysystemInformation 遍历进程,也是查询PsActiveProcessHead
    PsGetCurrentProcess
    
    获得当前进程的id,内核函数
    疑问:为什么加载驱动的进程名是system
    加载驱动的过程是怎样的?查资料
    
    
    疑惑: 遍历activeprocesslink有一条异常数据
    [Pid=-2141859648] EProcess=0x80564830 
    
    然而异常数据的访问,并没有导致蓝屏
    
    
    
    
    windows各个版本EPROCESS结构

    Windows XP:

    +0x000 Pcb : _KPROCESS +0x000 Header : _DISPATCHER_HEADER +0x010 ProfileListHead : _LIST_ENTRY [ 0xffbcc030 - 0xffbcc030 ] +0x018 DirectoryTableBase : [2] 0x2807000 +0x020 LdtDescriptor : _KGDTENTRY +0x028 Int21Descriptor : _KIDTENTRY +0x030 IopmOffset : 0x20ac +0x032 Iopl : 0 '' +0x033 Unused : 0 '' +0x034 ActiveProcessors : 0 +0x038 KernelTime : 0xf +0x03c UserTime : 1 +0x040 ReadyListHead : _LIST_ENTRY [ 0xffbcc060 - 0xffbcc060 ] +0x048 SwapListEntry : _SINGLE_LIST_ENTRY +0x04c VdmTrapcHandler : (null)  +0x050 ThreadListHead : _LIST_ENTRY [ 0x80d946b8 - 0x80ee61d0 ] +0x058 ProcessLock : 0 +0x05c Affinity : 1 +0x060 StackCount : 2 +0x062 BasePriority : 8 '' +0x063 ThreadQuantum : 6 '' +0x064 AutoAlignment : 0 '' +0x065 State : 0 '' +0x066 ThreadSeed : 0 '' +0x067 DisableBoost : 0 '' +0x068 PowerState : 0 '' +0x069 DisableQuantum : 0 '' +0x06a IdealNode : 0 '' +0x06b Flags : _KEXECUTE_OPTIONS +0x06b ExecuteOptions : 0x32 '2' +0x06c ProcessLock : _EX_PUSH_LOCK +0x000 Waiting : 0y0 +0x000 Exclusive : 0y0 +0x000 Shared : 0y000000000000000000000000000000 (0) +0x000 Value : 0 +0x000 Ptr : (null)  +0x070 CreateTime : _LARGE_INTEGER 0x1c8afe7`be99a666 +0x000 LowPart : 0xbe99a666 +0x004 HighPart : 29929447 +0x000 u : __unnamed +0x000 QuadPart : 128545999250105958 +0x078 ExitTime : _LARGE_INTEGER 0x0 +0x000 LowPart : 0 +0x004 HighPart : 0 +0x000 u : __unnamed +0x000 QuadPart : 0 +0x080 RundownProtect : _EX_RUNDOWN_REF +0x000 Count : 0 +0x000 Ptr : (null)  +0x084 UniqueProcessId : 0x000007ac  +0x088 ActiveProcessLinks : _LIST_ENTRY [ 0x805616d8 - 0x80ee6840 ] +0x000 Flink : 0x805616d8 _LIST_ENTRY [ 0x80ede0a8 - 0xffbcc0a8 ] +0x004 Blink : 0x80ee6840 _LIST_ENTRY [ 0xffbcc0a8 - 0x80d7bcb8 ] +0x090 QuotaUsage : [3] 0xb18 +0x09c QuotaPeak : [3] 0xbb8 +0x0a8 CommitCharge : 0x1a8 +0x0ac PeakVirtualSize : 0x203e000 +0x0b0 VirtualSize : 0x1e71000 +0x0b4 SessionProcessLinks : _LIST_ENTRY [ 0xfb087014 - 0x80ee686c ] +0x000 Flink : 0xfb087014 _LIST_ENTRY [ 0x80eade54 - 0xffbcc0d4 ] +0x004 Blink : 0x80ee686c _LIST_ENTRY [ 0xffbcc0d4 - 0x80d7bce4 ] +0x0bc DebugPort : (null)  +0x0c0 ExceptionPort : 0xe13c96b8  +0x0c4 ObjectTable : 0xe1cd4958 _HANDLE_TABLE +0x000 TableCode : 0xe1060000 +0x004 QuotaProcess : 0xffbcc020 _EPROCESS +0x008 UniqueProcessId : 0x000007ac  +0x00c HandleTableLock : [4] _EX_PUSH_LOCK +0x01c HandleTableList : _LIST_ENTRY [ 0x805629c8 - 0xe1640594 ] +0x024 HandleContentionEvent : _EX_PUSH_LOCK +0x028 DebugInfo : (null)  +0x02c ExtraInfoPages : 0 +0x030 FirstFree : 0x11c +0x034 LastFree : 0 +0x038 NextHandleNeedingPool : 0x800 +0x03c HandleCount : 70 +0x040 Flags : 0 +0x040 StrictFIFO : 0y0 +0x0c8 Token : _EX_FAST_REF +0x000 Object : 0xe10772a3  +0x000 RefCnt : 0y011 +0x000 Value : 0xe10772a3 +0x0cc WorkingSetLock : _FAST_MUTEX +0x000 Count : 1 +0x004 Owner : 0xfacfa608 _KTHREAD +0x008 Contention : 0 +0x00c Event : _KEVENT +0x01c OldIrql : 0 +0x0ec WorkingSetPage : 0x1e0a +0x0f0 AddressCreationLock : _FAST_MUTEX +0x000 Count : 1 +0x004 Owner : 0xfacfacf4 _KTHREAD +0x008 Contention : 0 +0x00c Event : _KEVENT +0x01c OldIrql : 0 +0x110 HyperSpaceLock : 0 +0x114 ForkInProgress : (null)  +0x118 HardwareTrigger : 0 +0x11c VadRoot : 0x80e2d1f0  +0x120 VadHint : 0xffb6f870  +0x124 CloneRoot : (null)  +0x128 NumberOfPrivatePages : 0xd8 +0x12c NumberOfLockedPages : 0 +0x130 Win32Process : 0xe1062680  +0x134 Job : (null)  +0x138 SectionObject : 0xe1cfe480  +0x13c SectionBaseAddress : 0x00400000  +0x140 QuotaBlock : 0xffbcc498 _EPROCESS_QUOTA_BLOCK +0x000 QuotaEntry : [3] _EPROCESS_QUOTA_ENTRY +0x030 QuotaList : _LIST_ENTRY [ 0xffb46518 - 0x80d4fda8 ] +0x038 ReferenceCount : 0x25a +0x03c ProcessCount : 6 +0x144 WorkingSetWatch : (null)  +0x148 Win32WindowStation : 0x00000034  +0x14c InheritedFromUniqueProcessId : 0x00000670  +0x150 LdtInformation : (null)  +0x154 VadFreeHint : (null)  +0x158 VdmObjects : (null)  +0x15c DeviceMap : 0xe18ed570  +0x160 PhysicalVadList : _LIST_ENTRY [ 0xffb66348 - 0xffb66348 ] +0x000 Flink : 0xffb66348 _LIST_ENTRY [ 0xffbcc180 - 0xffbcc180 ] +0x004 Blink : 0xffb66348 _LIST_ENTRY [ 0xffbcc180 - 0xffbcc180 ] +0x168 PageDirectoryPte : _HARDWARE_PTE +0x000 Valid : 0y0 +0x000 Write : 0y0 +0x000 Owner : 0y0 +0x000 WriteThrough : 0y0 +0x000 CacheDisable : 0y0 +0x000 Accessed : 0y0 +0x000 Dirty : 0y0 +0x000 LargePage : 0y0 +0x000 Global : 0y0 +0x000 CopyOnWrite : 0y0 +0x000 Prototype : 0y0 +0x000 reserved : 0y0 +0x000 PageFrameNumber : 0y00000000000000000000 (0) +0x168 Filler : 0 +0x170 Session : 0xfb087000  +0x174 ImageFileName : [16] "Dbgview.exe" +0x184 JobLinks : _LIST_ENTRY [ 0x0 - 0x0 ] +0x000 Flink : (null)  +0x004 Blink : (null)  +0x18c LockedPagesList : (null)  +0x190 ThreadListHead : _LIST_ENTRY [ 0x80d94734 - 0x80ee624c ] +0x000 Flink : 0x80d94734 _LIST_ENTRY [ 0x80ee624c - 0xffbcc1b0 ] +0x004 Blink : 0x80ee624c _LIST_ENTRY [ 0xffbcc1b0 - 0x80d94734 ] +0x198 SecurityPort : (null)  +0x19c PaeTop : (null)  +0x1a0 ActiveThreads : 2 +0x1a4 GrantedAccess : 0x1f0fff +0x1a8 DefaultHardErrorProcessing : 1 +0x1ac LastThreadExitStatus : 0 +0x1b0 Peb : 0x7ffde000 _PEB +0x000 InheritedAddressSpace : 0xdc '' +0x001 ReadImageFileExecOptions : 0xff '' +0x002 BeingDebugged : 0xa8 '' +0x003 SpareBool : 0 '' +0x004 Mutant : 0x00a90000  +0x008 ImageBaseAddress : 0x00a8e000  +0x00c Ldr : (null)  +0x010 ProcessParameters : 0x00001e00 _RTL_USER_PROCESS_PARAMETERS +0x014 SubSystemData : (null)  +0x018 ProcessHeap : 0x7ffde000  +0x01c FastPebLock : (null)  +0x020 FastPebLockRoutine : 0x0000073c  +0x024 FastPebUnlockRoutine : 0x00000760  +0x028 EnvironmentUpdateCount : 0 +0x02c KernelCallbackTable : (null)  +0x030 SystemReserved : [1] 0x7ffdd000 +0x034 AtlThunkSListPtr32 : 0 +0x038 FreeList : (null)  +0x03c TlsExpansionCounter : 0 +0x040 TlsBitmap : 0xe11a1008  +0x044 TlsBitmapBits : [2] 0 +0x04c ReadOnlySharedMemoryBase : (null)  +0x050 ReadOnlySharedMemoryHeap : (null)  +0x054 ReadOnlyStaticServerData : (null)  +0x058 AnsiCodePageData : (null)  +0x05c OemCodePageData : (null)  +0x060 UnicodeCaseTableData : (null)  +0x064 NumberOfProcessors : 0 +0x068 NtGlobalFlag : 0 +0x070 CriticalSectionTimeout : _LARGE_INTEGER 0x0 +0x078 HeapSegmentReserve : 0 +0x07c HeapSegmentCommit : 0 +0x080 HeapDeCommitTotalFreeThreshold : 0 +0x084 HeapDeCommitFreeBlockThreshold : 0 +0x088 NumberOfHeaps : 0 +0x08c MaximumNumberOfHeaps : 0 +0x090 ProcessHeaps : (null)  +0x094 GdiSharedHandleTable : (null)  +0x098 ProcessStarterHelper : (null)  +0x09c GdiDCAttributeList : 0 +0x0a0 LoaderLock : (null)  +0x0a4 OSMajorVersion : 0 +0x0a8 OSMinorVersion : 0 +0x0ac OSBuildNumber : 0 +0x0ae OSCSDVersion : 0 +0x0b0 OSPlatformId : 0 +0x0b4 ImageSubsystem : 0 +0x0b8 ImageSubsystemMajorVersion : 0 +0x0bc ImageSubsystemMinorVersion : 0 +0x0c0 ImageProcessAffinityMask : 0 +0x0c4 GdiHandleBuffer : [34] 0x804 +0x14c PostProcessInitRoutine : (null)  +0x150 TlsExpansionBitmap : (null)  +0x154 TlsExpansionBitmapBits : [32] 0 +0x1d4 SessionId : 0 +0x1d8 AppCompatFlags : _ULARGE_INTEGER 0x0 +0x1e0 AppCompatFlagsUser : _ULARGE_INTEGER 0x0 +0x1e8 pShimData : (null)  +0x1ec AppCompatInfo : (null)  +0x1f0 CSDVersion : _UNICODE_STRING "" +0x1f8 ActivationContextData : (null)  +0x1fc ProcessAssemblyStorageMap : (null)  +0x200 SystemDefaultActivationContextData : (null)  +0x204 SystemAssemblyStorageMap : (null)  +0x208 MinimumStackCommit : 0 +0x1b4 PrefetchTrace : _EX_FAST_REF +0x000 Object : (null)  +0x000 RefCnt : 0y000 +0x000 Value : 0 +0x1b8 ReadOperationCount : _LARGE_INTEGER 0x4 +0x000 LowPart : 4 +0x004 HighPart : 0 +0x000 u : __unnamed +0x000 QuadPart : 4 +0x1c0 WriteOperationCount : _LARGE_INTEGER 0x5 +0x000 LowPart : 5 +0x004 HighPart : 0 +0x000 u : __unnamed +0x000 QuadPart : 5 +0x1c8 OtherOperationCount : _LARGE_INTEGER 0x1a0 +0x000 LowPart : 0x1a0 +0x004 HighPart : 0 +0x000 u : __unnamed +0x000 QuadPart : 416 +0x1d0 ReadTransferCount : _LARGE_INTEGER 0x4f12 +0x000 LowPart : 0x4f12 +0x004 HighPart : 0 +0x000 u : __unnamed +0x000 QuadPart : 20242 +0x1d8 WriteTransferCount : _LARGE_INTEGER 0x34d8 +0x000 LowPart : 0x34d8 +0x004 HighPart : 0 +0x000 u : __unnamed +0x000 QuadPart : 13528 +0x1e0 OtherTransferCount : _LARGE_INTEGER 0x18420 +0x000 LowPart : 0x18420 +0x004 HighPart : 0 +0x000 u : __unnamed +0x000 QuadPart : 99360 +0x1e8 CommitChargeLimit : 0 +0x1ec CommitChargePeak : 0x1a8 +0x1f0 AweInfo : (null)  +0x1f4 SeAuditProcessCreationInfo : _SE_AUDIT_PROCESS_CREATION_INFO +0x000 ImageFileName : 0x80d4b810 _OBJECT_NAME_INFORMATION +0x1f8 Vm : _MMSUPPORT +0x000 LastTrimTime : _LARGE_INTEGER 0x1c8afe7`be97440c +0x008 Flags : _MMSUPPORT_FLAGS +0x00c PageFaultCount : 0x435 +0x010 PeakWorkingSetSize : 0x3fb +0x014 WorkingSetSize : 0x3fb +0x018 MinimumWorkingSetSize : 0x32 +0x01c MaximumWorkingSetSize : 0x159 +0x020 VmWorkingSetList : 0xc0503000 _MMWSL +0x024 WorkingSetExpansionLinks : _LIST_ENTRY [ 0x8055fc50 - 0x80ee69d4 ] +0x02c Claim : 8 +0x030 NextEstimationSlot : 0x169 +0x034 NextAgingSlot : 0x14 +0x038 EstimatedAvailable : 8 +0x03c GrowthSinceLastEstimate : 0 +0x238 LastFaultCount : 0 +0x23c ModifiedPageCount : 7 +0x240 NumberOfVads : 0x45 +0x244 JobStatus : 0 +0x248 Flags : 0xd0a00 +0x248 CreateReported : 0y0 +0x248 NoDebugInherit : 0y0 +0x248 ProcessExiting : 0y0 +0x248 ProcessDelete : 0y0 +0x248 Wow64SplitPages : 0y0 +0x248 VmDeleted : 0y0 +0x248 OutswapEnabled : 0y0 +0x248 Outswapped : 0y0 +0x248 ForkFailed : 0y0 +0x248 HasPhysicalVad : 0y1 +0x248 AddressSpaceInitialized : 0y10 +0x248 SetTimerResolution : 0y0 +0x248 BreakOnTermination : 0y0 +0x248 SessionCreationUnderway : 0y0 +0x248 WriteWatch : 0y0 +0x248 ProcessInSession : 0y1 +0x248 OverrideAddressSpace : 0y0 +0x248 HasAddressSpace : 0y1 +0x248 LaunchPrefetched : 0y1 +0x248 InjectInpageErrors : 0y0 +0x248 VmTopDown : 0y0 +0x248 Unused3 : 0y0 +0x248 Unused4 : 0y0 +0x248 VdmAllowed : 0y0 +0x248 Unused : 0y00000 (0) +0x248 Unused1 : 0y0 +0x248 Unused2 : 0y0 +0x24c ExitStatus : 259 +0x250 NextPageColor : 0x79e0 +0x252 SubSystemMinorVersion : 0 '' +0x253 SubSystemMajorVersion : 0x4 '' +0x252 SubSystemVersion : 0x400 +0x254 PriorityClass : 0x2 '' +0x255 WorkingSetAcquiredUnsafe : 0 '' +0x258 Cookie : 0xbf681b82  

    Windows 2000:  

    nt!_EPROCESS +0x000 Pcb : _KPROCESS +0x06c ExitStatus : 259 +0x070 LockEvent : _KEVENT +0x080 LockCount : 1 +0x088 CreateTime : _LARGE_INTEGER 0x1c87e74`e265cc4c +0x090 ExitTime : _LARGE_INTEGER 0x0 +0x098 LockOwner : (null)  +0x09c UniqueProcessId : 0x000001c8  +0x0a0 ActiveProcessLinks : _LIST_ENTRY [ 0x8046dcb0 - 0x81672a60 ] +0x0a8 QuotaPeakPoolUsage : [2] 0x824 +0x0b0 QuotaPoolUsage : [2] 0x684 +0x0b8 PagefileUsage : 0x39 +0x0bc CommitCharge : 0x39 +0x0c0 PeakPagefileUsage : 0x39 +0x0c4 PeakVirtualSize : 0x8f0000 +0x0c8 VirtualSize : 0x8f0000 +0x0d0 Vm : _MMSUPPORT +0x118 SessionProcessLinks : _LIST_ENTRY [ 0x0 - 0x0 ] +0x120 DebugPort : (null)  +0x124 ExceptionPort : 0xe19c2b20  +0x128 ObjectTable : 0x8166ef48 _HANDLE_TABLE +0x12c Token : 0xe1b61250  +0x130 WorkingSetLock : _FAST_MUTEX +0x150 WorkingSetPage : 0x4886 +0x154 ProcessOutswapEnabled : 0 '' +0x155 ProcessOutswapped : 0 '' +0x156 AddressSpaceInitialized : 0x2 '' +0x157 AddressSpaceDeleted : 0 '' +0x158 AddressCreationLock : _FAST_MUTEX +0x178 HyperSpaceLock : 0 +0x17c ForkInProgress : (null)  +0x180 VmOperation : 0 +0x182 ForkWasSuccessful : 0 '' +0x183 MmAgressiveWsTrimMask : 0 '' +0x184 VmOperationEvent : (null)  +0x188 PaeTop : (null)  +0x18c LastFaultCount : 0 +0x190 ModifiedPageCount : 0 +0x194 VadRoot : 0x8166f928  +0x198 VadHint : 0x8166c788  +0x19c CloneRoot : (null)  +0x1a0 NumberOfPrivatePages : 0x31 +0x1a4 NumberOfLockedPages : 0 +0x1a8 NextPageColor : 0x20c4 +0x1aa ExitProcessCalled : 0 '' +0x1ab CreateProcessReported : 0 '' +0x1ac SectionHandle : 0x00000004  +0x1b0 Peb : 0x7ffdf000 _PEB +0x1b4 SectionBaseAddress : 0x01000000  +0x1b8 QuotaBlock : 0x8046dd00 _EPROCESS_QUOTA_BLOCK +0x1bc LastThreadExitStatus : 0 +0x1c0 WorkingSetWatch : (null)  +0x1c4 Win32WindowStation : 0x00000040  +0x1c8 InheritedFromUniqueProcessId : 0x000000d4  +0x1cc GrantedAccess : 0x1f0fff +0x1d0 DefaultHardErrorProcessing : 0 +0x1d4 LdtInformation : (null)  +0x1d8 VadFreeHint : 0x8166c768  +0x1dc VdmObjects : (null)  +0x1e0 DeviceMap : 0x8187dee8  +0x1e4 SessionId : 0 +0x1e8 PhysicalVadList : _LIST_ENTRY [ 0x8167db08 - 0x8167db08 ] +0x1f0 PageDirectoryPte : _HARDWARE_PTE_X86 +0x1f0 Filler : 0 +0x1f8 PaePageDirectoryPage : 0 +0x1fc ImageFileName : [16] "svchost.exe" +0x20c VmTrimFaultValue : 0 +0x210 SetTimerResolution : 0 '' +0x211 PriorityClass : 0x2 '' +0x212 SubSystemMinorVersion : 0 '' +0x213 SubSystemMajorVersion : 0x4 '' +0x212 SubSystemVersion : 0x400 +0x214 Win32Process : 0xe1b64508  +0x218 Job : (null)  +0x21c JobStatus : 0 +0x220 JobLinks : _LIST_ENTRY [ 0x0 - 0x0 ] +0x228 LockedPagesList : (null)  +0x22c SecurityPort : (null)  +0x230 Wow64Process : (null)  +0x238 ReadOperationCount : _LARGE_INTEGER 0x2 +0x240 WriteOperationCount : _LARGE_INTEGER 0x2 +0x248 OtherOperationCount : _LARGE_INTEGER 0x39 +0x250 ReadTransferCount : _LARGE_INTEGER 0x30 +0x258 WriteTransferCount : _LARGE_INTEGER 0xc +0x260 OtherTransferCount : _LARGE_INTEGER 0x920 +0x268 CommitChargeLimit : 0 +0x26c CommitChargePeak : 0x39 +0x270 ThreadListHead : _LIST_ENTRY [ 0x8166dfe0 - 0x8166be80 ] +0x278 VadPhysicalPagesBitMap : (null)  +0x27c VadPhysicalPages : 0 +0x280 AweLock : 0 +0x284 pImageFileName : 0x8167c818 _UNICODE_STRING "\WINNT\system32\svchost.exe" kd> dt nt!_KPROCESS 8167d920 +0x000 Header : _DISPATCHER_HEADER +0x010 ProfileListHead : _LIST_ENTRY [ 0x8167d930 - 0x8167d930 ] +0x018 DirectoryTableBase : [2] 0x47c4000 +0x020 LdtDescriptor : _KGDTENTRY +0x028 Int21Descriptor : _KIDTENTRY +0x030 IopmOffset : 0x20ac +0x032 Iopl : 0 '' +0x033 VdmFlag : 0 '' +0x034 ActiveProcessors : 0 +0x038 KernelTime : 0 +0x03c UserTime : 1 +0x040 ReadyListHead : _LIST_ENTRY [ 0x8167d960 - 0x8167d960 ] +0x048 SwapListEntry : _LIST_ENTRY [ 0x0 - 0x0 ] +0x050 ThreadListHead : _LIST_ENTRY [ 0x8166df44 - 0x8166bde4 ] +0x058 ProcessLock : 0 +0x05c Affinity : 1 +0x060 StackCount : 2 +0x062 BasePriority : 8 '' +0x063 ThreadQuantum : 6 '' +0x064 AutoAlignment : 0 '' +0x065 State : 0 '' +0x066 ThreadSeed : 0x62 'b' +0x067 DisableBoost : 0 '' +0x068 PowerState : 0 '' +0x069 DisableQuantum : 0 '' +0x06a Spare : [2] ""  }  _EPROCESS结构中的_PEB结构指针来得到ProcessParameters的地址。ProcessParameters保存着进程的完整路径。 Windows 2000 Server: +0x000 Pcb : _KPROCESS +0x000 Header : _DISPATCHER_HEADER +0x010 ProfileListHead : _LIST_ENTRY +0x018 DirectoryTableBase : [2] Uint4B +0x020 LdtDescriptor : _KGDTENTRY +0x028 Int21Descriptor : _KIDTENTRY +0x030 IopmOffset : Uint2B +0x032 Iopl : UChar +0x033 VdmFlag : UChar +0x034 ActiveProcessors : Uint4B +0x038 KernelTime : Uint4B +0x03c UserTime : Uint4B +0x040 ReadyListHead : _LIST_ENTRY +0x048 SwapListEntry : _LIST_ENTRY +0x050 ThreadListHead : _LIST_ENTRY +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 Spare : [2] UChar +0x06c ExitStatus : Int4B +0x070 LockEvent : _KEVENT +0x000 Header : _DISPATCHER_HEADER +0x080 LockCount : Uint4B +0x088 CreateTime : _LARGE_INTEGER +0x000 LowPart : Uint4B +0x004 HighPart : Int4B +0x000 u : __unnamed +0x000 QuadPart : Int8B +0x090 ExitTime : _LARGE_INTEGER +0x000 LowPart : Uint4B +0x004 HighPart : Int4B +0x000 u : __unnamed +0x000 QuadPart : Int8B +0x098 LockOwner : Ptr32 _KTHREAD +0x09c UniqueProcessId : Ptr32 Void +0x0a0 ActiveProcessLinks : _LIST_ENTRY +0x000 Flink : Ptr32 _LIST_ENTRY +0x004 Blink : Ptr32 _LIST_ENTRY +0x0a8 QuotaPeakPoolUsage : [2] Uint4B +0x0b0 QuotaPoolUsage : [2] Uint4B +0x0b8 PagefileUsage : Uint4B +0x0bc CommitCharge : Uint4B +0x0c0 PeakPagefileUsage : Uint4B +0x0c4 PeakVirtualSize : Uint4B +0x0c8 VirtualSize : Uint4B +0x0d0 Vm : _MMSUPPORT +0x000 LastTrimTime : _LARGE_INTEGER +0x008 LastTrimFaultCount : Uint4B +0x00c PageFaultCount : Uint4B +0x010 PeakWorkingSetSize : Uint4B +0x014 WorkingSetSize : Uint4B +0x018 MinimumWorkingSetSize : Uint4B +0x01c MaximumWorkingSetSize : Uint4B +0x020 VmWorkingSetList : Ptr32 _MMWSL +0x024 WorkingSetExpansionLinks : _LIST_ENTRY +0x02c AllowWorkingSetAdjustment : UChar +0x02d AddressSpaceBeingDeleted : UChar +0x02e ForegroundSwitchCount : UChar +0x02f MemoryPriority : UChar +0x030 u : __unnamed +0x034 Claim : Uint4B +0x038 NextEstimationSlot : Uint4B +0x03c NextAgingSlot : Uint4B +0x040 EstimatedAvailable : Uint4B +0x044 GrowthSinceLastEstimate : Uint4B +0x118 SessionProcessLinks : _LIST_ENTRY +0x000 Flink : Ptr32 _LIST_ENTRY +0x004 Blink : Ptr32 _LIST_ENTRY +0x120 DebugPort : Ptr32 Void +0x124 ExceptionPort : Ptr32 Void +0x128 ObjectTable : Ptr32 _HANDLE_TABLE +0x000 Flags : Uint4B +0x004 HandleCount : Int4B +0x008 Table : Ptr32 Ptr32 Ptr32 _HANDLE_TABLE_ENTRY +0x00c QuotaProcess : Ptr32 _EPROCESS +0x010 UniqueProcessId : Ptr32 Void +0x014 FirstFreeTableEntry : Int4B +0x018 NextIndexNeedingPool : Int4B +0x01c HandleTableLock : _ERESOURCE +0x054 HandleTableList : _LIST_ENTRY +0x05c HandleContentionEvent : _KEVENT +0x12c Token : Ptr32 Void +0x130 WorkingSetLock : _FAST_MUTEX +0x000 Count : Int4B +0x004 Owner : Ptr32 _KTHREAD +0x008 Contention : Uint4B +0x00c Event : _KEVENT +0x01c OldIrql : Uint4B +0x150 WorkingSetPage : Uint4B +0x154 ProcessOutswapEnabled : UChar +0x155 ProcessOutswapped : UChar +0x156 AddressSpaceInitialized : UChar +0x157 AddressSpaceDeleted : UChar +0x158 AddressCreationLock : _FAST_MUTEX +0x000 Count : Int4B +0x004 Owner : Ptr32 _KTHREAD +0x008 Contention : Uint4B +0x00c Event : _KEVENT +0x01c OldIrql : Uint4B +0x178 HyperSpaceLock : Uint4B +0x17c ForkInProgress : Ptr32 _ETHREAD +0x180 VmOperation : Uint2B +0x182 ForkWasSuccessful : UChar +0x183 MmAgressiveWsTrimMask : UChar +0x184 VmOperationEvent : Ptr32 _KEVENT +0x000 Header : _DISPATCHER_HEADER +0x188 PaeTop : Ptr32 Void +0x18c LastFaultCount : Uint4B +0x190 ModifiedPageCount : Uint4B +0x194 VadRoot : Ptr32 Void +0x198 VadHint : Ptr32 Void +0x19c CloneRoot : Ptr32 Void +0x1a0 NumberOfPrivatePages : Uint4B +0x1a4 NumberOfLockedPages : Uint4B +0x1a8 NextPageColor : Uint2B +0x1aa ExitProcessCalled : UChar +0x1ab CreateProcessReported : UChar +0x1ac SectionHandle : Ptr32 Void +0x1b0 Peb : Ptr32 _PEB +0x000 InheritedAddressSpace : UChar +0x001 ReadImageFileExecOptions : UChar +0x002 BeingDebugged : UChar +0x003 SpareBool : UChar +0x004 Mutant : Ptr32 Void +0x008 ImageBaseAddress : Ptr32 Void +0x00c Ldr : Ptr32 _PEB_LDR_DATA +0x010 ProcessParameters : Ptr32 _RTL_USER_PROCESS_PARAMETERS +0x014 SubSystemData : Ptr32 Void +0x018 ProcessHeap : Ptr32 Void +0x01c FastPebLock : Ptr32 Void +0x020 FastPebLockRoutine : Ptr32 Void +0x024 FastPebUnlockRoutine : Ptr32 Void +0x028 EnvironmentUpdateCount : Uint4B +0x02c KernelCallbackTable : Ptr32 Void +0x030 SystemReserved : [2] Uint4B +0x038 FreeList : Ptr32 _PEB_FREE_BLOCK +0x03c TlsExpansionCounter : Uint4B +0x040 TlsBitmap : Ptr32 Void +0x044 TlsBitmapBits : [2] Uint4B +0x04c ReadOnlySharedMemoryBase : Ptr32 Void +0x050 ReadOnlySharedMemoryHeap : Ptr32 Void +0x054 ReadOnlyStaticServerData : Ptr32 Ptr32 Void +0x058 AnsiCodePageData : Ptr32 Void +0x05c OemCodePageData : Ptr32 Void +0x060 UnicodeCaseTableData : Ptr32 Void +0x064 NumberOfProcessors : Uint4B +0x068 NtGlobalFlag : Uint4B +0x070 CriticalSectionTimeout : _LARGE_INTEGER +0x078 HeapSegmentReserve : Uint4B +0x07c HeapSegmentCommit : Uint4B +0x080 HeapDeCommitTotalFreeThreshold : Uint4B +0x084 HeapDeCommitFreeBlockThreshold : Uint4B +0x088 NumberOfHeaps : Uint4B +0x08c MaximumNumberOfHeaps : Uint4B +0x090 ProcessHeaps : Ptr32 Ptr32 Void +0x094 GdiSharedHandleTable : Ptr32 Void +0x098 ProcessStarterHelper : Ptr32 Void +0x09c GdiDCAttributeList : Uint4B +0x0a0 LoaderLock : Ptr32 Void +0x0a4 OSMajorVersion : Uint4B +0x0a8 OSMinorVersion : Uint4B +0x0ac OSBuildNumber : Uint2B +0x0ae OSCSDVersion : Uint2B +0x0b0 OSPlatformId : Uint4B +0x0b4 ImageSubsystem : Uint4B +0x0b8 ImageSubsystemMajorVersion : Uint4B +0x0bc ImageSubsystemMinorVersion : Uint4B +0x0c0 ImageProcessAffinityMask : Uint4B +0x0c4 GdiHandleBuffer : [34] Uint4B +0x14c PostProcessInitRoutine : Ptr32  +0x150 TlsExpansionBitmap : Ptr32 Void +0x154 TlsExpansionBitmapBits : [32] Uint4B +0x1d4 SessionId : Uint4B +0x1d8 AppCompatInfo : Ptr32 Void +0x1dc CSDVersion : _UNICODE_STRING +0x1b4 SectionBaseAddress : Ptr32 Void +0x1b8 QuotaBlock : Ptr32 _EPROCESS_QUOTA_BLOCK +0x000 QuotaLock : Uint4B +0x004 ReferenceCount : Uint4B +0x008 QuotaPeakPoolUsage : [2] Uint4B +0x010 QuotaPoolUsage : [2] Uint4B +0x018 QuotaPoolLimit : [2] Uint4B +0x020 PeakPagefileUsage : Uint4B +0x024 PagefileUsage : Uint4B +0x028 PagefileLimit : Uint4B +0x1bc LastThreadExitStatus : Int4B +0x1c0 WorkingSetWatch : Ptr32 _PAGEFAULT_HISTORY +0x000 CurrentIndex : Uint4B +0x004 MaxIndex : Uint4B +0x008 SpinLock : Uint4B +0x00c Reserved : Ptr32 Void +0x010 WatchInfo : [1] _PROCESS_WS_WATCH_INFORMATION +0x1c4 Win32WindowStation : Ptr32 Void +0x1c8 InheritedFromUniqueProcessId : Ptr32 Void +0x1cc GrantedAccess : Uint4B +0x1d0 DefaultHardErrorProcessing : Uint4B +0x1d4 LdtInformation : Ptr32 Void +0x1d8 VadFreeHint : Ptr32 Void +0x1dc VdmObjects : Ptr32 Void +0x1e0 DeviceMap : Ptr32 Void +0x1e4 SessionId : Uint4B +0x1e8 PhysicalVadList : _LIST_ENTRY +0x000 Flink : Ptr32 _LIST_ENTRY +0x004 Blink : Ptr32 _LIST_ENTRY +0x1f0 PageDirectoryPte : _HARDWARE_PTE_X86 +0x000 Valid : Pos 0, 1 Bit +0x000 Write : Pos 1, 1 Bit +0x000 Owner : Pos 2, 1 Bit +0x000 WriteThrough : Pos 3, 1 Bit +0x000 CacheDisable : Pos 4, 1 Bit +0x000 Accessed : Pos 5, 1 Bit +0x000 Dirty : Pos 6, 1 Bit +0x000 LargePage : Pos 7, 1 Bit +0x000 Global : Pos 8, 1 Bit +0x000 CopyOnWrite : Pos 9, 1 Bit +0x000 Prototype : Pos 10, 1 Bit +0x000 reserved : Pos 11, 1 Bit +0x000 PageFrameNumber : Pos 12, 20 Bits +0x1f0 Filler : Uint8B +0x1f8 PaePageDirectoryPage : Uint4B +0x1fc ImageFileName : [16] UChar +0x20c VmTrimFaultValue : Uint4B +0x210 SetTimerResolution : UChar +0x211 PriorityClass : UChar +0x212 SubSystemMinorVersion : UChar +0x213 SubSystemMajorVersion : UChar +0x212 SubSystemVersion : Uint2B +0x214 Win32Process : Ptr32 Void +0x218 Job : Ptr32 _EJOB +0x000 Event : _KEVENT +0x010 JobLinks : _LIST_ENTRY +0x018 ProcessListHead : _LIST_ENTRY +0x020 JobLock : _ERESOURCE +0x058 TotalUserTime : _LARGE_INTEGER +0x060 TotalKernelTime : _LARGE_INTEGER +0x068 ThisPeriodTotalUserTime : _LARGE_INTEGER +0x070 ThisPeriodTotalKernelTime : _LARGE_INTEGER +0x078 TotalPageFaultCount : Uint4B +0x07c TotalProcesses : Uint4B +0x080 ActiveProcesses : Uint4B +0x084 TotalTerminatedProcesses : Uint4B +0x088 PerProcessUserTimeLimit : _LARGE_INTEGER +0x090 PerJobUserTimeLimit : _LARGE_INTEGER +0x098 LimitFlags : Uint4B +0x09c MinimumWorkingSetSize : Uint4B +0x0a0 MaximumWorkingSetSize : Uint4B +0x0a4 ActiveProcessLimit : Uint4B +0x0a8 Affinity : Uint4B +0x0ac PriorityClass : UChar +0x0b0 UIRestrictionsClass : Uint4B +0x0b4 SecurityLimitFlags : Uint4B +0x0b8 Token : Ptr32 Void +0x0bc Filter : Ptr32 _PS_JOB_TOKEN_FILTER +0x0c0 EndOfJobTimeAction : Uint4B +0x0c4 CompletionPort : Ptr32 Void +0x0c8 CompletionKey : Ptr32 Void +0x0cc SessionId : Uint4B +0x0d0 SchedulingClass : Uint4B +0x0d8 ReadOperationCount : Uint8B +0x0e0 WriteOperationCount : Uint8B +0x0e8 OtherOperationCount : Uint8B +0x0f0 ReadTransferCount : Uint8B +0x0f8 WriteTransferCount : Uint8B +0x100 OtherTransferCount : Uint8B +0x108 IoInfo : _IO_COUNTERS +0x138 ProcessMemoryLimit : Uint4B +0x13c JobMemoryLimit : Uint4B +0x140 PeakProcessMemoryUsed : Uint4B +0x144 PeakJobMemoryUsed : Uint4B +0x148 CurrentJobMemoryUsed : Uint4B +0x14c MemoryLimitsLock : _FAST_MUTEX +0x21c JobStatus : Uint4B +0x220 JobLinks : _LIST_ENTRY +0x000 Flink : Ptr32 _LIST_ENTRY +0x004 Blink : Ptr32 _LIST_ENTRY +0x228 LockedPagesList : Ptr32 Void +0x22c SecurityPort : Ptr32 Void +0x230 Wow64Process : Ptr32 _WOW64_PROCESS +0x000 Wow64 : Ptr32 Void +0x238 ReadOperationCount : _LARGE_INTEGER +0x000 LowPart : Uint4B +0x004 HighPart : Int4B +0x000 u : __unnamed +0x000 QuadPart : Int8B +0x240 WriteOperationCount : _LARGE_INTEGER +0x000 LowPart : Uint4B +0x004 HighPart : Int4B +0x000 u : __unnamed +0x000 QuadPart : Int8B +0x248 OtherOperationCount : _LARGE_INTEGER +0x000 LowPart : Uint4B +0x004 HighPart : Int4B +0x000 u : __unnamed +0x000 QuadPart : Int8B +0x250 ReadTransferCount : _LARGE_INTEGER +0x000 LowPart : Uint4B +0x004 HighPart : Int4B +0x000 u : __unnamed +0x000 QuadPart : Int8B +0x258 WriteTransferCount : _LARGE_INTEGER +0x000 LowPart : Uint4B +0x004 HighPart : Int4B +0x000 u : __unnamed +0x000 QuadPart : Int8B +0x260 OtherTransferCount : _LARGE_INTEGER +0x000 LowPart : Uint4B +0x004 HighPart : Int4B +0x000 u : __unnamed +0x000 QuadPart : Int8B +0x268 CommitChargeLimit : Uint4B +0x26c CommitChargePeak : Uint4B +0x270 ThreadListHead : _LIST_ENTRY +0x000 Flink : Ptr32 _LIST_ENTRY +0x004 Blink : Ptr32 _LIST_ENTRY +0x278 VadPhysicalPagesBitMap : Ptr32 _RTL_BITMAP +0x000 SizeOfBitMap : Uint4B +0x004 Buffer : Ptr32 Uint4B +0x27c VadPhysicalPages : Uint4B +0x280 AweLock : Uint4B +0x284 pImageFileName : Ptr32 _UNICODE_STRING +0x000 Length : Uint2B +0x002 MaximumLength : Uint2B +0x004 Buffer : Ptr32 Uint2B +0x288 Session : Ptr32 Void +0x28c Flags : Uint4B

    Windows 7 RTM X32:  

    0:001> dt _eprocess ntdll!_EPROCESS +0x000 Pcb : _KPROCESS +0x098 ProcessLock : _EX_PUSH_LOCK +0x0a0 CreateTime : _LARGE_INTEGER +0x0a8 ExitTime : _LARGE_INTEGER +0x0b0 RundownProtect : _EX_RUNDOWN_REF +0x0b4 UniqueProcessId : Ptr32 Void +0x0b8 ActiveProcessLinks : _LIST_ENTRY +0x0c0 ProcessQuotaUsage : [2] Uint4B +0x0c8 ProcessQuotaPeak : [2] Uint4B +0x0d0 CommitCharge : Uint4B +0x0d4 QuotaBlock : Ptr32 _EPROCESS_QUOTA_BLOCK +0x0d8 CpuQuotaBlock : Ptr32 _PS_CPU_QUOTA_BLOCK +0x0dc PeakVirtualSize : Uint4B +0x0e0 VirtualSize : Uint4B +0x0e4 SessionProcessLinks : _LIST_ENTRY +0x0ec DebugPort : Ptr32 Void +0x0f0 ExceptionPortData : Ptr32 Void +0x0f0 ExceptionPortValue : Uint4B +0x0f0 ExceptionPortState : Pos 0, 3 Bits +0x0f4 ObjectTable : Ptr32 _HANDLE_TABLE +0x0f8 Token : _EX_FAST_REF +0x0fc WorkingSetPage : Uint4B +0x100 AddressCreationLock : _EX_PUSH_LOCK +0x104 RotateInProgress : Ptr32 _ETHREAD +0x108 ForkInProgress : Ptr32 _ETHREAD +0x10c HardwareTrigger : Uint4B +0x110 PhysicalVadRoot : Ptr32 _MM_AVL_TABLE +0x114 CloneRoot : Ptr32 Void +0x118 NumberOfPrivatePages : Uint4B +0x11c NumberOfLockedPages : Uint4B +0x120 Win32Process : Ptr32 Void +0x124 Job : Ptr32 _EJOB +0x128 SectionObject : Ptr32 Void +0x12c SectionBaseAddress : Ptr32 Void +0x130 Cookie : Uint4B +0x134 Spare8 : Uint4B +0x138 WorkingSetWatch : Ptr32 _PAGEFAULT_HISTORY +0x13c Win32WindowStation : Ptr32 Void +0x140 InheritedFromUniqueProcessId : Ptr32 Void +0x144 LdtInformation : Ptr32 Void +0x148 VdmObjects : Ptr32 Void +0x14c ConsoleHostProcess : Uint4B +0x150 DeviceMap : Ptr32 Void +0x154 EtwDataSource : Ptr32 Void +0x158 FreeTebHint : Ptr32 Void +0x160 PageDirectoryPte : _HARDWARE_PTE_X86 +0x160 Filler : Uint8B +0x168 Session : Ptr32 Void +0x16c ImageFileName : [15] UChar +0x17b PriorityClass : UChar +0x17c JobLinks : _LIST_ENTRY +0x184 LockedPagesList : Ptr32 Void +0x188 ThreadListHead : _LIST_ENTRY +0x190 SecurityPort : Ptr32 Void +0x194 PaeTop : Ptr32 Void +0x198 ActiveThreads : Uint4B +0x19c ImagePathHash : Uint4B +0x1a0 DefaultHardErrorProcessing : Uint4B +0x1a4 LastThreadExitStatus : Int4B +0x1a8 Peb : Ptr32 _PEB +0x1ac PrefetchTrace : _EX_FAST_REF +0x1b0 ReadOperationCount : _LARGE_INTEGER +0x1b8 WriteOperationCount : _LARGE_INTEGER +0x1c0 OtherOperationCount : _LARGE_INTEGER +0x1c8 ReadTransferCount : _LARGE_INTEGER +0x1d0 WriteTransferCount : _LARGE_INTEGER +0x1d8 OtherTransferCount : _LARGE_INTEGER +0x1e0 CommitChargeLimit : Uint4B +0x1e4 CommitChargePeak : Uint4B +0x1e8 AweInfo : Ptr32 Void +0x1ec SeAuditProcessCreationInfo : _SE_AUDIT_PROCESS_CREATION_INFO +0x1f0 Vm : _MMSUPPORT +0x25c MmProcessLinks : _LIST_ENTRY +0x264 HighestUserAddress : Ptr32 Void +0x268 ModifiedPageCount : Uint4B +0x26c Flags2 : Uint4B +0x26c JobNotReallyActive : Pos 0, 1 Bit +0x26c AccountingFolded : Pos 1, 1 Bit +0x26c NewProcessReported : Pos 2, 1 Bit +0x26c ExitProcessReported : Pos 3, 1 Bit +0x26c ReportCommitChanges : Pos 4, 1 Bit +0x26c LastReportMemory : Pos 5, 1 Bit +0x26c ReportPhysicalPageChanges : Pos 6, 1 Bit +0x26c HandleTableRundown : Pos 7, 1 Bit +0x26c NeedsHandleRundown : Pos 8, 1 Bit +0x26c RefTraceEnabled : Pos 9, 1 Bit +0x26c NumaAware : Pos 10, 1 Bit +0x26c ProtectedProcess : Pos 11, 1 Bit +0x26c DefaultPagePriority : Pos 12, 3 Bits +0x26c PrimaryTokenFrozen : Pos 15, 1 Bit +0x26c ProcessVerifierTarget : Pos 16, 1 Bit +0x26c StackRandomizationDisabled : Pos 17, 1 Bit +0x26c AffinityPermanent : Pos 18, 1 Bit +0x26c AffinityUpdateEnable : Pos 19, 1 Bit +0x26c PropagateNode : Pos 20, 1 Bit +0x26c ExplicitAffinity : Pos 21, 1 Bit +0x270 Flags : Uint4B +0x270 CreateReported : Pos 0, 1 Bit +0x270 NoDebugInherit : Pos 1, 1 Bit +0x270 ProcessExiting : Pos 2, 1 Bit +0x270 ProcessDelete : Pos 3, 1 Bit +0x270 Wow64SplitPages : Pos 4, 1 Bit +0x270 VmDeleted : Pos 5, 1 Bit +0x270 OutswapEnabled : Pos 6, 1 Bit +0x270 Outswapped : Pos 7, 1 Bit +0x270 ForkFailed : Pos 8, 1 Bit +0x270 Wow64VaSpace4Gb : Pos 9, 1 Bit +0x270 AddressSpaceInitialized : Pos 10, 2 Bits +0x270 SetTimerResolution : Pos 12, 1 Bit +0x270 BreakOnTermination : Pos 13, 1 Bit +0x270 DeprioritizeViews : Pos 14, 1 Bit +0x270 WriteWatch : Pos 15, 1 Bit +0x270 ProcessInSession : Pos 16, 1 Bit +0x270 OverrideAddressSpace : Pos 17, 1 Bit +0x270 HasAddressSpace : Pos 18, 1 Bit +0x270 LaunchPrefetched : Pos 19, 1 Bit +0x270 InjectInpageErrors : Pos 20, 1 Bit +0x270 VmTopDown : Pos 21, 1 Bit +0x270 ImageNotifyDone : Pos 22, 1 Bit +0x270 PdeUpdateNeeded : Pos 23, 1 Bit +0x270 VdmAllowed : Pos 24, 1 Bit +0x270 CrossSessionCreate : Pos 25, 1 Bit +0x270 ProcessInserted : Pos 26, 1 Bit +0x270 DefaultIoPriority : Pos 27, 3 Bits +0x270 ProcessSelfDelete : Pos 30, 1 Bit +0x270 SetTimerResolutionLink : Pos 31, 1 Bit +0x274 ExitStatus : Int4B +0x278 VadRoot : _MM_AVL_TABLE +0x298 AlpcContext : _ALPC_PROCESS_CONTEXT +0x2a8 TimerResolutionLink : _LIST_ENTRY +0x2b0 RequestedTimerResolution : Uint4B +0x2b4 ActiveThreadsHighWatermark : Uint4B +0x2b8 SmallestTimerResolution : Uint4B +0x2bc TimerResolutionStackRecord : Ptr32 _PO_DIAG_STACK_RECORD  

    Windows Server 2003 x32:  

     +0x000 Pcb              : _KPROCESS       +0x000 Header           : _DISPATCHER_HEADER       +0x010 ProfileListHead : _LIST_ENTRY [ 0x8163cc00 - 0x8163cc00 ]       +0x018 DirectoryTableBase : [2] 0x249b000       +0x020 LdtDescriptor    : _KGDTENTRY       +0x028 Int21Descriptor : _KIDTENTRY       +0x030 IopmOffset       : 0x20ac       +0x032 Iopl             : 0 ''       +0x033 Unused           : 0 ''       +0x034 ActiveProcessors : 0       +0x038 KernelTime       : 0       +0x03c UserTime         : 0       +0x040 ReadyListHead    : _LIST_ENTRY [ 0x8163cc30 - 0x8163cc30 ]       +0x048 SwapListEntry    : _SINGLE_LIST_ENTRY       +0x04c VdmTrapcHandler : (null)        +0x050 ThreadListHead   : _LIST_ENTRY [ 0x81204c00 - 0x811fed98 ]       +0x058 ProcessLock      : 0       +0x05c Affinity         : 1       +0x060 AutoAlignment    : 0y0       +0x060 DisableBoost     : 0y0       +0x060 DisableQuantum   : 0y0       +0x060 ReservedFlags    : 0y00000000000000000000000000000 (0)       +0x060 ProcessFlags     : 0       +0x064 BasePriority     : 13 ''       +0x065 QuantumReset     : 36 '$'       +0x066 State            : 0 ''       +0x067 ThreadSeed       : 0 ''       +0x068 PowerState       : 0 ''       +0x069 IdealNode        : 0 ''       +0x06a Visited          : 0 ''       +0x06b Flags            : _KEXECUTE_OPTIONS       +0x06b ExecuteOptions   : 0 ''       +0x06c StackCount       : 4       +0x070 ProcessListEntry : _LIST_ENTRY [ 0x0 - 0x0 ]    +0x078 ProcessLock      : _EX_PUSH_LOCK       +0x000 Locked           : 0y0       +0x000 Waiting          : 0y0       +0x000 Waking           : 0y0       +0x000 MultipleShared   : 0y0       +0x000 Shared           : 0y0000000000000000000000000000 (0)       +0x000 Value            : 0       +0x000 Ptr              : (null)     +0x080 CreateTime       : _LARGE_INTEGER 0x1c8aff2`273b0893       +0x000 LowPart          : 0x273b0893       +0x004 HighPart         : 29929458       +0x000 u                : __unnamed       +0x000 QuadPart         : 128546043955185811    +0x088 ExitTime         : _LARGE_INTEGER 0x0       +0x000 LowPart          : 0       +0x004 HighPart         : 0       +0x000 u                : __unnamed       +0x000 QuadPart         : 0    +0x090 RundownProtect   : _EX_RUNDOWN_REF       +0x000 Count            : 0       +0x000 Ptr              : (null)     +0x094 UniqueProcessId : 0x000007d4     +0x098 ActiveProcessLinks : _LIST_ENTRY [ 0x808af068 - 0x81297958 ]       +0x000 Flink            : 0x808af068 _LIST_ENTRY [ 0x8179d878 - 0x8163cc88 ]       +0x004 Blink            : 0x81297958 _LIST_ENTRY [ 0x8163cc88 - 0x8120cad8 ]    +0x0a0 QuotaUsage       : [3] 0xd20    +0x0ac QuotaPeak        : [3] 0xde8    +0x0b8 CommitCharge     : 0x182    +0x0bc PeakVirtualSize : 0x20ea000    +0x0c0 VirtualSize      : 0x206a000    +0x0c4 SessionProcessLinks : _LIST_ENTRY [ 0xfa119010 - 0x81297984 ]       +0x000 Flink            : 0xfa119010 _LIST_ENTRY [ 0x815afc34 - 0x8163ccb4 ]       +0x004 Blink            : 0x81297984 _LIST_ENTRY [ 0x8163ccb4 - 0x8120cb04 ]    +0x0cc DebugPort        : (null)     +0x0d0 ExceptionPort    : 0xe13e14d8     +0x0d4 ObjectTable      : 0xe156c9d8 _HANDLE_TABLE       +0x000 TableCode        : 0xe1103000       +0x004 QuotaProcess     : 0x8163cbf0 _EPROCESS       +0x008 UniqueProcessId : 0x000007d4        +0x00c HandleTableLock : [4] _EX_PUSH_LOCK       +0x01c HandleTableList : _LIST_ENTRY [ 0x808b0928 - 0xe19f3e94 ]       +0x024 HandleContentionEvent : _EX_PUSH_LOCK       +0x028 DebugInfo        : (null)        +0x02c ExtraInfoPages   : 0       +0x030 FirstFree        : 0x17c       +0x034 LastFree         : 0       +0x038 NextHandleNeedingPool : 0x800       +0x03c HandleCount      : 93       +0x040 Flags            : 0       +0x040 StrictFIFO       : 0y0    +0x0d8 Token            : _EX_FAST_REF       +0x000 Object           : 0xe10eb705        +0x000 RefCnt           : 0y101       +0x000 Value            : 0xe10eb705    +0x0dc WorkingSetPage   : 0x279e    +0x0e0 AddressCreationLock : _KGUARDED_MUTEX       +0x000 Count            : 1       +0x004 Owner            : (null)        +0x008 Contention       : 0       +0x00c Gate             : _KGATE       +0x01c KernelApcDisable : 0       +0x01e SpecialApcDisable : 0       +0x01c CombinedApcDisable : 0    +0x100 HyperSpaceLock   : 0    +0x104 ForkInProgress   : (null)     +0x108 HardwareTrigger : 0    +0x10c PhysicalVadRoot : (null)     +0x110 CloneRoot        : (null)     +0x114 NumberOfPrivatePages : 0xec    +0x118 NumberOfLockedPages : 0    +0x11c Win32Process     : 0xe10fe898     +0x120 Job              : (null)     +0x124 SectionObject    : 0xe18996c0     +0x128 SectionBaseAddress : 0x01000000     +0x12c QuotaBlock       : 0x812c3828 _EPROCESS_QUOTA_BLOCK       +0x000 QuotaEntry       : [3] _EPROCESS_QUOTA_ENTRY       +0x030 QuotaList        : _LIST_ENTRY [ 0x808af228 - 0x8124fbe0 ]       +0x038 ReferenceCount   : 0x30c       +0x03c ProcessCount     : 6    +0x130 WorkingSetWatch : (null)     +0x134 Win32WindowStation : 0x00000050     +0x138 InheritedFromUniqueProcessId : 0x000006e4     +0x13c LdtInformation   : (null)     +0x140 VadFreeHint      : (null)     +0x144 VdmObjects       : (null)     +0x148 DeviceMap        : 0xe16ef388     +0x14c Spare0           : [3] (null)     +0x158 PageDirectoryPte : _HARDWARE_PTE       +0x000 Valid            : 0y0       +0x000 Write            : 0y0       +0x000 Owner            : 0y0       +0x000 WriteThrough     : 0y0       +0x000 CacheDisable     : 0y0       +0x000 Accessed         : 0y0       +0x000 Dirty            : 0y0       +0x000 LargePage        : 0y0       +0x000 Global           : 0y0       +0x000 CopyOnWrite      : 0y0       +0x000 Prototype        : 0y0       +0x000 reserved         : 0y0       +0x000 PageFrameNumber : 0y00000000000000000000 (0)    +0x158 Filler           : 0    +0x160 Session          : 0xfa119000     +0x164 ImageFileName    : [16] "taskmgr.exe"    +0x174 JobLinks         : _LIST_ENTRY [ 0x0 - 0x0 ]       +0x000 Flink            : (null)        +0x004 Blink            : (null)     +0x17c LockedPagesList : (null)     +0x180 ThreadListHead   : _LIST_ENTRY [ 0x81204c7c - 0x811fee14 ]       +0x000 Flink            : 0x81204c7c _LIST_ENTRY [ 0x81202fd4 - 0x8163cd70 ]       +0x004 Blink            : 0x811fee14 _LIST_ENTRY [ 0x8163cd70 - 0x8120477c ]    +0x188 SecurityPort     : (null)     +0x18c PaeTop           : (null)     +0x190 ActiveThreads    : 4    +0x194 GrantedAccess    : 0x1f0fff    +0x198 DefaultHardErrorProcessing : 0    +0x19c LastThreadExitStatus : 0    +0x1a0 Peb              : 0x7ffd9000 _PEB       +0x000 InheritedAddressSpace : 0 ''       +0x001 ReadImageFileExecOptions : 0 ''       +0x002 BeingDebugged    : 0 ''       +0x003 BitField         : 0 ''       +0x003 ImageUsesLargePages : 0y0       +0x003 SpareBits        : 0y0000000 (0)       +0x004 Mutant           : 0xffffffff        +0x008 ImageBaseAddress : 0x01000000        +0x00c Ldr              : 0x7c9b77e0 _PEB_LDR_DATA       +0x010 ProcessParameters : 0x00020000 _RTL_USER_PROCESS_PARAMETERS       +0x014 SubSystemData    : (null)        +0x018 ProcessHeap      : 0x000a0000        +0x01c FastPebLock      : 0x7c9b7740 _RTL_CRITICAL_SECTION       +0x020 AtlThunkSListPtr : (null)        +0x024 SparePtr2        : (null)        +0x028 EnvironmentUpdateCount : 1       +0x02c KernelCallbackTable : 0x77e129b0        +0x030 SystemReserved   : [1] 0       +0x034 SpareUlong       : 0       +0x038 FreeList         : (null)        +0x03c TlsExpansionCounter : 0       +0x040 TlsBitmap        : 0x7c9b8fd8        +0x044 TlsBitmapBits    : [2] 0xffff       +0x04c ReadOnlySharedMemoryBase : 0x7f6f0000        +0x050 ReadOnlySharedMemoryHeap : 0x7f6f0000        +0x054 ReadOnlyStaticServerData : 0x7f6f0688 -> (null)        +0x058 AnsiCodePageData : 0x7ffa0000        +0x05c OemCodePageData : 0x7ffa0000        +0x060 UnicodeCaseTableData : 0x7ffd1000        +0x064 NumberOfProcessors : 1       +0x068 NtGlobalFlag     : 0       +0x070 CriticalSectionTimeout : _LARGE_INTEGER 0xffffe86d`079b8000       +0x078 HeapSegmentReserve : 0x100000       +0x07c HeapSegmentCommit : 0x2000       +0x080 HeapDeCommitTotalFreeThreshold : 0x10000       +0x084 HeapDeCommitFreeBlockThreshold : 0x1000       +0x088 NumberOfHeaps    : 0xa       +0x08c MaximumNumberOfHeaps : 0x10       +0x090 ProcessHeaps     : 0x7c9b8a20 -> 0x000a0000        +0x094 GdiSharedHandleTable : 0x00430000        +0x098 ProcessStarterHelper : (null)        +0x09c GdiDCAttributeList : 0x14       +0x0a0 LoaderLock       : 0x7c9b77a0 _RTL_CRITICAL_SECTION       +0x0a4 OSMajorVersion   : 5       +0x0a8 OSMinorVersion   : 2       +0x0ac OSBuildNumber    : 0xece       +0x0ae OSCSDVersion     : 0x200       +0x0b0 OSPlatformId     : 2       +0x0b4 ImageSubsystem   : 2       +0x0b8 ImageSubsystemMajorVersion : 4       +0x0bc ImageSubsystemMinorVersion : 0       +0x0c0 ImageProcessAffinityMask : 0       +0x0c4 GdiHandleBuffer : [34] 0       +0x14c PostProcessInitRoutine : (null)        +0x150 TlsExpansionBitmap : 0x7c9b8fd0        +0x154 TlsExpansionBitmapBits : [32] 1       +0x1d4 SessionId        : 0       +0x1d8 AppCompatFlags   : _ULARGE_INTEGER 0x0       +0x1e0 AppCompatFlagsUser : _ULARGE_INTEGER 0x0       +0x1e8 pShimData        : (null)        +0x1ec AppCompatInfo    : (null)        +0x1f0 CSDVersion       : _UNICODE_STRING "Service Pack 2"       +0x1f8 ActivationContextData : 0x00090000 _ACTIVATION_CONTEXT_DATA       +0x1fc ProcessAssemblyStorageMap : 0x000a3740 _ASSEMBLY_STORAGE_MAP       +0x200 SystemDefaultActivationContextData : 0x00080000 _ACTIVATION_CONTEXT_DATA       +0x204 SystemAssemblyStorageMap : (null)        +0x208 MinimumStackCommit : 0       +0x20c FlsCallback      : 0x000a5408 -> (null)        +0x210 FlsListHead      : _LIST_ENTRY [ 0xa1f60 - 0xb3c48 ]       +0x218 FlsBitmap        : 0x7c9b8fc0        +0x21c FlsBitmapBits    : [4] 0xf       +0x22c FlsHighIndex     : 3    +0x1a4 PrefetchTrace    : _EX_FAST_REF       +0x000 Object           : (null)        +0x000 RefCnt           : 0y000       +0x000 Value            : 0    +0x1a8 ReadOperationCount : _LARGE_INTEGER 0x33       +0x000 LowPart          : 0x33       +0x004 HighPart         : 0       +0x000 u                : __unnamed       +0x000 QuadPart         : 51    +0x1b0 WriteOperationCount : _LARGE_INTEGER 0x33       +0x000 LowPart          : 0x33       +0x004 HighPart         : 0       +0x000 u                : __unnamed       +0x000 QuadPart         : 51    +0x1b8 OtherOperationCount : _LARGE_INTEGER 0x290       +0x000 LowPart          : 0x290       +0x004 HighPart         : 0       +0x000 u                : __unnamed       +0x000 QuadPart         : 656    +0x1c0 ReadTransferCount : _LARGE_INTEGER 0x1254       +0x000 LowPart          : 0x1254       +0x004 HighPart         : 0       +0x000 u                : __unnamed       +0x000 QuadPart         : 4692    +0x1c8 WriteTransferCount : _LARGE_INTEGER 0x171c       +0x000 LowPart          : 0x171c       +0x004 HighPart         : 0       +0x000 u                : __unnamed       +0x000 QuadPart         : 5916    +0x1d0 OtherTransferCount : _LARGE_INTEGER 0x5385       +0x000 LowPart          : 0x5385       +0x004 HighPart         : 0       +0x000 u                : __unnamed       +0x000 QuadPart         : 21381    +0x1d8 CommitChargeLimit : 0    +0x1dc CommitChargePeak : 0x182    +0x1e0 AweInfo          : (null)     +0x1e4 SeAuditProcessCreationInfo : _SE_AUDIT_PROCESS_CREATION_INFO       +0x000 ImageFileName    : 0x811f1b58 _OBJECT_NAME_INFORMATION    +0x1e8 Vm               : _MMSUPPORT       +0x000 WorkingSetExpansionLinks : _LIST_ENTRY [ 0x808ad410 - 0x81297aa8 ]       +0x008 LastTrimTime     : _LARGE_INTEGER 0x1c8aff2`273b0893       +0x010 Flags            : _MMSUPPORT_FLAGS       +0x014 PageFaultCount   : 0x584       +0x018 PeakWorkingSetSize : 0x481       +0x01c GrowthSinceLastEstimate : 0x584       +0x020 MinimumWorkingSetSize : 0x32       +0x024 MaximumWorkingSetSize : 0x159       +0x028 VmWorkingSetList : 0xc0502000 _MMWSL       +0x02c Claim            : 0       +0x030 NextEstimationSlot : 0       +0x034 NextAgingSlot    : 0       +0x038 EstimatedAvailable : 0       +0x03c WorkingSetSize   : 0x481       +0x040 WorkingSetMutex : _EX_PUSH_LOCK    +0x230 MmProcessLinks   : _LIST_ENTRY [ 0x808a8e08 - 0x81297af0 ]       +0x000 Flink            : 0x808a8e08 _LIST_ENTRY [ 0x808a0230 - 0x8163ce20 ]       +0x004 Blink            : 0x81297af0 _LIST_ENTRY [ 0x8163ce20 - 0x8120cc70 ]    +0x238 ModifiedPageCount : 0x764    +0x23c JobStatus        : 0    +0x240 Flags            : 0x450801    +0x240 CreateReported   : 0y1    +0x240 NoDebugInherit   : 0y0    +0x240 ProcessExiting   : 0y0    +0x240 ProcessDelete    : 0y0    +0x240 Wow64SplitPages : 0y0    +0x240 VmDeleted        : 0y0    +0x240 OutswapEnabled   : 0y0    +0x240 Outswapped       : 0y0    +0x240 ForkFailed       : 0y0    +0x240 Wow64VaSpace4Gb : 0y0    +0x240 AddressSpaceInitialized : 0y10    +0x240 SetTimerResolution : 0y0    +0x240 BreakOnTermination : 0y0    +0x240 SessionCreationUnderway : 0y0    +0x240 WriteWatch       : 0y0    +0x240 ProcessInSession : 0y1    +0x240 OverrideAddressSpace : 0y0    +0x240 HasAddressSpace : 0y1    +0x240 LaunchPrefetched : 0y0    +0x240 InjectInpageErrors : 0y0    +0x240 VmTopDown        : 0y0    +0x240 ImageNotifyDone : 0y1    +0x240 PdeUpdateNeeded : 0y0    +0x240 VdmAllowed       : 0y0    +0x240 SmapAllowed      : 0y0    +0x240 CreateFailed     : 0y0    +0x240 DefaultIoPriority : 0y000    +0x240 Spare1           : 0y0    +0x240 Spare2           : 0y0    +0x244 ExitStatus       : 259    +0x248 NextPageColor    : 0xe4d2    +0x24a SubSystemMinorVersion : 0 ''    +0x24b SubSystemMajorVersion : 0x4 ''    +0x24a SubSystemVersion : 0x400    +0x24c PriorityClass    : 0x3 ''    +0x250 VadRoot          : _MM_AVL_TABLE       +0x000 BalancedRoot     : _MMADDRESS_NODE       +0x014 DepthOfTree      : 0y00111 (0x7)       +0x014 Unused           : 0y000       +0x014 NumberGenericTableElements : 0y000000000000000001010100 (0x54)       +0x018 NodeHint         : 0x811b2b80        +0x01c NodeFreeHint     : (null)     +0x270 Cookie           : 0x26f245ab

    Windows VISTA X32:

     nt!_EPROCESS    +0x000 Pcb              : _KPROCESS    +0x080 ProcessLock      : _EX_PUSH_LOCK    +0x088 CreateTime       : _LARGE_INTEGER 0x1c87ec2`f35608ed    +0x090 ExitTime         : _LARGE_INTEGER 0x0    +0x098 RundownProtect   : _EX_RUNDOWN_REF    +0x09c UniqueProcessId  : 0x00000768     +0x0a0 ActiveProcessLinks : _LIST_ENTRY [ 0x8532d260 - 0x8533d0c0 ]    +0x0a8 QuotaUsage       : [3] 0x4c88    +0x0b4 QuotaPeak        : [3] 0x50e8    +0x0c0 CommitCharge     : 0xd13    +0x0c4 PeakVirtualSize  : 0xa09d000    +0x0c8 VirtualSize      : 0x9445000    +0x0cc SessionProcessLinks : _LIST_ENTRY [ 0x85311b64 - 0x8533d0ec ]    +0x0d4 DebugPort        : (null)     +0x0d8 ExceptionPortData : 0x851a5030     +0x0d8 ExceptionPortValue : 0x851a5030    +0x0d8 ExceptionPortState : 0y000    +0x0dc ObjectTable      : 0x92ef1260 _HANDLE_TABLE    +0x0e0 Token            : _EX_FAST_REF    +0x0e4 WorkingSetPage   : 0x84c1    +0x0e8 AddressCreationLock : _EX_PUSH_LOCK    +0x0ec RotateInProgress : (null)     +0x0f0 ForkInProgress   : (null)     +0x0f4 HardwareTrigger  : 0    +0x0f8 PhysicalVadRoot  : (null)     +0x0fc CloneRoot        : (null)     +0x100 NumberOfPrivatePages : 0x76e    +0x104 NumberOfLockedPages : 0    +0x108 Win32Process     : 0xfe6847c0     +0x10c Job              : (null)     +0x110 SectionObject    : 0x92ef1030     +0x114 SectionBaseAddress : 0x006d0000     +0x118 QuotaBlock       : 0x84fd6370 _EPROCESS_QUOTA_BLOCK    +0x11c WorkingSetWatch  : (null)     +0x120 Win32WindowStation : 0x00000034     +0x124 InheritedFromUniqueProcessId : 0x00000728     +0x128 LdtInformation   : (null)     +0x12c Spare            : (null)     +0x130 VdmObjects       : (null)     +0x134 DeviceMap        : 0x8f5d9990     +0x138 EtwDataSource    : (null)     +0x13c FreeTebHint      : 0x7ffde000     +0x140 PageDirectoryPte : _HARDWARE_PTE    +0x140 Filler           : 0    +0x148 Session          : 0x8970c000     +0x14c ImageFileName    : [16]  "explorer.exe"    +0x15c JobLinks         : _LIST_ENTRY [ 0x0 - 0x0 ]    +0x164 LockedPagesList  : (null)     +0x168 ThreadListHead   : _LIST_ENTRY [ 0x85308278 - 0x852f0950 ]    +0x170 SecurityPort     : (null)     +0x174 PaeTop           : 0x84b5b340     +0x178 ActiveThreads    : 0x19    +0x17c ImagePathHash    : 0x7a3328da    +0x180 DefaultHardErrorProcessing : 0    +0x184 LastThreadExitStatus : 0    +0x188 Peb              : 0x7ffd8000 _PEB    +0x18c PrefetchTrace    : _EX_FAST_REF    +0x190 ReadOperationCount : _LARGE_INTEGER 0x2b0    +0x198 WriteOperationCount : _LARGE_INTEGER 0xa    +0x1a0 OtherOperationCount : _LARGE_INTEGER 0x2f54    +0x1a8 ReadTransferCount : _LARGE_INTEGER 0x63ef8    +0x1b0 WriteTransferCount : _LARGE_INTEGER 0x420    +0x1b8 OtherTransferCount : _LARGE_INTEGER 0xaafc45    +0x1c0 CommitChargeLimit : 0    +0x1c4 CommitChargePeak : 0xd99    +0x1c8 AweInfo          : (null)     +0x1cc SeAuditProcessCreationInfo : _SE_AUDIT_PROCESS_CREATION_INFO    +0x1d0 Vm               : _MMSUPPORT    +0x218 MmProcessLinks   : _LIST_ENTRY [ 0x8532d3d8 - 0x8533d238 ]    +0x220 ModifiedPageCount : 0x5a7    +0x224 Flags2           : 0xd000    +0x224 JobNotReallyActive : 0y0    +0x224 AccountingFolded : 0y0    +0x224 NewProcessReported : 0y0    +0x224 ExitProcessReported : 0y0    +0x224 ReportCommitChanges : 0y0    +0x224 LastReportMemory : 0y0    +0x224 ReportPhysicalPageChanges : 0y0    +0x224 HandleTableRundown : 0y0    +0x224 NeedsHandleRundown : 0y0    +0x224 RefTraceEnabled  : 0y0    +0x224 NumaAware        : 0y0    +0x224 ProtectedProcess : 0y0    +0x224 DefaultPagePriority : 0y101    +0x224 PrimaryTokenFrozen : 0y1    +0x224 ProcessVerifierTarget : 0y0    +0x224 StackRandomizationDisabled : 0y0    +0x224 AffinityPermanent : 0y0    +0x224 AffinityUpdateEnable : 0y0    +0x224 CrossSessionCreate : 0y0    +0x228 Flags            : 0x144d0801    +0x228 CreateReported   : 0y1    +0x228 NoDebugInherit   : 0y0    +0x228 ProcessExiting   : 0y0    +0x228 ProcessDelete    : 0y0    +0x228 Wow64SplitPages  : 0y0    +0x228 VmDeleted        : 0y0    +0x228 OutswapEnabled   : 0y0    +0x228 Outswapped       : 0y0    +0x228 ForkFailed       : 0y0    +0x228 Wow64VaSpace4Gb  : 0y0    +0x228 AddressSpaceInitialized : 0y10    +0x228 SetTimerResolution : 0y0    +0x228 BreakOnTermination : 0y0    +0x228 DeprioritizeViews : 0y0    +0x228 WriteWatch       : 0y0    +0x228 ProcessInSession : 0y1    +0x228 OverrideAddressSpace : 0y0    +0x228 HasAddressSpace  : 0y1    +0x228 LaunchPrefetched : 0y1    +0x228 InjectInpageErrors : 0y0    +0x228 VmTopDown        : 0y0    +0x228 ImageNotifyDone  : 0y1    +0x228 PdeUpdateNeeded  : 0y0    +0x228 VdmAllowed       : 0y0    +0x228 SmapAllowed      : 0y0    +0x228 ProcessInserted  : 0y1    +0x228 DefaultIoPriority : 0y010    +0x228 ProcessSelfDelete : 0y0    +0x228 SpareProcessFlags : 0y0    +0x22c ExitStatus       : 259    +0x230 Spare7           : 0    +0x232 SubSystemMinorVersion : 0 ''    +0x233 SubSystemMajorVersion : 0x6 ''    +0x232 SubSystemVersion : 0x600    +0x234 PriorityClass    : 0x2 ''    +0x238 VadRoot          : _MM_AVL_TABLE    +0x258 Cookie           : 0x72607a1f    +0x25c AlpcContext      : _ALPC_PROCESS_CONTEXT kd> dt nt!_KPROCESS 8535f020    +0x000 Header           : _DISPATCHER_HEADER    +0x010 ProfileListHead  : _LIST_ENTRY [ 0x8535f030 - 0x8535f030 ]    +0x018 DirectoryTableBase : 0x1f75b340    +0x01c Unused0          : 0    +0x020 LdtDescriptor    : _KGDTENTRY    +0x028 Int21Descriptor  : _KIDTENTRY    +0x030 IopmOffset       : 0x20ac    +0x032 Unused1          : 0 ''    +0x033 Unused2          : 0 ''    +0x034 ActiveProcessors : 0    +0x038 KernelTime       : 0x7e    +0x03c UserTime         : 0x22    +0x040 ReadyListHead    : _LIST_ENTRY [ 0x8535f060 - 0x8535f060 ]    +0x048 SwapListEntry    : _SINGLE_LIST_ENTRY    +0x04c VdmTrapcHandler  : (null)     +0x050 ThreadListHead   : _LIST_ENTRY [ 0x853081f4 - 0x852f08cc ]    +0x058 ProcessLock      : 0    +0x05c Affinity         : 1    +0x060 AutoAlignment    : 0y0    +0x060 DisableBoost     : 0y0    +0x060 DisableQuantum   : 0y0    +0x060 ReservedFlags    : 0y00000000000000000000000000000 (0)    +0x060 ProcessFlags     : 0    +0x064 BasePriority     : 8 ''    +0x065 QuantumReset     : 6 ''    +0x066 State            : 0 ''    +0x067 ThreadSeed       : 0 ''    +0x068 PowerState       : 0 ''    +0x069 IdealNode        : 0 ''    +0x06a Visited          : 0 ''    +0x06b Flags            : _KEXECUTE_OPTIONS    +0x06b ExecuteOptions   : 0x72 'r'    +0x06c StackCount       : 0x19    +0x070 ProcessListEntry : _LIST_ENTRY [ 0x0 - 0x0 ]    +0x078 CycleTime        : 0x1`236c8e36 

    
    
    
    
    
    
    展开全文
  • 1. 什么是双向循环链表双向链表也是链表的...本文讨论的是不带头节点的双向循环链表,如下图:相较于其他形式的链表,双向循环链表的添加节点,删除节点,遍历节点都非常的简单。2. 双向循环链表的实现TencentOS-tin...

    1. 什么是双向循环链表

    双向链表也是链表的一种,区别在于每个节点除了后继指针外,还有一个前驱指针,双向链表的节点长下面这样:d2dd86a3cfb861b8ceef914d28e88727.png由这种节点构成的双向链表有两种分类:按照是否有头结点可以分为两种,按照是否循环可以分为两种。

    本文讨论的是不带头节点的双向循环链表,如下图:3ef8eae7ba49a0c14111eb1f332bab65.png

    相较于其他形式的链表,双向循环链表的添加节点,删除节点,遍历节点都非常的简单。

    2. 双向循环链表的实现

    TencentOS-tiny中的双向链表实现在tos_list.h中。

    2.1. 节点实现

    节点数据结构的实现如下:

    typedef struct k_list_node_st {
        struct k_list_node_st *next;
        struct k_list_node_st *prev;
    k_list_t;

    2.2. 双向链表初始化

    链表初始化的实现如下:

    void tos_list_init(k_list_t *list){
        list->next = list;
        list->prev = list;
    }

    其中传入的list参数是指向双向链表的头指针,初始化之后,如图:0855e5a9c7cea94686acacd9ceb37756.png

    2.3. 插入节点

    向双向链表中插入一个节点非常简单:

    void _list_add(k_list_t *node, k_list_t *prev, k_list_t *next)
    {
        next->prev = node;
        node->next = next;
        node->prev = prev;
        prev->next = node;
    }

    其中node是待插入的节点,prev是插入节点位置的前一个节点,next是插入节点位置的后一个节点,插入过程如下。

    插入前的双向循环链表如下:1b87da1dedd4cc4fb3b7523db431ebcd.png插入后的双向循环链表如下:

    98287d011f0bde8a09c6daa0a134582c.png图中的四个插入过程分别对应代码中的四行代码。

    除了这个基本的API之外,tencentOS-tiny还提供了两个插入的API,分别是头部插入和尾部插入:

    void tos_list_add(k_list_t *node, k_list_t *list){
        _list_add(node, listlist->next);
    }

    void tos_list_add_tail(k_list_t *node, k_list_t *list){
        _list_add(node, list->prev, list);
    }

    因为是双向循环链表,所以尾部插入是在第一个节点和最后一个节点之间插入。

    2.4. 删除节点

    同样,删除节点的操作也比较简单,把钩子断开即可:

    void _list_del(k_list_t *prev, k_list_t *next)
    {
        next->prev = prev;
        prev->next = next;
    }

    void _list_del_node(k_list_t *node)
    {
        _list_del(node->prev, node->next);
    }

    删除过程如图所示,同样,编号对应源码中的两行代码:03750b71e31cfb48d009eeede92a1d0e.png

    2.6. 判断链表是否为空

    判断链表第一个节点是否指向自己即可:

    int tos_list_empty(const k_list_t *list){
        return list->next == list;
    }

    3. 双向链表使用示例

    3.1. 实验内容

    本实验会创建一个带有10个静态结点的双向链表,每个新的自定义节点中有一个数据域,存放一个uint8_t类型的值,有一个双向链表节点,用于构成双向链表。

    3.2. 实验代码

    首先包含内核头文件:

    /**
     * @brief TencentOS-tiny双向链表测试
     * @author Mculover666
     * @date 2020/6/2
    */

    #include 

    创建一个自己的新节点:

    typedef struct node
    {

     uint8_t  data;
     k_list_t list;
    }node_t;

    89dd4317158c82b589e653c7ffc741c7.png新建一个任务用来测试,编写如下的任务入口函数:

    #define LIST_LEN 10

    void double_list_test(void *args){
     int i;
     
     /* 用于挂载自定义节点中的双向节点 */
     k_list_t list;
     
     /* 创建10个链表节点 */
     node_t node_pool[LIST_LEN];
     
     /* 遍历,初始化自定义节点的数据域和双向节点 */
     tos_list_init(&list);
     for(i = 0;i  {
      tos_list_init(&node_pool[i].list);
      node_pool[i].data = i;
     }
     
     /* 构建一条具有LIST_LEN个节点的双向链表 */
     for(i = 0; i  {
      tos_list_add_tail(&node_pool[i].list, &list);
     }
     
     /* 遍历打印所有节点 */
     k_list_t *cur;
     node_t *n;
     //for(cur = list.next;cur != &list;cur = cur->next)
     TOS_LIST_FOR_EACH(cur, &list)
     {
      n = TOS_LIST_ENTRY(cur, node_tlist);
      printf("n = %d\n", n->data);
     }
     
     return;
     
    }

    构建完成之后链表如图(只画了3个有数据的节点):dcabe2417a3d36b9fcb5e95c4de672a3.png遍历整条链表的时候,使用了tencentOS-tiny中提供的宏定义 TOS_LIST_FOR_EACH,它的定义如下:

    #define TOS_LIST_FOR_EACH(curr, list) \
        for (curr = (list)->next; curr != (list); curr = curr->next)

    注意,此宏定义是从传入地址的下一个节点开始遍历!

    还有最后一个使用问题,我们都是对整条链表进行操作(比如可以轻松的遍历整条链表),操作的时候得到的地址「都是node_t类型节点中k_list_t类型成员的地址」,那么如何访问到data成员呢?

    TencentOS-tiny中依然提供了两个宏定义来解决这一问题,在tos_klib.h中。

    ① 计算某一个成员在结构体基地址中的偏移地址:

    #define TOS_OFFSET_OF_FIELD(type, field)    \
        ((uint32_t)&(((type *)0)->field))

    ② 已知某一个成员的地址,计算结构体的基地址:

    #define TOS_CONTAINER_OF_FIELD(ptr, type, field)    \
        ((type *)((uint8_t *)(ptr) - TOS_OFFSET_OF_FIELD(type, field)))

    这两个宏定义的实现属实有点骚,其中的巧妙之处可以再写一篇文章讲解了哈哈,此处我们先了解其使用即可(「此处要感谢戴大神的解答」)。

    有了这两个宏定义,就有了实验中所使用的宏定义,用来获取结构体(node_t类型节点)的基地址:

    #define TOS_LIST_ENTRY(node, type, field) \
        TOS_CONTAINER_OF_FIELD(node, type, field)

    获取到结构体的基地址,还愁访问不到其中的任何一个成员吗?

    最后的实验结果,你应该能猜到了,上图:00a2741b9f56c9a6fbafe54a2f4994b3.png「接收更多精彩文章及资源推送,欢迎订阅我的微信公众号:『mculover666』。」289e23ee08dcfc9978d2da68e2633041.png

    展开全文
  • 我在qt中使用QList存储了一个自定义的数据结构,在对这个数据结构的内容取值后整个链表变为空的链表,不知道这是怎么回事
  • 链表是一个最简单的数据结构,说什么也要掌握,以前看到链表中用到大量的指针就头疼了,但学起来,发现不是那么复杂,只要知道了那个指针是干什么用的,怎么用,就变得不是那么难了...这里不多说,说多了不会写链表...

      链表是一个最简单的数据结构,说什么也要掌握,以前看到链表中用到大量的指针就头疼了,但学起来,发现不是那么复杂,只要知道了那个指针是干什么用的,怎么用,就变得不是那么难了...这里不多说,说多了不会写链表等于没说,看代码的注释...

    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    
    struct xsxx
    {
        char name[20];
        int age;
        char num[20];
        char clas[20];
        struct xsxx *next;                                  //创建存储下一个链表指针数据的指针
    };                                                      //创建结构体
    
    struct xsxx *head = NULL;                               //创建头指针
    struct xsxx *ls = NULL;                                 //创建临时指针,用来开辟新链表
    struct xsxx *now = NULL;                                //记录当前访问或修改的节点的位置
    
    int input(void)                                         //创建家里链表的函数
    {
        int a[20];
        scanf("%s",a);
        if((ls=(struct xsxx *)malloc(sizeof(struct xsxx)*1))==NULL)
        {
            printf("system error\n");
            return 0;
        }                                                    //若系统不给此链节分配内存,就跳出
        else
        {
            if(head==NULL)                                  //检查是否创建了头节点
            {
                head = ls;
                strcpy(ls->name,a);
                scanf("%d%s%s",&ls->age,ls->num,ls->clas);
                now = head;
                now->next = NULL;
            }
            else
            {
                now->next = ls;                            //开辟新的链表
                now = now->next;                           //now记录当前访问的位置
                now->next = NULL;                          /*本链结中会记录下一个链结的地址,但下一个链接未创建,所以
                                                           赋值为空指针,这也是遍历链表时结束的标志*/
                strcpy(ls->name,a);
                scanf("%d%s%s",&ls->age,ls->num,ls->clas);
            }
        }
        return 0;
    }
    
    int print(void)                                         //定义打印链表函数
    {
        if(head == NULL)                                   //如果头指针为空,打印没东西
        {
            printf("nothing\n");
            return 0;
        }
        else
        {
            ls = head;
            while(ls != NULL)                                //用while循环遍历整个链表,上面提到的结束条件也在这里体现
            {
                printf("%s\n%d\n%s\n%s\n",ls->name,ls->age,ls->num,ls->clas);
                ls = ls->next;                               //ls指针每次读取正在访问的链节中的下一个链节的地址
            }
        }
        return 0;
    }
    
    int main()                                              //主函数,不用过多解释
    {
        int n = 0;
        scanf("%d",&n);
        while(n--)
        {
            input();
        }
        print();
        return 0;
    }
    

    这是我感觉我的链表学的不错的时候写的:

    #include <stdio.h>
    #include <stdlib.h>
    
    struct node
    {
        int num;//数据域
        struct node *next;//指针域
    };//链表的节点
    
    int main()
    {
        struct node *head = (struct node *)malloc(sizeof(struct node));//给头节点开内存
        head->next = NULL;//头结点的下一个节点目前不存在,设为空
        int n;//输入数的个数
        struct node *p = head;//用游动指针指向头结点
        scanf("%d",&n);
        for(int i = 0;i < n;i++)//循环输入n个数
        {
            struct node *q = (struct node *)malloc(sizeof(struct node));//结点开内存
            scanf("%d",&q->num);
            p->next = q;
            q->next = NULL;
            p = q;//游动指针移动
        }
        p = head->next;
        while(p != NULL)//遍历
        {
            printf("%d",p->num);
            if(p->next != NULL)
                printf(" ");
                p = p->next;
        }
        printf("\n");
        return 0;
    }
    


    展开全文
  • 如果要删除的链表为单结点链表且待删除的结点就是头结点,需要把头结点置为None,如果删除的结点为链表的尾结点,那么就需要顺序遍历链表,找到尾节点前面一个结点,然后将其next置空。'''给定单向链表的头指针和一...
  • 如果这个链表本身是有序的就好办了,直接取到 len/2 就得到中值(不对单链表不能随机存取,要想求表长,得从第一个结点开始顺序依次访问表中每一个结点,然后计数,直到访问到空结点为止) 可是题目中没有说这个...
  • Problem Description Teacher Mai has m+1 trees, T0,T1,⋯,Tm. T0 consists one vertex numbered 0. He generated the Ti in this way. Get a copy of Tai and Tbi. Add an edge with length li between vertex...
  • 双向链表 1.什么是双向链表: 每个节点都有前一个节点的位置和后一个...3.怎么用双向链表: public class DoublyLinkedList { // 头节点 private final Node headNode = new Node(0, "", ""); /** * 添加节点 .
  • 由于java中没有结构体,所以用一个类来定义链表,代码如下主要包括一个data,还有一个指向后面一个节点的next重写了toString函数,返回你想要的数据定义链表的类:package LinkNode;public class LinkNode {public ...
  • Java 链表的定义与简单实例Java实现链表主要依靠引用传递,引用可以理解为地址,链表遍历多使用递归,这里我存在一个疑问同一个类的不同对象的的相同方法的方法内调用算不算递归.这里我写的是单向链表;package ...
  • 土方法找指定结点在中序遍历中的前驱和后继 1.定义结点数据结构 2.定义一些公共指针 3.插入根结点 4.插入新结点 5.访问结点的操作 6.中序遍历 7.土方法构造一个树 8.测试 9.输出结果 所用编译器:Visual Studio Code...
  • Java链表基本操作和Java....一开始我想的是通过两次遍历链表,第一次遍历得到链表元素的个数count。然后定义一个ArrayList 变量,由于ArrayList是动态数组,不能在未初始化的情况下对任意位置进行插入指定的值。所...
  • 但是遍历链表是从头到尾的,怎么才能从尾到头呢? 思路一: 有一个小 trick,利用返回的 ArrayList 是 vector 的属性,c++ 的 vector 插入操作可以指定插入位置,假如我们在遍历链表的过程中,每次将链表数据插入到 ...
  • 【问题描述】学习链表,销毁链表总感觉没有成功,请问怎么确定链表确实被销毁了?为什么其余节点的内容没有变化? 【代码】 ``` #include #include #include struct link_list { int num; char name[20...
  • Problem Description 自从见识了平安夜苹果的涨价后,Lele就在他家门口水平种了一排苹果树,共有N棵。 突然Lele发现在左起第P棵树上(从1开始计数)有一条毛毛虫。为了看到毛毛虫变蝴蝶的过程,Lele在苹果树旁观察...
  • 从尾到头打印链表信息卡片时间:2020-03-23题目:从尾...先遍历一遍链表,在遍历链表的同时将当前指针指向的值放入 vector 数组中,直到链表遍历完成。最后,使用 reverse 函数将 vector 数组进行反转。public: ...
  • 编译一下是有错误的但我不知道怎么改正 [Error] C:\Users\35321\Documents\C-Free\Temp\未命名1.cpp:36: error: 'struct Binode' has no member named 'lchlid' [Error] C:\Users\35321\Documents\C-Free\Temp\未...
  • 循环链表相对于单链表来讲,可以从任意结点开始就可以遍历整个链表的所有结点,这是单链表无法做到的。循环链表.png二、循环链表的实现-javapublic class MyCircularLinkedList {/*** 循环链表:相对普通的单链表...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 444
精华内容 177
关键字:

怎么遍历链表