Skip to content

Commit db8d782

Browse files
committed
Update _PEB_LDR_DATA definition with fields known since WinXP
1 parent 217da0d commit db8d782

3 files changed

Lines changed: 43 additions & 12 deletions

File tree

ctypes_generation/definitions/structures/winstruct.txt

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,18 @@ typedef struct _LIST_ENTRY {
44
} LIST_ENTRY, *PLIST_ENTRY, *RESTRICTED_POINTER PRLIST_ENTRY;
55

66

7+
/* Definition of WinXP : Still same base in win11 with some extra field */
78
typedef struct _PEB_LDR_DATA {
8-
BYTE Reserved1[8];
9-
PVOID Reserved2[3];
10-
LIST_ENTRY InMemoryOrderModuleList;
11-
} PEB_LDR_DATA, *PPEB_LDR_DATA;
9+
ULONG Length;
10+
BYTE Initialized;
11+
PVOID SsHandle;
12+
_LIST_ENTRY InLoadOrderModuleList;
13+
_LIST_ENTRY InMemoryOrderModuleList;
14+
_LIST_ENTRY InInitializationOrderModuleList;
15+
PVOID EntryInProgress;
16+
// BYTE ShutdownInProgress; // New field
17+
// PVOID ShutdownThreadId; // New field
18+
}PEB_LDR_DATA, *PPEB_LDR_DATA;
1219

1320

1421
typedef struct _LSA_UNICODE_STRING {

docs/source/winstructs_generated.rst

Lines changed: 25 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10521,19 +10521,39 @@ _PEB_LDR_DATA
1052110521

1052210522
.. class:: _PEB_LDR_DATA
1052310523

10524-
.. attribute:: Reserved1
10524+
.. attribute:: Length
1052510525

10526-
:class:`BYTE` ``[8]``
10526+
:class:`ULONG`
1052710527

1052810528

10529-
.. attribute:: Reserved2
10529+
.. attribute:: Initialized
1053010530

10531-
:class:`PVOID` ``[3]``
10531+
:class:`BYTE`
10532+
10533+
10534+
.. attribute:: SsHandle
10535+
10536+
:class:`PVOID`
10537+
10538+
10539+
.. attribute:: InLoadOrderModuleList
10540+
10541+
:class:`_LIST_ENTRY`
1053210542

1053310543

1053410544
.. attribute:: InMemoryOrderModuleList
1053510545

10536-
:class:`LIST_ENTRY`
10546+
:class:`_LIST_ENTRY`
10547+
10548+
10549+
.. attribute:: InInitializationOrderModuleList
10550+
10551+
:class:`_LIST_ENTRY`
10552+
10553+
10554+
.. attribute:: EntryInProgress
10555+
10556+
:class:`PVOID`
1053710557

1053810558
_LSA_UNICODE_STRING
1053910559
'''''''''''''''''''

windows/generated_def/winstructs.py

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5438,9 +5438,13 @@ class _LIST_ENTRY(Structure): pass
54385438

54395439
class _PEB_LDR_DATA(Structure):
54405440
_fields_ = [
5441-
("Reserved1", BYTE * (8)),
5442-
("Reserved2", PVOID * (3)),
5443-
("InMemoryOrderModuleList", LIST_ENTRY),
5441+
("Length", ULONG),
5442+
("Initialized", BYTE),
5443+
("SsHandle", PVOID),
5444+
("InLoadOrderModuleList", _LIST_ENTRY),
5445+
("InMemoryOrderModuleList", _LIST_ENTRY),
5446+
("InInitializationOrderModuleList", _LIST_ENTRY),
5447+
("EntryInProgress", PVOID),
54445448
]
54455449
PEB_LDR_DATA = _PEB_LDR_DATA
54465450
PPEB_LDR_DATA = POINTER(_PEB_LDR_DATA)

0 commit comments

Comments
 (0)