]> gitweb.factorcode.org Git - factor.git/blobdiff - basis/windows/kernel32/kernel32.factor
windows.kernel32: add the FILE_* constants for GetVolumeInformation
[factor.git] / basis / windows / kernel32 / kernel32.factor
index 282cd1a6be6c7b1af2b922f5bdd721040867a583..c6a86e28242141eade27810218c261d3b6211d28 100644 (file)
@@ -11,7 +11,7 @@ IN: windows.kernel32
 
 CONSTANT: MAX_PATH 260
 
-CONSTANT: GHND          0x40
+CONSTANT: GHND          0x42
 CONSTANT: GMEM_FIXED          0
 CONSTANT: GMEM_MOVEABLE       2
 CONSTANT: GMEM_ZEROINIT 0x40
@@ -29,7 +29,7 @@ CONSTANT: OPEN_ALWAYS       4
 CONSTANT: TRUNCATE_EXISTING 5
 
 CONSTANT: FILE_LIST_DIRECTORY       0x00000001
-CONSTANT: FILE_READ_DAT             0x00000001
+CONSTANT: FILE_READ_DATA            0x00000001
 CONSTANT: FILE_ADD_FILE             0x00000002
 CONSTANT: FILE_WRITE_DATA           0x00000002
 CONSTANT: FILE_ADD_SUBDIRECTORY     0x00000004
@@ -76,24 +76,53 @@ CONSTANT: FILE_ATTRIBUTE_COMPRESSED          0x00000800
 CONSTANT: FILE_ATTRIBUTE_OFFLINE             0x00001000
 CONSTANT: FILE_ATTRIBUTE_NOT_CONTENT_INDEXED 0x00002000
 CONSTANT: FILE_ATTRIBUTE_ENCRYPTED           0x00004000
-
-CONSTANT: FILE_NOTIFY_CHANGE_FILE        0x001
-CONSTANT: FILE_NOTIFY_CHANGE_DIR_NAME    0x002
-CONSTANT: FILE_NOTIFY_CHANGE_ATTRIBUTES  0x004
-CONSTANT: FILE_NOTIFY_CHANGE_SIZE        0x008
-CONSTANT: FILE_NOTIFY_CHANGE_LAST_WRITE  0x010
-CONSTANT: FILE_NOTIFY_CHANGE_LAST_ACCESS 0x020
-CONSTANT: FILE_NOTIFY_CHANGE_CREATION    0x040
-CONSTANT: FILE_NOTIFY_CHANGE_EA          0x080
-CONSTANT: FILE_NOTIFY_CHANGE_SECURITY    0x100
-CONSTANT: FILE_NOTIFY_CHANGE_FILE_NAME   0x200
-CONSTANT: FILE_NOTIFY_CHANGE_ALL         0x3ff
+CONSTANT: FILE_ATTRIBUTE_INTEGRITY_STREAM    0x00008000
+CONSTANT: FILE_ATTRIBUTE_VIRTUAL             0x00010000
+CONSTANT: FILE_ATTRIBUTE_NO_SCRUB_DATA       0x00020000
+
+CONSTANT: FILE_NOTIFY_CHANGE_FILE_NAME    0x001
+CONSTANT: FILE_NOTIFY_CHANGE_DIR_NAME     0x002
+CONSTANT: FILE_NOTIFY_CHANGE_ATTRIBUTES   0x004
+CONSTANT: FILE_NOTIFY_CHANGE_SIZE         0x008
+CONSTANT: FILE_NOTIFY_CHANGE_LAST_WRITE   0x010
+CONSTANT: FILE_NOTIFY_CHANGE_LAST_ACCESS  0x020
+CONSTANT: FILE_NOTIFY_CHANGE_CREATION     0x040
+CONSTANT: FILE_NOTIFY_CHANGE_EA           0x080
+CONSTANT: FILE_NOTIFY_CHANGE_SECURITY     0x100
+CONSTANT: FILE_NOTIFY_CHANGE_STREAM_NAME  0x200
+CONSTANT: FILE_NOTIFY_CHANGE_STREAM_SIZE  0x400
+CONSTANT: FILE_NOTIFY_CHANGE_STREAM_WRITE 0x800
+CONSTANT: FILE_NOTIFY_CHANGE_ALL          0xfff
 
 CONSTANT: FILE_ACTION_ADDED 1
 CONSTANT: FILE_ACTION_REMOVED 2
 CONSTANT: FILE_ACTION_MODIFIED 3
 CONSTANT: FILE_ACTION_RENAMED_OLD_NAME 4
 CONSTANT: FILE_ACTION_RENAMED_NEW_NAME 5
+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: DONT_RESOLVE_DLL_REFERENCES 1
 
@@ -337,7 +366,7 @@ STRUCT: GUID
     { Data3 WORD }
     { Data4 UCHAR[8] } ;
 
-/*
+![[
     fBinary  :1;
     fParity  :1;
     fOutxCtsFlow  :1;
@@ -352,7 +381,7 @@ STRUCT: GUID
     fRtsControl  :2;
     fAbortOnError  :1;
     fDummy2  :17;
-*/
+]]
 
 CONSTANT: SP_SERIALCOMM   0x1
 CONSTANT: BAUD_075        0x1
@@ -927,6 +956,8 @@ FUNCTION: BOOL ConnectNamedPipe ( HANDLE hNamedPipe, LPOVERLAPPED lpOverlapped )
 FUNCTION: BOOL CopyFileW ( LPCTSTR lpExistingFileName, LPCTSTR lpNewFileName, BOOL bFailIfExists )
 ALIAS: CopyFile CopyFileW
 ! FUNCTION: CopyLZFile
