]> gitweb.factorcode.org Git - factor.git/blobdiff - basis/windows/kernel32/kernel32.factor
Reformat
[factor.git] / basis / windows / kernel32 / kernel32.factor
index 5e2b170d659290f7a8490b54b0f29409d73eac23..f49ff7c044b242df1d2c66ab4b1843de203dad73 100644 (file)
@@ -1,5 +1,5 @@
 ! Copyright (C) 2005, 2006 Doug Coleman.
-! See http://factorcode.org/license.txt for BSD license.
+! See https://factorcode.org/license.txt for BSD license.
 USING: alien alien.c-types alien.syntax kernel windows.types
 math multiline classes.struct alien.data arrays literals ;
 QUALIFIED-WITH: alien.c-types c
@@ -103,6 +103,34 @@ CONSTANT: FILE_ACTION_ADDED_STREAM 6
 CONSTANT: FILE_ACTION_REMOVED_STREAM 7
 CONSTANT: FILE_ACTION_MODIFIED_STREAM 8
 
+CONSTANT: FILE_CASE_SENSITIVE_SEARCH        0x00000001
+CONSTANT: FILE_CASE_PRESERVED_NAMES         0x00000002
+CONSTANT: FILE_UNICODE_ON_DISK              0x00000004
+CONSTANT: FILE_PERSISTENT_ACLS              0x00000008
+CONSTANT: FILE_FILE_COMPRESSION             0x00000010
+CONSTANT: FILE_VOLUME_QUOTAS                0x00000020
+CONSTANT: FILE_SUPPORTS_SPARSE_FILES        0x00000040
+CONSTANT: FILE_SUPPORTS_REPARSE_POINTS      0x00000080
+CONSTANT: FILE_VOLUME_IS_COMPRESSED         0x00008000
+CONSTANT: FILE_SUPPORTS_OBJECT_IDS          0x00010000
+CONSTANT: FILE_SUPPORTS_ENCRYPTION          0x00020000
+CONSTANT: FILE_NAMED_STREAMS                0x00040000
+CONSTANT: FILE_READ_ONLY_VOLUME             0x00080000
+CONSTANT: FILE_SEQUENTIAL_WRITE_ONCE        0x00100000
+CONSTANT: FILE_SUPPORTS_TRANSACTIONS        0x00200000
+CONSTANT: FILE_SUPPORTS_HARD_LINKS          0x00400000
+CONSTANT: FILE_SUPPORTS_EXTENDED_ATTRIBUTES 0x00800000
+CONSTANT: FILE_SUPPORTS_OPEN_BY_FILE_ID     0x01000000
+CONSTANT: FILE_SUPPORTS_USN_JOURNAL         0x02000000
+CONSTANT: FILE_DAX_VOLUME                   0x20000000
+
+CONSTANT: MOVEFILE_COPY_ALLOWED 0x2
+CONSTANT: MOVEFILE_CREATE_HARDLINK 0x10
+CONSTANT: MOVEFILE_DELAY_UNTIL_REBOOT 0x4
+CONSTANT: MOVEFILE_FAIL_IF_NOT_TRACKABLE 0x20
+CONSTANT: MOVEFILE_REPLACE_EXISTING 0x1
+CONSTANT: MOVEFILE_WRITE_THROUGH 0x8
+
 CONSTANT: DONT_RESOLVE_DLL_REFERENCES 1
 
 STRUCT: FILE_NOTIFY_INFORMATION
@@ -172,6 +200,7 @@ CONSTANT: PROCESS_CREATE_PROCESS 0x80
 CONSTANT: PROCESS_SET_QUOTA 0x100
 CONSTANT: PROCESS_SET_INFORMATION 0x200
 CONSTANT: PROCESS_QUERY_INFORMATION 0x400
+CONSTANT: PROCESS_ALL_ACCESS 0x001F0FFF
 
 CONSTANT: MEM_COMMIT 0x1000
 CONSTANT: MEM_RELEASE  0x8000
@@ -249,6 +278,20 @@ STRUCT: TIME_ZONE_INFORMATION
     { DaylightDate SYSTEMTIME }
     { DaylightBias LONG } ;
 
