ViewVC Help
View File | Revision Log | View Changeset | Root Listing
root/Oni2/Daodan/MSYS2/mingw32/i686-w64-mingw32/include/fileapi.h
Revision: 1166
Committed: Tue Oct 26 14:22:36 2021 UTC (4 years ago) by rossy
Content type: text/x-chdr
File size: 14157 byte(s)
Log Message:
Daodan: Replace MinGW build env with an up-to-date MSYS2 env

File Contents

# Content
1 /**
2 * This file is part of the mingw-w64 runtime package.
3 * No warranty is given; refer to the file DISCLAIMER within this package.
4 */
5 #ifndef _APISETFILE_
6 #define _APISETFILE_
7
8 #include <apiset.h>
9 #include <apisetcconv.h>
10 #include <minwindef.h>
11 #include <minwinbase.h>
12
13 #ifdef __cplusplus
14 extern "C" {
15 #endif
16
17 #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_APP)
18 #define CREATE_NEW 1
19 #define CREATE_ALWAYS 2
20 #define OPEN_EXISTING 3
21 #define OPEN_ALWAYS 4
22 #define TRUNCATE_EXISTING 5
23
24 #define INVALID_FILE_SIZE ((DWORD)0xffffffff)
25 #define INVALID_SET_FILE_POINTER ((DWORD)-1)
26 #define INVALID_FILE_ATTRIBUTES ((DWORD)-1)
27 #endif
28
29 #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP) || _WIN32_WINNT >= _WIN32_WINNT_WIN10
30 #define CreateFile __MINGW_NAME_AW(CreateFile)
31 WINBASEAPI DWORD WINAPI GetFileAttributesW (LPCWSTR lpFileName);
32 #define GetFileAttributes __MINGW_NAME_AW(GetFileAttributes)
33 WINBASEAPI DWORD WINAPI SetFilePointer (HANDLE hFile, LONG lDistanceToMove, PLONG lpDistanceToMoveHigh, DWORD dwMoveMethod);
34 #endif
35 #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP) || defined(WINSTORECOMPAT)
36 typedef struct _BY_HANDLE_FILE_INFORMATION {
37 DWORD dwFileAttributes;
38 FILETIME ftCreationTime;
39 FILETIME ftLastAccessTime;
40 FILETIME ftLastWriteTime;
41 DWORD dwVolumeSerialNumber;
42 DWORD nFileSizeHigh;
43 DWORD nFileSizeLow;
44 DWORD nNumberOfLinks;
45 DWORD nFileIndexHigh;
46 DWORD nFileIndexLow;
47 } BY_HANDLE_FILE_INFORMATION, *PBY_HANDLE_FILE_INFORMATION,
48 *LPBY_HANDLE_FILE_INFORMATION;
49 WINBASEAPI WINBOOL WINAPI GetFileInformationByHandle (HANDLE hFile, LPBY_HANDLE_FILE_INFORMATION lpFileInformation);
50 #endif
51
52 #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
53 WINBASEAPI HANDLE WINAPI CreateFileA (LPCSTR lpFileName, DWORD dwDesiredAccess, DWORD dwShareMode, LPSECURITY_ATTRIBUTES lpSecurityAttributes, DWORD dwCreationDisposition, DWORD dwFlagsAndAttributes, HANDLE hTemplateFile);
54 WINBASEAPI WINBOOL WINAPI DefineDosDeviceW (DWORD dwFlags, LPCWSTR lpDeviceName, LPCWSTR lpTargetPath);
55 WINBASEAPI WINBOOL WINAPI FindCloseChangeNotification (HANDLE hChangeHandle);
56 WINBASEAPI HANDLE WINAPI FindFirstChangeNotificationA (LPCSTR lpPathName, WINBOOL bWatchSubtree, DWORD dwNotifyFilter);
57 WINBASEAPI HANDLE WINAPI FindFirstChangeNotificationW (LPCWSTR lpPathName, WINBOOL bWatchSubtree, DWORD dwNotifyFilter);
58 WINBASEAPI HANDLE WINAPI FindFirstVolumeW (LPWSTR lpszVolumeName, DWORD cchBufferLength);
59 WINBASEAPI WINBOOL WINAPI FindNextChangeNotification (HANDLE hChangeHandle);
60 WINBASEAPI WINBOOL WINAPI FindNextVolumeW (HANDLE hFindVolume, LPWSTR lpszVolumeName, DWORD cchBufferLength);
61 WINBASEAPI WINBOOL WINAPI FindVolumeClose (HANDLE hFindVolume);
62 #endif
63 #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP) || defined(WINSTORECOMPAT)
64 WINBASEAPI HANDLE WINAPI CreateFileW (LPCWSTR lpFileName, DWORD dwDesiredAccess, DWORD dwShareMode, LPSECURITY_ATTRIBUTES lpSecurityAttributes, DWORD dwCreationDisposition, DWORD dwFlagsAndAttributes, HANDLE hTemplateFile);
65 WINBASEAPI DWORD WINAPI GetFileSize (HANDLE hFile, LPDWORD lpFileSizeHigh);
66 #endif
67 #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP) || _WIN32_WINNT >= _WIN32_WINNT_WIN10
68 WINBASEAPI LONG WINAPI CompareFileTime (CONST FILETIME *lpFileTime1, CONST FILETIME *lpFileTime2);
69 WINBASEAPI WINBOOL WINAPI DeleteVolumeMountPointW (LPCWSTR lpszVolumeMountPoint);
70 WINBASEAPI WINBOOL WINAPI FileTimeToLocalFileTime (CONST FILETIME *lpFileTime, LPFILETIME lpLocalFileTime);
71 WINBASEAPI HANDLE WINAPI FindFirstFileA (LPCSTR lpFileName, LPWIN32_FIND_DATAA lpFindFileData);
72 WINBASEAPI HANDLE WINAPI FindFirstFileW (LPCWSTR lpFileName, LPWIN32_FIND_DATAW lpFindFileData);
73 WINBASEAPI WINBOOL WINAPI GetDiskFreeSpaceA (LPCSTR lpRootPathName, LPDWORD lpSectorsPerCluster, LPDWORD lpBytesPerSector, LPDWORD lpNumberOfFreeClusters, LPDWORD lpTotalNumberOfClusters);
74 WINBASEAPI WINBOOL WINAPI GetDiskFreeSpaceW (LPCWSTR lpRootPathName, LPDWORD lpSectorsPerCluster, LPDWORD lpBytesPerSector, LPDWORD lpNumberOfFreeClusters, LPDWORD lpTotalNumberOfClusters);
75 WINBASEAPI UINT WINAPI GetDriveTypeA (LPCSTR lpRootPathName);
76 WINBASEAPI UINT WINAPI GetDriveTypeW (LPCWSTR lpRootPathName);
77 WINBASEAPI DWORD WINAPI GetFileAttributesA (LPCSTR lpFileName);
78 WINBASEAPI WINBOOL WINAPI GetFileSizeEx (HANDLE hFile, PLARGE_INTEGER lpFileSize);
79 WINBASEAPI WINBOOL WINAPI GetFileTime (HANDLE hFile, LPFILETIME lpCreationTime, LPFILETIME lpLastAccessTime, LPFILETIME lpLastWriteTime);
80 WINBASEAPI DWORD WINAPI GetFileType (HANDLE hFile);
81 WINBASEAPI DWORD WINAPI GetFullPathNameA (LPCSTR lpFileName, DWORD nBufferLength, LPSTR lpBuffer, LPSTR *lpFilePart);
82 WINBASEAPI DWORD WINAPI GetFullPathNameW (LPCWSTR lpFileName, DWORD nBufferLength, LPWSTR lpBuffer, LPWSTR *lpFilePart);
83 WINBASEAPI DWORD WINAPI GetLogicalDrives (VOID);
84 #define FindFirstFile __MINGW_NAME_AW(FindFirstFile)
85 #define GetDiskFreeSpace __MINGW_NAME_AW(GetDiskFreeSpace)
86 #define GetDriveType __MINGW_NAME_AW(GetDriveType)
87 #define GetFullPathName __MINGW_NAME_AW(GetFullPathName)
88 #endif
89 #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
90 WINBASEAPI DWORD WINAPI GetLogicalDriveStringsW (DWORD nBufferLength, LPWSTR lpBuffer);
91 WINBASEAPI DWORD WINAPI GetShortPathNameW (LPCWSTR lpszLongPath, LPWSTR lpszShortPath, DWORD cchBuffer);
92 WINBASEAPI WINBOOL WINAPI GetVolumePathNameW (LPCWSTR lpszFileName, LPWSTR lpszVolumePathName, DWORD cchBufferLength);
93 WINBASEAPI DWORD WINAPI QueryDosDeviceW (LPCWSTR lpDeviceName, LPWSTR lpTargetPath, DWORD ucchMax);
94 WINBASEAPI WINBOOL WINAPI ReadFileScatter (HANDLE hFile, FILE_SEGMENT_ELEMENT aSegmentArray[], DWORD nNumberOfBytesToRead, LPDWORD lpReserved, LPOVERLAPPED lpOverlapped);
95 WINBASEAPI WINBOOL WINAPI SetFileValidData (HANDLE hFile, LONGLONG ValidDataLength);
96 WINBASEAPI WINBOOL WINAPI WriteFileGather (HANDLE hFile, FILE_SEGMENT_ELEMENT aSegmentArray[], DWORD nNumberOfBytesToWrite, LPDWORD lpReserved, LPOVERLAPPED lpOverlapped);
97 WINBASEAPI WINBOOL WINAPI GetVolumeNameForVolumeMountPointW (LPCWSTR lpszVolumeMountPoint, LPWSTR lpszVolumeName, DWORD cchBufferLength);
98 WINBASEAPI WINBOOL WINAPI GetVolumePathNamesForVolumeNameW (LPCWSTR lpszVolumeName, LPWCH lpszVolumePathNames, DWORD cchBufferLength, PDWORD lpcchReturnLength);
99
100 #ifdef UNICODE
101 #define DefineDosDevice DefineDosDeviceW
102 #define DeleteVolumeMountPoint DeleteVolumeMountPointW
103 #define FindFirstVolume FindFirstVolumeW
104 #define FindNextVolume FindNextVolumeW
105 #define GetLogicalDriveStrings GetLogicalDriveStringsW
106 #define GetShortPathName GetShortPathNameW
107 #define GetVolumeInformation GetVolumeInformationW
108 #define GetVolumePathName GetVolumePathNameW
109 #define QueryDosDevice QueryDosDeviceW
110 #define GetVolumeNameForVolumeMountPoint GetVolumeNameForVolumeMountPointW
111 #define GetVolumePathNamesForVolumeName GetVolumePathNamesForVolumeNameW
112 #endif
113 #define FindFirstChangeNotification __MINGW_NAME_AW(FindFirstChangeNotification)
114 #define GetLongPathName __MINGW_NAME_AW(GetLongPathName)
115 #define GetTempFileName __MINGW_NAME_AW(GetTempFileName)
116
117
118 #if _WIN32_WINNT >= 0x0600
119 WINBASEAPI WINBOOL WINAPI GetVolumeInformationByHandleW (HANDLE hFile, LPWSTR lpVolumeNameBuffer, DWORD nVolumeNameSize, LPDWORD lpVolumeSerialNumber, LPDWORD lpMaximumComponentLength, LPDWORD lpFileSystemFlags, LPWSTR lpFileSystemNameBuffer, DWORD nFileSystemNameSize);
120 #endif
121 #endif
122
123 #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_APP)
124 WINBASEAPI DWORD WINAPI GetLongPathNameA (LPCSTR lpszShortPath, LPSTR lpszLongPath, DWORD cchBuffer);
125 WINBASEAPI DWORD WINAPI GetLongPathNameW (LPCWSTR lpszShortPath, LPWSTR lpszLongPath, DWORD cchBuffer);
126 WINBASEAPI UINT WINAPI GetTempFileNameA (LPCSTR lpPathName, LPCSTR lpPrefixString, UINT uUnique, LPSTR lpTempFileName);
127 WINBASEAPI UINT WINAPI GetTempFileNameW (LPCWSTR lpPathName, LPCWSTR lpPrefixString, UINT uUnique, LPWSTR lpTempFileName);
128 WINBASEAPI WINBOOL WINAPI GetVolumeInformationW (LPCWSTR lpRootPathName, LPWSTR lpVolumeNameBuffer, DWORD nVolumeNameSize, LPDWORD lpVolumeSerialNumber, LPDWORD lpMaximumComponentLength, LPDWORD lpFileSystemFlags, LPWSTR lpFileSystemNameBuffer, DWORD nFileSystemNameSize);
129 WINBASEAPI WINBOOL WINAPI LocalFileTimeToFileTime (CONST FILETIME *lpLocalFileTime, LPFILETIME lpFileTime);
130 WINBASEAPI WINBOOL WINAPI LockFile (HANDLE hFile, DWORD dwFileOffsetLow, DWORD dwFileOffsetHigh, DWORD nNumberOfBytesToLockLow, DWORD nNumberOfBytesToLockHigh);
131 WINBASEAPI WINBOOL WINAPI ReadFileEx (HANDLE hFile, LPVOID lpBuffer, DWORD nNumberOfBytesToRead, LPOVERLAPPED lpOverlapped, LPOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine);
132 WINBASEAPI WINBOOL WINAPI SetFileTime (HANDLE hFile, CONST FILETIME *lpCreationTime, CONST FILETIME *lpLastAccessTime, CONST FILETIME *lpLastWriteTime);
133 WINBASEAPI WINBOOL WINAPI UnlockFile (HANDLE hFile, DWORD dwFileOffsetLow, DWORD dwFileOffsetHigh, DWORD nNumberOfBytesToUnlockLow, DWORD nNumberOfBytesToUnlockHigh);
134 WINBASEAPI WINBOOL WINAPI WriteFileEx (HANDLE hFile, LPCVOID lpBuffer, DWORD nNumberOfBytesToWrite, LPOVERLAPPED lpOverlapped, LPOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine);
135
136 #if _WIN32_WINNT >= 0x0600
137 WINBASEAPI DWORD WINAPI GetFinalPathNameByHandleA (HANDLE hFile, LPSTR lpszFilePath, DWORD cchFilePath, DWORD dwFlags);
138 WINBASEAPI DWORD WINAPI GetFinalPathNameByHandleW (HANDLE hFile, LPWSTR lpszFilePath, DWORD cchFilePath, DWORD dwFlags);
139
140 #define GetFinalPathNameByHandle __MINGW_NAME_AW(GetFinalPathNameByHandle)
141 #endif
142 typedef struct _WIN32_FILE_ATTRIBUTE_DATA {
143 DWORD dwFileAttributes;
144 FILETIME ftCreationTime;
145 FILETIME ftLastAccessTime;
146 FILETIME ftLastWriteTime;
147 DWORD nFileSizeHigh;
148 DWORD nFileSizeLow;
149 } WIN32_FILE_ATTRIBUTE_DATA, *LPWIN32_FILE_ATTRIBUTE_DATA;
150
151 #if _WIN32_WINNT >= 0x0602
152 typedef struct _CREATEFILE2_EXTENDED_PARAMETERS {
153 DWORD dwSize;
154 DWORD dwFileAttributes;
155 DWORD dwFileFlags;
156 DWORD dwSecurityQosFlags;
157 LPSECURITY_ATTRIBUTES lpSecurityAttributes;
158 HANDLE hTemplateFile;
159 } CREATEFILE2_EXTENDED_PARAMETERS, *PCREATEFILE2_EXTENDED_PARAMETERS,
160 *LPCREATEFILE2_EXTENDED_PARAMETERS;
161 #endif
162
163 WINBASEAPI WINBOOL WINAPI CreateDirectoryA (LPCSTR lpPathName, LPSECURITY_ATTRIBUTES lpSecurityAttributes);
164 WINBASEAPI WINBOOL WINAPI CreateDirectoryW (LPCWSTR lpPathName, LPSECURITY_ATTRIBUTES lpSecurityAttributes);
165 WINBASEAPI WINBOOL WINAPI DeleteFileA (LPCSTR lpFileName);
166 WINBASEAPI WINBOOL WINAPI DeleteFileW (LPCWSTR lpFileName);
167 WINBASEAPI WINBOOL WINAPI FindClose (HANDLE hFindFile);
168 WINBASEAPI HANDLE WINAPI FindFirstFileExA (LPCSTR lpFileName, FINDEX_INFO_LEVELS fInfoLevelId, LPVOID lpFindFileData, FINDEX_SEARCH_OPS fSearchOp, LPVOID lpSearchFilter, DWORD dwAdditionalFlags);
169 WINBASEAPI HANDLE WINAPI FindFirstFileExW (LPCWSTR lpFileName, FINDEX_INFO_LEVELS fInfoLevelId, LPVOID lpFindFileData, FINDEX_SEARCH_OPS fSearchOp, LPVOID lpSearchFilter, DWORD dwAdditionalFlags);
170 WINBASEAPI WINBOOL WINAPI FindNextFileA (HANDLE hFindFile, LPWIN32_FIND_DATAA lpFindFileData);
171 WINBASEAPI WINBOOL WINAPI FindNextFileW (HANDLE hFindFile, LPWIN32_FIND_DATAW lpFindFileData);
172 WINBASEAPI WINBOOL WINAPI FlushFileBuffers (HANDLE hFile);
173 WINBASEAPI WINBOOL WINAPI GetDiskFreeSpaceExA (LPCSTR lpDirectoryName, PULARGE_INTEGER lpFreeBytesAvailableToCaller, PULARGE_INTEGER lpTotalNumberOfBytes, PULARGE_INTEGER lpTotalNumberOfFreeBytes);
174 WINBASEAPI WINBOOL WINAPI GetDiskFreeSpaceExW (LPCWSTR lpDirectoryName, PULARGE_INTEGER lpFreeBytesAvailableToCaller, PULARGE_INTEGER lpTotalNumberOfBytes, PULARGE_INTEGER lpTotalNumberOfFreeBytes);
175 WINBASEAPI WINBOOL WINAPI GetFileAttributesExA (LPCSTR lpFileName, GET_FILEEX_INFO_LEVELS fInfoLevelId, LPVOID lpFileInformation);
176 WINBASEAPI WINBOOL WINAPI GetFileAttributesExW (LPCWSTR lpFileName, GET_FILEEX_INFO_LEVELS fInfoLevelId, LPVOID lpFileInformation);
177 WINBASEAPI WINBOOL WINAPI LockFileEx (HANDLE hFile, DWORD dwFlags, DWORD dwReserved, DWORD nNumberOfBytesToLockLow, DWORD nNumberOfBytesToLockHigh, LPOVERLAPPED lpOverlapped);
178 WINBASEAPI WINBOOL WINAPI ReadFile (HANDLE hFile, LPVOID lpBuffer, DWORD nNumberOfBytesToRead, LPDWORD lpNumberOfBytesRead, LPOVERLAPPED lpOverlapped);
179 WINBASEAPI WINBOOL WINAPI RemoveDirectoryA (LPCSTR lpPathName);
180 WINBASEAPI WINBOOL WINAPI RemoveDirectoryW (LPCWSTR lpPathName);
181 WINBASEAPI WINBOOL WINAPI SetEndOfFile (HANDLE hFile);
182 WINBASEAPI WINBOOL WINAPI SetFileAttributesA (LPCSTR lpFileName, DWORD dwFileAttributes);
183 WINBASEAPI WINBOOL WINAPI SetFileAttributesW (LPCWSTR lpFileName, DWORD dwFileAttributes);
184 WINBASEAPI WINBOOL WINAPI SetFilePointerEx (HANDLE hFile, LARGE_INTEGER liDistanceToMove, PLARGE_INTEGER lpNewFilePointer, DWORD dwMoveMethod);
185 WINBASEAPI WINBOOL WINAPI UnlockFileEx (HANDLE hFile, DWORD dwReserved, DWORD nNumberOfBytesToUnlockLow, DWORD nNumberOfBytesToUnlockHigh, LPOVERLAPPED lpOverlapped);
186 WINBASEAPI WINBOOL WINAPI WriteFile (HANDLE hFile, LPCVOID lpBuffer, DWORD nNumberOfBytesToWrite, LPDWORD lpNumberOfBytesWritten, LPOVERLAPPED lpOverlapped);
187 WINBASEAPI DWORD WINAPI GetTempPathA (DWORD nBufferLength, LPSTR lpBuffer);
188 WINBASEAPI DWORD WINAPI GetTempPathW (DWORD nBufferLength, LPWSTR lpBuffer);
189
190 #define CreateDirectory __MINGW_NAME_AW(CreateDirectory)
191 #define DeleteFile __MINGW_NAME_AW(DeleteFile)
192 #define FindFirstFileEx __MINGW_NAME_AW(FindFirstFileEx)
193 #define FindNextFile __MINGW_NAME_AW(FindNextFile)
194 #define GetDiskFreeSpaceEx __MINGW_NAME_AW(GetDiskFreeSpaceEx)
195 #define GetFileAttributesEx __MINGW_NAME_AW(GetFileAttributesEx)
196 #define RemoveDirectory __MINGW_NAME_AW(RemoveDirectory)
197 #define SetFileAttributes __MINGW_NAME_AW(SetFileAttributes)
198 #define GetTempPath __MINGW_NAME_AW(GetTempPath)
199
200 #if _WIN32_WINNT >= 0x0600
201 WINBASEAPI WINBOOL WINAPI SetFileInformationByHandle (HANDLE hFile, FILE_INFO_BY_HANDLE_CLASS FileInformationClass, LPVOID lpFileInformation, DWORD dwBufferSize);
202 #endif
203 #if _WIN32_WINNT >= 0x0602
204 WINBASEAPI HANDLE WINAPI CreateFile2 (LPCWSTR lpFileName, DWORD dwDesiredAccess, DWORD dwShareMode, DWORD dwCreationDisposition, LPCREATEFILE2_EXTENDED_PARAMETERS pCreateExParams);
205 #endif
206 #endif
207
208 #ifdef __cplusplus
209 }
210 #endif
211 #endif