+
+FUNCTION: void CopyMemory ( PVOID Destination, VOID* Source, SIZE_T Length )
 ! FUNCTION: CreateActCtxA
 ! FUNCTION: CreateActCtxW
 ! FUNCTION: CreateConsoleScreenBuffer
@@ -1151,6 +1182,28 @@ ALIAS: FindFirstChangeNotification FindFirstChangeNotificationW
 ! FUNCTION: FindFirstFileExW
 FUNCTION: HANDLE FindFirstFileW ( LPCTSTR lpFileName, LPWIN32_FIND_DATA lpFindFileData )
 ALIAS: FindFirstFile FindFirstFileW
+
+ENUM: STREAM_INFO_LEVELS
+    FindStreamInfoStandard
+    FindStreamInfoMaxInfoLevel ;
+
+STRUCT: WIN32_FIND_STREAM_DATA
+    { StreamSize LARGE_INTEGER }
+    { cStreamName WCHAR[292] } ;
+
+TYPEDEF: WIN32_FIND_STREAM_DATA* PWIN32_FIND_STREAM_DATA
+
+FUNCTION: HANDLE FindFirstStreamW (
+    LPCWSTR            lpFileName,
+    STREAM_INFO_LEVELS InfoLevel,
+    LPVOID             lpFindStreamData,
+    DWORD              dwFlags
+)
+ALIAS: FindFirstStream FindFirstStreamW
+
+FUNCTION: BOOL FindNextStreamW ( HANDLE hFindStream, LPVOID lpFindStreamData )
+ALIAS: FindNextStream FindNextStreamW
+
 ! FUNCTION: FindFirstVolumeA
 ! FUNCTION: FindFirstVolumeMountPointA
 
@@ -1186,7 +1239,9 @@ ALIAS: FindNextVolume FindNextVolumeW
 ! FUNCTION: FindResourceA
 ! FUNCTION: FindResourceExA
 ! FUNCTION: FindResourceExW
-! FUNCTION: FindResourceW
+FUNCTION: HRSRC FindResourceW ( HMODULE hModule, LPCTSTR lpName, LPCTSTR lpType )
+ALIAS: FindResource FindResourceW
+
 FUNCTION: BOOL FindVolumeClose ( HANDLE hFindVolume )
 FUNCTION: BOOL FindVolumeMountPointClose ( HANDLE hFindVolumeMountPoint )
 ! FUNCTION: FlushConsoleInputBuffer
@@ -1502,7 +1557,7 @@ FUNCTION: HGLOBAL GlobalAlloc ( UINT uFlags, SIZE_T dwBytes )
 ! FUNCTION: GlobalFindAtomW
 ! FUNCTION: GlobalFix
 ! FUNCTION: GlobalFlags
-! FUNCTION: GlobalFree
+FUNCTION: HGLOBAL GlobalFree ( HGLOBAL hMem )
 ! FUNCTION: GlobalGetAtomNameA
 ! FUNCTION: GlobalGetAtomNameW
 ! FUNCTION: GlobalHandle
@@ -1591,7 +1646,7 @@ FUNCTION: HLOCAL LocalFree ( HLOCAL hMem )
 ! FUNCTION: LocalUnlock
 ! FUNCTION: LockFile
 ! FUNCTION: LockFileEx
-! FUNCTION: LockResource
+FUNCTION: LPVOID LockResource ( HGLOBAL hResData )
 ! FUNCTION: lstrcat
 ! FUNCTION: lstrcatA
 ! FUNCTION: lstrcatW
@@ -1642,7 +1697,8 @@ FUNCTION: LPVOID MapViewOfFileEx ( HANDLE hFileMappingObject,
 ! FUNCTION: Module32NextW
 ! FUNCTION: MoveFileA
 ! FUNCTION: MoveFileExA
-! FUNCTION: MoveFileExW
+FUNCTION: BOOL MoveFileExW ( LPCSTR lpExistingFile, LPCSTR lpNewFileName, DWORD dwFlags )
+ALIAS: MoveFileEx MoveFileExW
 FUNCTION: BOOL MoveFileW ( LPCTSTR lpExistingFileName, LPCTSTR lpNewFileName )
 ALIAS: MoveFile MoveFileW
 ! FUNCTION: MoveFileWithProgressA
@@ -1666,7 +1722,7 @@ ALIAS: OpenFileMapping OpenFileMappingW
 ! FUNCTION: OpenJobObjectA
 ! FUNCTION: OpenJobObjectW
 ! FUNCTION: OpenMutexA
-! FUNCTION: OpenMutexW 
+! FUNCTION: OpenMutexW  
 FUNCTION: HANDLE OpenProcess ( DWORD dwDesiredAccess, BOOL bInheritHandle, DWORD dwProcessId )
 ! FUNCTION: OpenProfileUserMapping
 ! FUNCTION: OpenSemaphoreA
@@ -1826,7 +1882,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
@@ -1876,7 +1932,7 @@ FUNCTION: BOOL SetThreadPriorityBoost ( HANDLE hThread, BOOL disablePriorityBoos
 ! FUNCTION: SetWaitableTimer
 ! FUNCTION: ShowConsoleCursor
 ! FUNCTION: SignalObjectAndWait
-! FUNCTION: SizeofResource
+FUNCTION: DWORD SizeofResource ( HMODULE hModule, HRSRC hResInfo )
 ! FUNCTION: Sleep
 FUNCTION: DWORD SleepEx ( DWORD dwMilliSeconds, BOOL bAlertable )
 ! FUNCTION: SuspendThread