+STRUCT: DYNAMIC_TIME_ZONE_INFORMATION
+    { Bias LONG }
+    { StandardName WCHAR[32] }
+    { StandardDate SYSTEMTIME }
+    { StandardBias LONG }
+    { DaylightName WCHAR[32] }
+    { DaylightDate SYSTEMTIME }
+    { DaylightBias LONG }
+    { TimeZoneKeyName WCHAR[128] }
+    { DynamicDaylightTimeDisabled BOOLEAN } ;
+
+TYPEDEF: DYNAMIC_TIME_ZONE_INFORMATION* PDYNAMIC_TIME_ZONE_INFORMATION
+
+
 STRUCT: FILETIME
     { dwLowDateTime DWORD }
     { dwHighDateTime DWORD } ;
@@ -345,7 +388,7 @@ STRUCT: GUID
     { Data3 WORD }
     { Data4 UCHAR[8] } ;
 
-/*
+![[
     fBinary  :1;
     fParity  :1;
     fOutxCtsFlow  :1;
@@ -360,7 +403,7 @@ STRUCT: GUID
     fRtsControl  :2;
     fAbortOnError  :1;
     fDummy2  :17;
-*/
+]]
 
 CONSTANT: SP_SERIALCOMM   0x1
 CONSTANT: BAUD_075        0x1
@@ -817,6 +860,31 @@ STRUCT: CONSOLE_SCREEN_BUFFER_INFO
 { srWindow SMALL_RECT }
 { dwMaximumWindowSize COORD } ;
 
+CONSTANT: HEAP_CREATE_ENABLE_EXECUTE 0x00040000
+CONSTANT: HEAP_GENERATE_EXCEPTIONS 0x00000004
+CONSTANT: HEAP_NO_SERIALIZE 0x00000001
+
+STRUCT: HEAPLIST32
+    { dwSize SIZE_T }
+    { th32ProcessID DWORD }
+    { th32HeapID ULONG_PTR }
+    { dwFlags DWORD } ;
+TYPEDEF: HEAPLIST32* PHEAPLIST32
+TYPEDEF: HEAPLIST32* LPHEAPLIST32
+
+STRUCT: HEAPENTRY32
+    { dwSize SIZE_T }
+    { hHandle HANDLE }
+    { dwAddress ULONG_PTR }
+    { dwBlockSize SIZE_T }
+    { dwFlags DWORD }
+    { dwLockCount DWORD }
+    { dwResvd DWORD }
+    { th32ProcessID DWORD }
+    { th32HeapID ULONG_PTR } ;
+TYPEDEF: HEAPENTRY32* PHEAPENTRY32
+TYPEDEF: HEAPENTRY32* LPHEAPENTRY32
+
 STRUCT: PROCESSENTRY32
     { dwSize DWORD }
     { cntUsage DWORD }
@@ -828,10 +896,50 @@ STRUCT: PROCESSENTRY32
     { pcPriClassBase LONG }
     { dwFlags DWORD }
     { szExeFile TCHAR[MAX_PATH] } ;
-
 TYPEDEF: PROCESSENTRY32* PPROCESSENTRY32
 TYPEDEF: PROCESSENTRY32* LPPROCESSENTRY32
 
