From a326b734707bec88ffafaffb1fb23bd6a77f6070 Mon Sep 17 00:00:00 2001 From: Doug Coleman Date: Wed, 1 May 2013 18:11:34 -0700 Subject: [PATCH] windows.ntdll: Use the real field names for all the BYTE and reserved dummy fields. --- basis/windows/ntdll/ntdll.factor | 132 ++++++++++++++++++++++++++----- 1 file changed, 111 insertions(+), 21 deletions(-) diff --git a/basis/windows/ntdll/ntdll.factor b/basis/windows/ntdll/ntdll.factor index aa652e88f4..57c46d2d00 100644 --- a/basis/windows/ntdll/ntdll.factor +++ b/basis/windows/ntdll/ntdll.factor @@ -7,6 +7,7 @@ LIBRARY: ntdll TYPEDEF: uint NTSTATUS +! Buffer is a PWSTR STRUCT: LSA_UNICODE_STRING { Length USHORT } { MaximumLength USHORT } @@ -15,11 +16,43 @@ TYPEDEF: LSA_UNICODE_STRING* PLSA_UNICODE_STRING TYPEDEF: LSA_UNICODE_STRING UNICODE_STRING TYPEDEF: LSA_UNICODE_STRING* PUNICODE_STRING +STRUCT: RTL_DRIVE_LETTER_CURDIR + { Flags USHORT } + { Length USHORT } + { Timestamp ULONG } + { DosPath UNICODE_STRING } ; +TYPEDEF: RTL_DRIVE_LETTER_CURDIR* PRTL_DRIVE_LETTER_CURDIR + STRUCT: RTL_USER_PROCESS_PARAMETERS - { Reserved1 BYTE[16] } - { Reserved2 PVOID[10] } + { MaximumLength ULONG } + { Length ULONG } + { Flags ULONG } + { DebugFlags ULONG } + { ConsoleHandle PVOID } + { ConsoleFlags ULONG } + { StdInputHandle HANDLE } + { StdOutputHandle HANDLE } + { StdErrorHandle HANDLE } + { CurrentDirectoryPath UNICODE_STRING } + { CurrentDirectoryHandle HANDLE } + { DllPath UNICODE_STRING } { ImagePathName UNICODE_STRING } - { CommandLine UNICODE_STRING } ; + { CommandLine UNICODE_STRING } + { Environment PVOID } + { StartingPositionLeft ULONG } + { StartingPositionTop ULONG } + { Width ULONG } + { Height ULONG } + { CharWidth ULONG } + { CharHeight ULONG } + { ConsoleTextAttributes ULONG } + { WindowFlags ULONG } + { ShowWindowFlags ULONG } + { WindowTitle UNICODE_STRING } + { DesktopName UNICODE_STRING } + { ShellInfo UNICODE_STRING } + { RuntimeData UNICODE_STRING } + { DLCurrentDirectory RTL_DRIVE_LETTER_CURDIR[0x20] } ; TYPEDEF: RTL_USER_PROCESS_PARAMETERS* PRTL_USER_PROCESS_PARAMETERS STRUCT: LIST_ENTRY @@ -28,36 +61,93 @@ STRUCT: LIST_ENTRY TYPEDEF: LIST_ENTRY* PLIST_ENTRY STRUCT: PEB_LDR_DATA - { Reserved1 BYTE[8] } - { Reserved2 PVOID[3] } - { InMemoryOrderModuleList LIST_ENTRY } ; + { Length ULONG } + { Initialized BOOLEAN } + { SsHandle PVOID } + { InLoadOrderModuleList LIST_ENTRY } + { InMemoryOrderModuleList LIST_ENTRY } + { InInitializationOrderModuleList LIST_ENTRY } ; TYPEDEF: PEB_LDR_DATA* PPEB_LDR_DATA TYPEDEF: void* PPS_POST_PROCESS_INIT_ROUTINE +STRUCT: PEB_FREE_BLOCK + { Next PEB_FREE_BLOCK* } + { Size ULONG } ; +TYPEDEF: PEB_FREE_BLOCK* PPEB_FREE_BLOCK + +STRUCT: PEBLOCKROUTINE + { PebLock PVOID } ; +TYPEDEF: PEBLOCKROUTINE* PPEBLOCKROUTINE + +TYPEDEF: PVOID* PPVOID + STRUCT: PEB - { Reserved1 BYTE[2] } - { BeingDebugged BYTE } - { Reserved2 BYTE[1] } - { Reserved3 BYTE[2] } - { Ldr PPEB_LDR_DATA } + { InheritedAddressSpace BOOLEAN } + { ReadImageFileExecOptions BOOLEAN } + { BeingDebugged BOOLEAN } + { Spare BOOLEAN } + { Mutant HANDLE } + { ImageBaseAddress HMODULE } + { LoaderData PPEB_LDR_DATA } { ProcessParameters PRTL_USER_PROCESS_PARAMETERS } - { Reserved4 BYTE[104] } - { Reserved5 PVOID[52] } - { PostProcessInitRoutine PPS_POST_PROCESS_INIT_ROUTINE } - { Reserved6 BYTE[128] } - { Reserved7 PVOID[1] } + { SubSystemData PVOID } + { ProcessHeap HANDLE } + { FastPebLock PVOID } + { FastPebLockRoutine PPEBLOCKROUTINE } + { FastPebUnlockRoutine PPEBLOCKROUTINE } + { EnvironmentUpdateCount ULONG } + { KernelCallbackTable PPVOID } + { EventLogSection PVOID } + { EventLog PVOID } + { FreeList PPEB_FREE_BLOCK } + { TlsExpansionCounter ULONG } + { TlsBitmap PVOID } + { TlsBitmapBits ULONG[2] } + { ReadOnlySharedMemoryBase PVOID } + { ReadOnlySharedMemoryHeap PVOID } + { ReadOnlyStaticServerData PPVOID } + { AnsiCodePageData PVOID } + { OemCodePageData PVOID } + { UnicodeCaseTableData PVOID } + { NumberOfProcessors ULONG } + { NtGlobalFlag ULONG } + { Spare2 BYTE[4] } + { CriticalSectionTimeout LARGE_INTEGER } + { HeapSegmentReserve ULONG } + { HeapSegmentCommit ULONG } + { HeapDeCommitTotalFreeThreshold ULONG } + { HeapDeCommitFreeBlockThreshold ULONG } + { NumberOfHeaps ULONG } + { MaximumNumberOfHeaps ULONG } + { ProcessHeaps PPVOID* } + { GdiSharedHandleTable PVOID } + { ProcessStarterHelper PVOID } + { GdiDCAttributeList PVOID } + { LoaderLock PVOID } + { OSMajorVersion ULONG } + { OSMinorVersion ULONG } + { OSBuildNumber ULONG } + { OSPlatformId ULONG } + { ImageSubSystem ULONG } + { ImageSubSystemMajorVersion ULONG } + { ImageSubSystemMinorVersion ULONG } + { GdiHandleBuffer ULONG[0x22] } + { PostProcessInitRoutine ULONG } + { TlsExpansionBitmap ULONG } + { TlsExpansionBitmapBits BYTE[0x80] } { SessionId ULONG } ; TYPEDEF: PEB* PPEB ! PebBaseAddress is PPEB STRUCT: PROCESS_BASIC_INFORMATION - { Reserved1 PVOID } - { PebBaseAddress void* } - { Reserved2 PVOID[2] } + { ExitStatus PVOID } + { PebBaseAddress PVOID } + { AffinityMask PVOID } + { BasePriority PVOID } { UniqueProcessId ULONG_PTR } - { Reserved3 PVOID } ; - + { InheritedFromUniqueProcessId PVOID } ; + ENUM: PROCESSINFOCLASS { ProcessBasicInformation 0 } { ProcessDebugPort 7 }