@Windows XP Professional Service Pack 3 (x86) (5.1, Build 2600)
1 lkd> dt -b _LDR_DATA_TABLE_ENTRY
2 nt!_LDR_DATA_TABLE_ENTRY
3 +0x000 InLoadOrderLinks : _LIST_ENTRY
4 +0x000 Flink : Ptr32
5 +0x004 Blink : Ptr32
6 +0x008 InMemoryOrderLinks : _LIST_ENTRY
7 +0x000 Flink : Ptr32
8 +0x004 Blink : Ptr32
9 +0x010 InInitializationOrderLinks : _LIST_ENTRY
10 +0x000 Flink : Ptr32
11 +0x004 Blink : Ptr32
12 +0x018 DllBase : Ptr32
13 +0x01c EntryPoint : Ptr32
14 +0x020 SizeOfImage : Uint4B
15 +0x024 FullDllName : _UNICODE_STRING
16 +0x000 Length : Uint2B
17 +0x002 MaximumLength : Uint2B
18 +0x004 Buffer : Ptr32
19 +0x02c BaseDllName : _UNICODE_STRING
20 +0x000 Length : Uint2B
21 +0x002 MaximumLength : Uint2B
22 +0x004 Buffer : Ptr32
23 +0x034 Flags : Uint4B
24 +0x038 LoadCount : Uint2B
25 +0x03a TlsIndex : Uint2B
26 +0x03c HashLinks : _LIST_ENTRY
27 +0x000 Flink : Ptr32
28 +0x004 Blink : Ptr32
29 +0x03c SectionPointer : Ptr32
30 +0x040 CheckSum : Uint4B
31 +0x044 TimeDateStamp : Uint4B
32 +0x044 LoadedImports : Ptr32
33 +0x048 EntryPointActivationContext : Ptr32
34 +0x04c PatchInformation : Ptr32
@Windows 7 Ultimate (x64) (6.1, Build 7600)
1 lkd> dt -b _LDR_DATA_TABLE_ENTRY
2 nt!_LDR_DATA_TABLE_ENTRY
3 +0x000 InLoadOrderLinks : _LIST_ENTRY
4 +0x000 Flink : Ptr64
5 +0x008 Blink : Ptr64
6 +0x010 InMemoryOrderLinks : _LIST_ENTRY
7 +0x000 Flink : Ptr64
8 +0x008 Blink : Ptr64
9 +0x020 InInitializationOrderLinks : _LIST_ENTRY
10 +0x000 Flink : Ptr64
11 +0x008 Blink : Ptr64
12 +0x030 DllBase : Ptr64
13 +0x038 EntryPoint : Ptr64
14 +0x040 SizeOfImage : Uint4B
15 +0x048 FullDllName : _UNICODE_STRING
16 +0x000 Length : Uint2B
17 +0x002 MaximumLength : Uint2B
18 +0x008 Buffer : Ptr64
19 +0x058 BaseDllName : _UNICODE_STRING
20 +0x000 Length : Uint2B
21 +0x002 MaximumLength : Uint2B
22 +0x008 Buffer : Ptr64
23 +0x068 Flags : Uint4B
24 +0x06c LoadCount : Uint2B
25 +0x06e TlsIndex : Uint2B
26 +0x070 HashLinks : _LIST_ENTRY
27 +0x000 Flink : Ptr64
28 +0x008 Blink : Ptr64
29 +0x070 SectionPointer : Ptr64
30 +0x078 CheckSum : Uint4B
31 +0x080 TimeDateStamp : Uint4B
32 +0x080 LoadedImports : Ptr64
33 +0x088 EntryPointActivationContext : Ptr64
34 +0x090 PatchInformation : Ptr64
35 +0x098 ForwarderLinks : _LIST_ENTRY
36 +0x000 Flink : Ptr64
37 +0x008 Blink : Ptr64
38 +0x0a8 ServiceTagLinks : _LIST_ENTRY
39 +0x000 Flink : Ptr64
40 +0x008 Blink : Ptr64
41 +0x0b8 StaticLinks : _LIST_ENTRY
42 +0x000 Flink : Ptr64
43 +0x008 Blink : Ptr64
44 +0x0c8 ContextInformation : Ptr64
45 +0x0d0 OriginalBase : Uint8B
46 +0x0d8 LoadTime : _LARGE_INTEGER
47 +0x000 LowPart : Uint4B
48 +0x004 HighPart : Int4B
49 +0x000 u : <unnamed-tag>
50 +0x000 LowPart : Uint4B
51 +0x004 HighPart : Int4B
52 +0x000 QuadPart : Int8B
C++ Code
typedef struct _LDR_DATA_TABLE_ENTRY { // Start from Windows XP LIST_ENTRY InLoadOrderLinks; LIST_ENTRY InMemoryOrderLinks; LIST_ENTRY InInitializationOrderLinks; PVOID DllBase; PVOID EntryPoint; ULONG SizeOfImage; UNICODE_STRING FullDllName; UNICODE_STRING BaseDllName; ULONG Flags; USHORT LoadCount; USHORT TlsIndex; union { LIST_ENTRY HashLinks; struct { PVOID SectionPointer; ULONG CheckSum; }; }; union { ULONG TimeDateStamp; PVOID LoadedImports; }; PVOID EntryPointActivationContext; //_ACTIVATION_CONTEXT * PVOID PatchInformation; // Start from Windows Vista LIST_ENTRY ForwarderLinks; LIST_ENTRY ServiceTagLinks; LIST_ENTRY StaticLinks; PVOID ContextInformation; PVOID OriginalBase; LARGE_INTEGER LoadTime; } LDR_DATA_TABLE_ENTRY, *PLDR_DATA_TABLE_ENTRY;