+CONSTANT: MAX_MODULE_NAME32 255
+CONSTANT: MAX_MODULE_NAME32_SIZE 256
+! STRUCT: MODULEENTRY32
+!     { dwSize DWORD }
+!     { th32ModuleID DWORD }
+!     { th32ProcessID DWORD }
+!     { GlblcntUsage DWORD }
+!     { ProccntUsage DWORD }
+!     { modBaseAddr BYTE* }
+!     { modBaseSize DWORD }
+!     { hModule HMODULE }
+!     { szModule char[MAX_MODULE_NAME32_SIZE] }
+!     { szExePath char[MAX_PATH] } ;
+! TYPEDEF: MODULEENTRY32* PMODULEENTRY32
+! TYPEDEF: MODULEENTRY32* LPMODULEENTRY32
+
+STRUCT: MODULEENTRY32W
+    { dwSize DWORD }
+    { th32ModuleID DWORD }
+    { th32ProcessID DWORD }
+    { GlblcntUsage DWORD }
+    { ProccntUsage DWORD }
+    { modBaseAddr BYTE* }
+    { modBaseSize DWORD }
+    { hModule HMODULE }
+    { szModule WCHAR[MAX_MODULE_NAME32_SIZE] }
+    { szExePath WCHAR[MAX_PATH] } ;
+TYPEDEF: MODULEENTRY32W* PMODULEENTRY32W
+TYPEDEF: MODULEENTRY32W* LPMODULEENTRY32W
+
+STRUCT: THREADENTRY32
+    { dwSize DWORD }
+    { cntUsage DWORD }
+    { th32ThreadID DWORD }
+    { th32OwnerProcessID DWORD }
+    { tpBasePri LONG }
+    { tpDeltaPri LONG }
+    { dwFlags DWORD } ;
+TYPEDEF: THREADENTRY32* PTHREADENTRY32
+TYPEDEF: THREADENTRY32* LPTHREADENTRY32
+
 ! Resource IDs
 : MAKEINTRESOURCE ( int -- resource ) 0xffff bitand <alien> ; inline
 
@@ -1345,6 +1453,9 @@ ALIAS: GetDiskFreeSpaceEx GetDiskFreeSpaceExW
 ! FUNCTION: GetDriveTypeA
 FUNCTION: UINT GetDriveTypeW ( LPCTSTR lpRootPathName )
 ALIAS: GetDriveType GetDriveTypeW
+
+FUNCTION: DWORD GetDynamicTimeZoneInformation ( PDYNAMIC_TIME_ZONE_INFORMATION pTimeZoneInformation )
+
 FUNCTION: void* GetEnvironmentStringsW ( )
 ! FUNCTION: GetEnvironmentStringsA
 ALIAS: GetEnvironmentStrings GetEnvironmentStringsW
@@ -1388,8 +1499,9 @@ FUNCTION: DWORD GetLastError ( )
 ! FUNCTION: GetLocaleInfoW
 ! FUNCTION: GetLocalTime
 FUNCTION: DWORD GetLogicalDrives ( )
-! FUNCTION: GetLogicalDriveStringsA
-! FUNCTION: GetLogicalDriveStringsW
+FUNCTION: DWORD GetLogicalDriveStringsA ( DWORD dwBufferLength, LPWSTR lpBuffer )
+FUNCTION: DWORD GetLogicalDriveStringsW ( DWORD dwBufferLength, LPSTR lpBuffer )
+ALIAS: GetLogicalDriveStrings GetLogicalDriveStringsW
 ! FUNCTION: GetLongPathNameA
 ! FUNCTION: GetLongPathNameW
 ! FUNCTION: GetMailslotInfo
@@ -1549,13 +1661,14 @@ FUNCTION: BOOL GlobalMemoryStatusEx ( LPMEMORYSTATUSEX lpBuffer )
 FUNCTION: BOOL GlobalUnlock ( HGLOBAL hMem )
 ! FUNCTION: GlobalUnWire
 ! FUNCTION: GlobalWire
-! FUNCTION: Heap32First
-! FUNCTION: Heap32ListFirst
-! FUNCTION: Heap32ListNext
-! FUNCTION: Heap32Next
+FUNCTION: BOOL Heap32First ( LPHEAPENTRY32 lphe, DWORD th32ProcessID, ULONG_PTR th32HeapID )
+FUNCTION: BOOL Heap32ListFirst ( HANDLE hSnapshot, LPHEAPLIST32 lphl )
+FUNCTION: BOOL Heap32ListNext ( HANDLE hSnapshot, LPHEAPLIST32 lphl )
+FUNCTION: BOOL Heap32Next ( LPHEAPENTRY32 lphe )
 FUNCTION: LPVOID HeapAlloc ( HANDLE hHeap, DWORD dwFlags, SIZE_T dwBytes )
 ! FUNCTION: HeapCompact
-! FUNCTION: HeapCreate
+
+FUNCTION: HANDLE HeapCreate ( DWORD  flOptions, SIZE_T dwInitialSize, SIZE_T dwMaximumSize )
 ! FUNCTION: HeapCreateTagsW
 ! FUNCTION: HeapDestroy
 ! FUNCTION: HeapExtend
