]> gitweb.factorcode.org Git - factor.git/blobdiff - basis/windows/ntdll/ntdll.factor
inverse: Fix docs
[factor.git] / basis / windows / ntdll / ntdll.factor
index aa652e88f43e0547609da62aa10b90b052b13697..75d4793577d0bd72bef96ef14c92385e6665c326 100644 (file)
@@ -1,5 +1,5 @@
 ! Copyright (C) 2013 Doug Coleman.
-! See http://factorcode.org/license.txt for BSD license.
+! See https://factorcode.org/license.txt for BSD license.
 USING: alien.c-types alien.syntax classes.struct windows.types ;
 IN: windows.ntdll
 
@@ -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 }
@@ -70,4 +160,4 @@ FUNCTION: NTSTATUS NtQueryInformationProcess (
     PVOID ProcessInformation,
     ULONG ProcessInformationLength,
     PULONG ReturnLength
-) ;
\ No newline at end of file
+)