@@ -1670,10 +1783,10 @@ FUNCTION: LPVOID MapViewOfFileEx ( HANDLE hFileMappingObject,
                                  SIZE_T dwNumberOfBytesToMap,
                                  LPVOID lpBaseAddress )
 
-! FUNCTION: Module32First
-! FUNCTION: Module32FirstW
-! FUNCTION: Module32Next
-! FUNCTION: Module32NextW
+! FUNCTION: BOOL Module32First ( HANDLE hSnapshot, LPMODULEENTRY32 lpme )
+FUNCTION: BOOL Module32FirstW ( HANDLE hSnapshot, LPMODULEENTRY32W lpme )
+! FUNCTION: BOOL Module32Next ( HANDLE hSnapshot, LPMODULEENTRY32 lpme )
+FUNCTION: BOOL Module32NextW ( HANDLE hSnapshot, LPMODULEENTRY32W lpme )
 ! FUNCTION: MoveFileA
 ! FUNCTION: MoveFileExA
 FUNCTION: BOOL MoveFileExW ( LPCSTR lpExistingFile, LPCSTR lpNewFileName, DWORD dwFlags )
@@ -1731,6 +1844,8 @@ ALIAS: Process32Next Process32NextW
 ! FUNCTION: QueryDepthSList
 ! FUNCTION: QueryDosDeviceA
 ! FUNCTION: QueryDosDeviceW
+CONSTANT: PROCESS_NAME_NATIVE 1
+FUNCTION: BOOL QueryFullProcessImageNameA ( HANDLE hProcess, DWORD dwFlags, LPSTR lpExeName, PDWORD lpdwSize )
 ! FUNCTION: QueryInformationJobObject
 ! FUNCTION: QueryMemoryResourceNotification
 FUNCTION: BOOL QueryPerformanceCounter ( LARGE_INTEGER* lpPerformanceCount )
@@ -1861,7 +1976,7 @@ FUNCTION: DWORD SetFilePointerEx ( HANDLE hFile, LARGE_INTEGER lDistanceToMove,
 ! FUNCTION: SetFileShortNameA
 ! FUNCTION: SetFileShortNameW
 FUNCTION: BOOL SetFileTime ( HANDLE hFile, FILETIME* lpCreationTime, FILETIME* lpLastAccessTime, FILETIME* lpLastWriteTime )
-! FUNCTION: SetFileValidData
+FUNCTION: BOOL SetFileValidData ( HANDLE hFile, LONGLONG ValidDataLength )
 ! FUNCTION: SetFirmwareEnvironmentVariableA
 ! FUNCTION: SetFirmwareEnvironmentVariableW
 ! FUNCTION: SetHandleContext
@@ -1923,13 +2038,13 @@ FUNCTION: BOOL SystemTimeToFileTime ( SYSTEMTIME* lpSystemTime, LPFILETIME lpFil
 FUNCTION: BOOL TerminateProcess ( HANDLE hProcess, DWORD uExit )
 ! FUNCTION: TerminateThread
 ! FUNCTION: TermsrvAppInstallMode
-! FUNCTION: Thread32First
-! FUNCTION: Thread32Next
+FUNCTION: BOOL Thread32First ( HANDLE hSnapshot, LPTHREADENTRY32 lpte )
+FUNCTION: BOOL Thread32Next ( HANDLE hSnapshot, LPTHREADENTRY32 lpte )
 ! FUNCTION: TlsAlloc
 ! FUNCTION: TlsFree
 ! FUNCTION: TlsGetValue
 ! FUNCTION: TlsSetValue
-! FUNCTION: Toolhelp32ReadProcessMemory
+FUNCTION: BOOL Toolhelp32ReadProcessMemory ( DWORD th32ProcessID, LPCVOID lpBaseAddress, LPVOID lpBuffer, SIZE_T cbRead, SIZE_T *lpNumberOfBytesRead )
 ! FUNCTION: TransactNamedPipe
 ! FUNCTION: TransmitCommChar
 ! FUNCTION: TrimVirtualBuffer