28#define WIN32_NO_STATUS
38#include "ddk/ntddser.h"
63#define FIND_FIRST_MAGIC 0xc0ffee11
83 case IMAGE_FILE_MACHINE_TARGET_HOST:
return system_dir;
107 return (
name[1] ==
'.' && (
name[2] ==
'/' ||
name[2] ==
'\\'));
172 attr.RootDirectory = 0;
176 attr.SecurityQualityOfService =
NULL;
190 len2 +=
sizeof(
WCHAR);
192 else len2 =
sizeof(
WCHAR);
271 ACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION *
info;
272 ACTCTX_SECTION_KEYED_DATA
data;
281 ACTIVATION_CONTEXT_SECTION_DLL_REDIRECTION,
293 AssemblyDetailedInformationInActivationContext,
302 if (!
info->lpAssemblyManifestPath)
308 if ((
p =
wcsrchr(
info->lpAssemblyManifestPath,
'\\' )))
310 DWORD dirlen =
info->ulAssemblyDirectoryNameLength /
sizeof(
WCHAR);
319 dirlen =
p -
info->lpAssemblyManifestPath;
320 needed = (dirlen + 1) *
sizeof(
WCHAR);
332 if (!
info->lpAssemblyDirectoryName)
338 needed =
sizeof(
L"C:\\windows\\winsxs\\") +
info->ulAssemblyDirectoryNameLength +
sizeof(
WCHAR);
347 memcpy(
p,
info->lpAssemblyDirectoryName,
info->ulAssemblyDirectoryNameLength );
348 p +=
info->ulAssemblyDirectoryNameLength /
sizeof(
WCHAR);
471 FILE_OBJECTID_BUFFER id1, id2;
476 !
memcmp( &id1.ObjectId, &id2.ObjectId,
sizeof(id1.ObjectId) ));
506 FIXME(
"pfCancel is not supported\n");
508 FIXME(
"PCOPYFILE2_PROGRESS_ROUTINE is not supported\n");
524 FIXME(
"COPY_FILE_RESTARTABLE is not supported\n");
525 if (
flags & COPY_FILE_COPY_SYMLINK)
526 FIXME(
"COPY_FILE_COPY_SYMLINK is not supported\n");
528 FIXME(
"COPY_FILE_OPEN_SOURCE_FOR_WRITE is not supported\n");
612 COPYFILE2_EXTENDED_PARAMETERS
params;
615 FIXME(
"LPPROGRESS_ROUTINE is not supported\n");
617 FIXME(
"cancel_ptr is not supported\n");
669 attr.RootDirectory = 0;
671 attr.ObjectName = &nt_name;
672 attr.SecurityDescriptor =
sa ?
sa->lpSecurityDescriptor :
NULL;
673 attr.SecurityQualityOfService =
NULL;
729 if (attributes & ~attributes_mask)
FIXME(
"unsupported attributes %#lx\n", attributes );
731 attributes &= attributes_mask;
790 static const UINT nt_disposition[5] =
812 !
access ?
"QUERY_ACCESS " :
"",
816 creation, attributes);
845 attr.RootDirectory = 0;
848 attr.SecurityDescriptor =
sa ?
sa->lpSecurityDescriptor :
NULL;
855 attr.SecurityQualityOfService = &qos;
858 attr.SecurityQualityOfService =
NULL;
868 if (vxd_name && vxd_name[0])
873 if (vxd_open && (
ret = vxd_open( vxd_name,
access,
sa )))
goto done;
1020 attr.RootDirectory = 0;
1024 attr.SecurityQualityOfService =
NULL;
1083 attr.RootDirectory = 0;
1085 attr.ObjectName = &nt_name;
1087 attr.SecurityQualityOfService =
NULL;
1136 dataA->dwFileAttributes = dataW.dwFileAttributes;
1137 dataA->ftCreationTime = dataW.ftCreationTime;
1138 dataA->ftLastAccessTime = dataW.ftLastAccessTime;
1139 dataA->ftLastWriteTime = dataW.ftLastWriteTime;
1140 dataA->nFileSizeHigh = dataW.nFileSizeHigh;
1141 dataA->nFileSizeLow = dataW.nFileSizeLow;
1142 file_name_WtoA( dataW.cFileName, -1, dataA->cFileName,
sizeof(dataA->cFileName) );
1143 file_name_WtoA( dataW.cAlternateFileName, -1, dataA->cAlternateFileName,
1144 sizeof(dataA->cAlternateFileName) );
1163 no_ext =
ret[
len - 1] ==
'.';
1166 for (
i = 0;
i <
len; ++
i)
1168 if (
ret[
i] ==
'.' && (
ret[
i + 1] ==
'*' ||
ret[
i + 1] ==
'?'))
ret[
i] =
'\"';
1169 else if (
ret[
i] ==
'?')
ret[
i] =
'>';
1197 FIXME(
"flags not implemented 0x%08lx\n",
flags );
1201 FIXME(
"search_op not implemented 0x%08x\n", search_op );
1207 FIXME(
"info level %d not implemented\n",
level );
1277 attr.RootDirectory = 0;
1279 attr.ObjectName = &nt_name;
1281 attr.SecurityQualityOfService =
NULL;
1296 info->cs.DebugInfo->Spare[0] = (
DWORD_PTR)(__FILE__
": FIND_FIRST_INFO.cs");
1297 info->path = nt_name;
1302 info->search_op = search_op;
1309 memset( wfd, 0,
sizeof(*wfd) );
1335 info->data_len =
io.Information;
1336 if (!has_wildcard)
info->data_size = 0;
1406 data->dwFileAttributes = dataW.dwFileAttributes;
1407 data->ftCreationTime = dataW.ftCreationTime;
1408 data->ftLastAccessTime = dataW.ftLastAccessTime;
1409 data->ftLastWriteTime = dataW.ftLastWriteTime;
1410 data->nFileSizeHigh = dataW.nFileSizeHigh;
1411 data->nFileSizeLow = dataW.nFileSizeLow;
1414 sizeof(
data->cAlternateFileName) );
1442 if (
info->data_pos >=
info->data_len)
1446 if (
info->data_size)
1461 info->data_len =
io.Information;
1468 else info->data_pos =
info->data_len;
1485 data->dwReserved0 = 0;
1486 data->dwReserved1 = 0;
1497 data->cAlternateFileName[0] = 0;
1499 TRACE(
"returning %s (%s)\n",
1549 info->cs.DebugInfo->Spare[0] = 0;
1600 attr.RootDirectory = 0;
1602 attr.ObjectName = &nt_name;
1604 attr.SecurityQualityOfService =
NULL;
1638 if (
ret >
sizeof(bufferW))
1687 attr.RootDirectory = 0;
1689 attr.ObjectName = &nt_name;
1691 attr.SecurityQualityOfService =
NULL;
1744 attr.RootDirectory = 0;
1746 attr.ObjectName = &nt_name;
1748 attr.SecurityQualityOfService =
NULL;
1754 data->dwFileAttributes =
info.FileAttributes;
1755 data->ftCreationTime.dwLowDateTime =
info.CreationTime.u.LowPart;
1756 data->ftCreationTime.dwHighDateTime =
info.CreationTime.u.HighPart;
1757 data->ftLastAccessTime.dwLowDateTime =
info.LastAccessTime.u.LowPart;
1758 data->ftLastAccessTime.dwHighDateTime =
info.LastAccessTime.u.HighPart;
1759 data->ftLastWriteTime.dwLowDateTime =
info.LastWriteTime.u.LowPart;
1760 data->ftLastWriteTime.dwHighDateTime =
info.LastWriteTime.u.HighPart;
1761 data->nFileSizeLow =
info.EndOfFile.u.LowPart;
1762 data->nFileSizeHigh =
info.EndOfFile.u.HighPart;
1779 if (
len == 0)
return 0;
1816 DWORD drive_part_len = 0;
1835 if (!
info->Name.Buffer)
1840 if (
info->Name.Length < 4 *
sizeof(
WCHAR) ||
info->Name.Buffer[0] !=
'\\' ||
1841 info->Name.Buffer[1] !=
'?' ||
info->Name.Buffer[2] !=
'?' ||
info->Name.Buffer[3] !=
'\\' )
1851 info->Name.Buffer += 4;
1856 FIXME(
"FILE_NAME_OPENED not supported\n");
1857 flags &= ~FILE_NAME_OPENED;
1864 drive_part_len =
lstrlenW(drive_part);
1865 if (!drive_part_len || drive_part_len >
lstrlenW(
info->Name.Buffer) ||
1866 drive_part[drive_part_len-1] !=
'\\' ||
1869 FIXME(
"Path %s returned by GetVolumePathNameW does not match file path %s\n",
1878 ptr =
info->Name.Buffer + drive_part_len - 1;
1885 WCHAR volume_prefix[51];
1889 ptr =
info->Name.Buffer + drive_part_len;
1907 drive_part[drive_part_len - 1] = 0;
1909 ptr =
info->Name.Buffer + drive_part_len - 1;
1939 WARN(
"Invalid combination of flags: %lx\n",
flags);
1966 if (
ret <
len && lastpart)
2016 WCHAR tmplongpath[1024];
2040 if (tmplen < longlen)
2052 tmplongpath[1] =
':';
2068 tmplongpath[lp] = 0;
2076 if (tmplongpath[lp] ==
'.')
2078 if (tmplen == 1 || (tmplen == 2 && tmplongpath[lp + 1] ==
'.'))
2099 lp +=
lstrlenW( tmplongpath + lp );
2104 (tmplongpath[lp - 1] !=
'/' && tmplongpath[lp - 1] !=
'\\'))
2106 tmplongpath[lp] = 0;
2108 tmplen =
lstrlenW( tmplongpath ) + 1;
2109 if (tmplen <= longlen)
2125 WCHAR *tmpshortpath;
2128 DWORD sp = 0, lp = 0, tmplen, buf_len;
2153 if (longpath[0] ==
'\\' && longpath[1] ==
'\\' && longpath[2] ==
'?' && longpath[3] ==
'\\')
2155 memcpy( tmpshortpath, longpath, 4 *
sizeof(
WCHAR) );
2159 if (
wcspbrk( longpath + lp,
L"*?" ))
2167 if (longpath[lp] !=
'/' && longpath[lp + 1] ==
':' )
2169 tmpshortpath[
sp] = longpath[lp];
2170 tmpshortpath[
sp + 1] =
':';
2175 while (longpath[lp])
2178 if (longpath[lp] ==
'\\' || longpath[lp] ==
'/')
2180 tmpshortpath[
sp++] = longpath[lp++];
2181 tmpshortpath[
sp] = 0;
2186 for (; *
p && *
p !=
'/' && *
p !=
'\\';
p++);
2187 tmplen =
p - (longpath + lp);
2188 lstrcpynW( tmpshortpath +
sp, longpath + lp, tmplen + 1 );
2190 if (tmpshortpath[
sp] ==
'.')
2192 if (tmplen == 1 || (tmplen == 2 && tmpshortpath[
sp + 1] ==
'.'))
2207 if (wfd.cAlternateFileName[0] && tmplen <
lstrlenW(wfd.cAlternateFileName))
2210 buf_len +=
lstrlenW( wfd.cAlternateFileName ) - tmplen;
2218 tmpshortpath = new_buf;
2221 lstrcpyW( tmpshortpath +
sp, wfd.cAlternateFileName[0] ? wfd.cAlternateFileName : wfd.cFileName );
2225 tmpshortpath[
sp] = 0;
2227 tmplen =
lstrlenW( tmpshortpath ) + 1;
2228 if (tmplen <= shortlen)
2240 TRACE(
"not found\n" );
2380 if ((
p ==
buffer) || (
p[-1] !=
'\\')) *
p++ =
'\\';
2462 if (tmp_path[
ret-1] !=
'\\')
2464 tmp_path[
ret++] =
'\\';
2465 tmp_path[
ret] =
'\0';
2550 HANDLE source_handle = 0;
2567 attr.RootDirectory = 0;
2569 attr.ObjectName = &nt_name;
2571 attr.SecurityQualityOfService =
NULL;
2611 if (source_handle)
NtClose( source_handle );
2661 if (!replaced || !replacement)
2668 attr.RootDirectory = 0;
2672 attr.SecurityQualityOfService =
NULL;
2680 attr.ObjectName = &nt_replaced_name;
2702 attr.ObjectName = &nt_replacement_name;
2825 if (name_ext)
name = name_ext;
2841 else if (lastpart) *lastpart =
NULL;
2844 else if (!RtlGetSearchPath( &dll_path ))
2848 RtlReleasePath( dll_path );
2935 attr.RootDirectory = 0;
2937 attr.ObjectName = &nt_name;
2939 attr.SecurityQualityOfService =
NULL;
3055 info->dwVolumeSerialNumber = 0;
3059 info->nFileIndexHigh = stat_info.
FileId.
u.HighPart;
3081 case FileRemoteProtocolInfo:
3082 case FileStorageInfo:
3083 case FileDispositionInfoEx:
3084 case FileRenameInfoEx:
3085 case FileCaseSensitiveInfo:
3086 case FileNormalizedNameInfo:
3091 case FileStreamInfo:
3095 case FileCompressionInfo:
3099 case FileAlignmentInfo:
3103 case FileAttributeTagInfo:
3111 case FileStandardInfo:
3123 case FileIdBothDirectoryRestartInfo:
3124 case FileIdBothDirectoryInfo:
3127 (
class == FileIdBothDirectoryRestartInfo) );
3130 case FileFullDirectoryInfo:
3131 case FileFullDirectoryRestartInfo:
3134 (
class == FileFullDirectoryRestartInfo) );
3137 case FileIdExtdDirectoryInfo:
3138 case FileIdExtdDirectoryRestartInfo:
3141 (
class == FileIdExtdDirectoryRestartInfo) );
3144 case FileRenameInfo:
3145 case FileDispositionInfo:
3146 case FileAllocationInfo:
3147 case FileIoPriorityHintInfo:
3148 case FileEndOfFileInfo:
3165 if (size_high) *size_high =
size.u.HighPart;
3167 return size.u.LowPart;
3206 access->dwHighDateTime =
info.LastAccessTime.u.HighPart;
3207 access->dwLowDateTime =
info.LastAccessTime.u.LowPart;
3211 write->dwHighDateTime =
info.LastWriteTime.u.HighPart;
3212 write->dwLowDateTime =
info.LastWriteTime.u.LowPart;
3235 switch (
info.DeviceType)
3311 TRACE(
"%p %lx%08lx %lx%08lx\n",
file, offset_high, offset_low, count_high, count_low );
3313 count.u.LowPart = count_low;
3314 count.u.HighPart = count_high;
3315 offset.u.LowPart = offset_low;
3316 offset.u.HighPart = offset_high;
3336 TRACE(
"%p %lx%08lx %lx%08lx flags %lx\n",
3339 count.u.LowPart = count_low;
3340 count.u.HighPart = count_high;
3386 attr.Attributes = 0;
3387 attr.ObjectName = &objectName;
3389 attr.SecurityQualityOfService =
NULL;
3413 if (attributes & 0x7ffff)
3425 qos.
Length =
sizeof(qos);
3429 attr.SecurityQualityOfService = &qos;
3459 TRACE(
"%p %p %08lx %d %08lx %p %p %p\n",
3464 memset( &ov, 0,
sizeof ov );
3485 if (returned) *returned =
ios->Information;
3560 TRACE(
"(file=%p, buffer=%p, bytes=%lu, ovl=%p, ovl_fn=%p)\n",
3572 io->Information = 0;
3588 void *cvalue =
NULL;
3597 io->Information = 0;
3660 eof.EndOfFile =
pos.CurrentByteOffset;
3681 case FileAllocationInfo:
3682 case FileStreamInfo:
3683 case FileIdBothDirectoryInfo:
3684 case FileIdBothDirectoryRestartInfo:
3685 case FileFullDirectoryInfo:
3686 case FileFullDirectoryRestartInfo:
3687 case FileStorageInfo:
3688 case FileAlignmentInfo:
3690 case FileIdExtdDirectoryInfo:
3691 case FileIdExtdDirectoryRestartInfo:
3696 case FileEndOfFileInfo:
3702 case FileDispositionInfo:
3705 case FileDispositionInfoEx:
3708 case FileIoPriorityHintInfo:
3711 case FileRenameInfo:
3721 size =
sizeof(*rename_info) + nt_name.
Length;
3724 memcpy( rename_info,
info,
sizeof(*rename_info) );
3733 case FileStandardInfo:
3734 case FileCompressionInfo:
3735 case FileAttributeTagInfo:
3736 case FileRemoteProtocolInfo:
3755 dist.
u.HighPart = *highword;
3761 if (highword) *highword = newpos.
u.HighPart;
3763 return newpos.
u.LowPart;
3804 info.CurrentByteOffset.QuadPart =
pos;
3828 info.CreationTime.u.HighPart =
ctime->dwHighDateTime;
3829 info.CreationTime.u.LowPart =
ctime->dwLowDateTime;
3868 count.u.LowPart = count_low;
3869 count.u.HighPart = count_high;
3870 offset.u.LowPart = offset_low;
3871 offset.u.HighPart = offset_high;
3887 if (
overlapped->hEvent)
FIXME(
"Unimplemented overlapped operation\n");
3963 io->Information = 0;
3979 void *cvalue =
NULL;
3988 io->Information = 0;
4005 if (!
x || !
y)
return -1;
4006 if (
x->dwHighDateTime >
y->dwHighDateTime)
return 1;
4007 if (
x->dwHighDateTime <
y->dwHighDateTime)
return -1;
4008 if (
x->dwLowDateTime >
y->dwLowDateTime)
return 1;
4009 if (
x->dwLowDateTime <
y->dwLowDateTime)
return -1;
4079 SYSTEM_TIME_ADJUSTMENT_QUERY st;
4084 *adjust = st.TimeAdjustment;
4085 *increment = st.TimeIncrement;
4086 *disabled = st.TimeAdjustmentDisabled;
4107 t.QuadPart = RtlGetSystemTimePrecise();
4108 time->dwLowDateTime =
t.u.LowPart;
4109 time->dwHighDateTime =
t.u.HighPart;
4188 TRACE(
"size=%d rate=%ld fParity=%d Parity=%d stopbits=%d %sIXON %sIXOFF CTS=%d RTS=%d DSR=%d DTR=%d %sCRTSCTS\n",
4189 dcb->ByteSize, dcb->BaudRate, dcb->fParity, dcb->Parity,
4191 dcb->fOutX ?
"" :
"~", dcb->fInX ?
"" :
"~",
4192 dcb->fOutxCtsFlow, dcb->fRtsControl, dcb->fOutxDsrFlow, dcb->fDtrControl,
4215 TRACE(
"status %#lx,%#lx, in %lu, out %lu, eof %d, wait %d\n",
ss.Errors,
ss.HoldReasons,
4216 ss.AmountInInQueue,
ss.AmountInOutQueue,
ss.EofReceived,
ss.WaitForImmediate );
4234 stat->fEof = !!
ss.EofReceived;
4235 stat->fTxim = !!
ss.WaitForImmediate;
4236 stat->cbInQue =
ss.AmountInInQueue;
4237 stat->cbOutQue =
ss.AmountInOutQueue;
4251 void *cvalue =
NULL;
4255 TRACE(
"(%p,%lx,%p,%ld,%p,%ld,%p,%p)\n",
4269 in_buff, in_count, out_buff,
out_count );
4272 in_buff, in_count, out_buff,
out_count );
4285 static const DWORD ioctls[] =
4327 config->dwProviderOffset = 0;
4328 config->dwProviderSize = 0;
4383 dcb->DCBlength =
sizeof(*dcb);
4400 dcb->Parity = slc.
Parity;
4499 slc.
Parity = dcb->Parity;
4505 switch (dcb->fDtrControl)
4514 switch (dcb->fRtsControl)
4602 FIXME(
"caps %p stub.\n", caps );
NTSYSAPI NTSTATUS NTAPI NtSetSystemInformation(IN INT SystemInformationClass, IN PVOID SystemInformation, IN ULONG SystemInformationLength)
NTSTATUS NtQueryObject(IN HANDLE Handle, IN OBJECT_INFO_CLASS ObjectInformationClass, OUT PVOID ObjectInformation, IN ULONG ObjectInformationLength, OUT PULONG ReturnLength)
void CALLBACK completion(DWORD dwError, DWORD cbTransferred, LPWSAOVERLAPPED lpOverlapped, DWORD dwFlags)
basic_ios< char, char_traits< char > > ios
int memcmp(void *Buffer1, void *Buffer2, ACPI_SIZE Count)
static struct sockaddr_in sa
#define WINE_DEFAULT_DEBUG_CHANNEL(t)
static const WCHAR nameW[]
#define FILE_DIRECTORY_FILE
#define FILE_NON_DIRECTORY_FILE
#define FILE_DELETE_ON_CLOSE
struct timeout * timeouts
HANDLE WINAPI GetStdHandle(IN DWORD nStdHandle)
PVOID NTAPI RtlAllocateHeap(IN PVOID HeapHandle, IN ULONG Flags, IN SIZE_T Size)
BOOLEAN NTAPI RtlFreeHeap(IN PVOID HeapHandle, IN ULONG Flags, IN PVOID HeapBase)
#define FileIdExtdDirectoryInformation
#define ERROR_NOT_ENOUGH_MEMORY
#define NT_SUCCESS(StatCode)
NTSYSAPI NTSTATUS NTAPI RtlWow64EnableFsRedirection(IN BOOLEAN Wow64FsEnableRedirection)
NTSYSAPI NTSTATUS NTAPI RtlWow64EnableFsRedirectionEx(IN PVOID Wow64FsEnableRedirection, OUT PVOID *OldFsRedirectionLevel)
static __inline BOOL set_ntstatus(NTSTATUS status)
static const WCHAR empty[]
#define IMAGE_FILE_MACHINE_ARMNT
#define ERROR_CALL_NOT_IMPLEMENTED
#define ERROR_INVALID_PARAMETER
#define INVALID_SET_FILE_POINTER
#define GetCurrentDirectoryW(x, y)
#define GetEnvironmentVariableW(x, y, z)
#define ReadFile(a, b, c, d, e)
#define GetProcAddress(x, y)
#define INVALID_HANDLE_VALUE
#define CreateFileA(a, b, c, d, e, f, g)
#define HeapFree(x, y, z)
#define ERROR_INVALID_HANDLE
#define FILE_ATTRIBUTE_NORMAL
#define ERROR_ACCESS_DENIED
#define ERROR_INVALID_NAME
#define __EXCEPT_PAGE_FAULT
static const WCHAR *const ext[]
static DOUBLE utc(DOUBLE time, DateInstance *date)
DWORD WINAPI QueryDosDeviceW(LPCWSTR lpDeviceName, LPWSTR lpTargetPath, DWORD ucchMax)
BOOL NTAPI IsBadStringPtrA(IN LPCSTR lpsz, IN UINT_PTR ucchMax)
BOOL WINAPI GetVolumePathNameW(IN LPCWSTR lpszFileName, IN LPWSTR lpszVolumePathName, IN DWORD cchBufferLength)
HMODULE WINAPI GetModuleHandleW(LPCWSTR lpModuleName)
BOOL WINAPI DECLSPEC_HOTPATCH DeviceIoControl(HANDLE handle, DWORD code, void *in_buff, DWORD in_count, void *out_buff, DWORD out_count, DWORD *returned, OVERLAPPED *overlapped)
static const WCHAR * get_machine_wow64_dir(WORD machine)
BOOL WINAPI DECLSPEC_HOTPATCH NeedCurrentDirectoryForExePathA(LPCSTR name)
DWORD WINAPI DECLSPEC_HOTPATCH GetTempPathA(DWORD count, LPSTR path)
UINT WINAPI DECLSPEC_HOTPATCH GetSystemWow64Directory2W(LPWSTR path, UINT count, WORD machine)
BOOL WINAPI DECLSPEC_HOTPATCH UnlockFileEx(HANDLE file, DWORD reserved, DWORD count_low, DWORD count_high, LPOVERLAPPED overlapped)
DWORD WINAPI DECLSPEC_HOTPATCH GetFinalPathNameByHandleA(HANDLE file, LPSTR path, DWORD count, DWORD flags)
HANDLE WINAPI FindFirstFileNameW(const WCHAR *file_name, DWORD flags, DWORD *len, WCHAR *link_name)
BOOL WINAPI DECLSPEC_HOTPATCH WriteFileGather(HANDLE file, FILE_SEGMENT_ELEMENT *segments, DWORD count, LPDWORD reserved, LPOVERLAPPED overlapped)
UINT WINAPI DECLSPEC_HOTPATCH GetTempFileNameW(LPCWSTR path, LPCWSTR prefix, UINT unique, LPWSTR buffer)
BOOL WINAPI CreateHardLinkW(LPCWSTR dest, LPCWSTR source, SECURITY_ATTRIBUTES *sec_attr)
static DWORD copy_filename(const WCHAR *name, WCHAR *buffer, DWORD len)
DWORD WINAPI DECLSPEC_HOTPATCH GetLongPathNameW(LPCWSTR shortpath, LPWSTR longpath, DWORD longlen)
static WCHAR * fixup_mask(const WCHAR *mask)
DWORD WINAPI DECLSPEC_HOTPATCH GetTempPathW(DWORD count, LPWSTR path)
BOOL WINAPI DECLSPEC_HOTPATCH WriteFile(HANDLE file, LPCVOID buffer, DWORD count, LPDWORD result, LPOVERLAPPED overlapped)
WCHAR * file_name_AtoW(LPCSTR name, BOOL alloc)
BOOL WINAPI FindNextStreamW(HANDLE handle, void *data)
BOOL WINAPI DECLSPEC_HOTPATCH UnlockFile(HANDLE file, DWORD offset_low, DWORD offset_high, DWORD count_low, DWORD count_high)
BOOL WINAPI DECLSPEC_HOTPATCH GetCommModemStatus(HANDLE handle, DWORD *status)
void WINAPI DECLSPEC_HOTPATCH SetFileApisToOEM(void)
BOOL WINAPI DECLSPEC_HOTPATCH FlushFileBuffers(HANDLE file)
BOOL WINAPI DECLSPEC_HOTPATCH FileTimeToLocalFileTime(const FILETIME *utc, FILETIME *local)
DWORD WINAPI DECLSPEC_HOTPATCH GetTempPath2A(DWORD count, LPSTR path)
UINT WINAPI DECLSPEC_HOTPATCH GetCurrentDirectoryA(UINT buflen, LPSTR buf)
DWORD WINAPI DECLSPEC_HOTPATCH GetFileType(HANDLE file)
HANDLE WINAPI DECLSPEC_HOTPATCH FindFirstChangeNotificationA(LPCSTR path, BOOL subtree, DWORD filter)
BOOL WINAPI DECLSPEC_HOTPATCH SetFileAttributesA(LPCSTR name, DWORD attributes)
BOOL WINAPI DECLSPEC_HOTPATCH FileTimeToSystemTime(const FILETIME *ft, SYSTEMTIME *systime)
BOOL WINAPI DECLSPEC_HOTPATCH GetOverlappedResult(HANDLE file, LPOVERLAPPED overlapped, LPDWORD result, BOOL wait)
static BOOL copy_file(const WCHAR *source, const WCHAR *dest, COPYFILE2_EXTENDED_PARAMETERS *params)
UINT WINAPI DECLSPEC_HOTPATCH GetWindowsDirectoryA(LPSTR path, UINT count)
static void WINAPI invoke_completion(void *context, IO_STATUS_BLOCK *io, ULONG res)
BOOL WINAPI DECLSPEC_HOTPATCH SetCommState(HANDLE handle, DCB *dcb)
BOOL WINAPI DECLSPEC_HOTPATCH GetCommProperties(HANDLE handle, COMMPROP *prop)
BOOL WINAPI DECLSPEC_HOTPATCH GetFileInformationByHandle(HANDLE file, BY_HANDLE_FILE_INFORMATION *info)
HANDLE WINAPI DECLSPEC_HOTPATCH FindFirstFileExA(const char *filename, FINDEX_INFO_LEVELS level, void *data, FINDEX_SEARCH_OPS search_op, void *filter, DWORD flags)
BOOL WINAPI DECLSPEC_HOTPATCH LocalFileTimeToFileTime(const FILETIME *local, FILETIME *utc)
DWORD WINAPI DECLSPEC_HOTPATCH SearchPathA(LPCSTR path, LPCSTR name, LPCSTR ext, DWORD buflen, LPSTR buffer, LPSTR *lastpart)
HRESULT WINAPI CopyFile2(const WCHAR *source, const WCHAR *dest, COPYFILE2_EXTENDED_PARAMETERS *params)
void WINAPI DECLSPEC_HOTPATCH SetFileApisToANSI(void)
BOOL WINAPI DECLSPEC_HOTPATCH DeleteFileW(LPCWSTR path)
static const UINT max_entry_size
BOOL WINAPI DECLSPEC_HOTPATCH GetCommMask(HANDLE handle, DWORD *mask)
BOOL WINAPI DECLSPEC_HOTPATCH SetFileInformationByHandle(HANDLE file, FILE_INFO_BY_HANDLE_CLASS class, void *info, DWORD size)
BOOL WINAPI DECLSPEC_HOTPATCH DeleteFileA(LPCSTR path)
BOOL WINAPI DECLSPEC_HOTPATCH GetSystemTimeAdjustment(DWORD *adjust, DWORD *increment, BOOL *disabled)
BOOL WINAPI DECLSPEC_HOTPATCH SetCommBreak(HANDLE handle)
UINT WINAPI GetSystemWow64DirectoryW(LPWSTR path, UINT count)
HANDLE WINAPI DECLSPEC_HOTPATCH FindFirstFileW(const WCHAR *filename, WIN32_FIND_DATAW *data)
DWORD WINAPI DECLSPEC_HOTPATCH GetFileSize(HANDLE file, LPDWORD size_high)
DWORD WINAPI DECLSPEC_HOTPATCH GetFullPathNameA(LPCSTR name, DWORD len, LPSTR buffer, LPSTR *lastpart)
static NTSTATUS find_actctx_dllpath(const WCHAR *name, WCHAR **path)
UINT WINAPI DECLSPEC_HOTPATCH GetSystemWow64Directory2A(LPSTR path, UINT count, WORD machine)
static BOOL contains_path(const WCHAR *name)
BOOL WINAPI DECLSPEC_HOTPATCH PurgeComm(HANDLE handle, DWORD flags)
BOOL WINAPI DECLSPEC_HOTPATCH CreateDirectoryExW(LPCWSTR template, LPCWSTR path, LPSECURITY_ATTRIBUTES sa)
static WCHAR * append_ext(const WCHAR *name, const WCHAR *ext)
HANDLE WINAPI DECLSPEC_HOTPATCH OpenFileById(HANDLE handle, LPFILE_ID_DESCRIPTOR id, DWORD access, DWORD share, LPSECURITY_ATTRIBUTES sec_attr, DWORD flags)
BOOL WINAPI DECLSPEC_HOTPATCH WriteFileEx(HANDLE file, LPCVOID buffer, DWORD count, LPOVERLAPPED overlapped, LPOVERLAPPED_COMPLETION_ROUTINE completion)
BOOL WINAPI DECLSPEC_HOTPATCH GetFileAttributesExA(LPCSTR name, GET_FILEEX_INFO_LEVELS level, void *ptr)
UINT WINAPI DECLSPEC_HOTPATCH GetSystemWindowsDirectoryA(LPSTR path, UINT count)
UINT WINAPI DECLSPEC_HOTPATCH GetTempFileNameA(LPCSTR path, LPCSTR prefix, UINT unique, LPSTR buffer)
BOOL WINAPI DECLSPEC_HOTPATCH ClearCommError(HANDLE handle, DWORD *errors, COMSTAT *stat)
DWORD WINAPI kernelbase_Wow64EnableWow64FsRedirection(BOOLEAN enable)
BOOL WINAPI DECLSPEC_HOTPATCH SetupComm(HANDLE handle, DWORD in_size, DWORD out_size)
BOOL WINAPI DECLSPEC_HOTPATCH EscapeCommFunction(HANDLE handle, DWORD func)
BOOL WINAPI DECLSPEC_HOTPATCH RemoveDirectoryA(LPCSTR path)
static void dump_dcb(const DCB *dcb)
BOOL WINAPI DECLSPEC_HOTPATCH FindNextFileW(HANDLE handle, WIN32_FIND_DATAW *data)
void WINAPI DECLSPEC_HOTPATCH GetLocalTime(SYSTEMTIME *systime)
UINT WINAPI DECLSPEC_HOTPATCH GetSystemWindowsDirectoryW(LPWSTR path, UINT count)
BOOL WINAPI DECLSPEC_HOTPATCH ReadFileEx(HANDLE file, LPVOID buffer, DWORD count, LPOVERLAPPED overlapped, LPOVERLAPPED_COMPLETION_ROUTINE completion)
BOOL WINAPI DECLSPEC_HOTPATCH SetCommConfig(HANDLE handle, COMMCONFIG *config, DWORD size)
BOOL WINAPI DECLSPEC_HOTPATCH CopyFileW(const WCHAR *source, const WCHAR *dest, BOOL fail_if_exists)
DWORD WINAPI DECLSPEC_HOTPATCH GetFileAttributesA(LPCSTR name)
static DWORD copy_filename_WtoA(LPCWSTR nameW, LPSTR buffer, DWORD len)
UINT WINAPI DECLSPEC_HOTPATCH GetWindowsDirectoryW(LPWSTR path, UINT count)
BOOL WINAPI DECLSPEC_HOTPATCH GetCommState(HANDLE handle, DCB *dcb)
DWORD WINAPI DECLSPEC_HOTPATCH GetShortPathNameW(LPCWSTR longpath, LPWSTR shortpath, DWORD shortlen)
BOOL WINAPI DECLSPEC_HOTPATCH Wow64RevertWow64FsRedirection(PVOID old_value)
HANDLE WINAPI DECLSPEC_HOTPATCH FindFirstFileExW(LPCWSTR filename, FINDEX_INFO_LEVELS level, LPVOID data, FINDEX_SEARCH_OPS search_op, LPVOID filter, DWORD flags)
HANDLE WINAPI DECLSPEC_HOTPATCH FindFirstFileA(const char *filename, WIN32_FIND_DATAA *data)
BOOL WINAPI DECLSPEC_HOTPATCH GetCommTimeouts(HANDLE handle, COMMTIMEOUTS *timeouts)
BOOL WINAPI DECLSPEC_HOTPATCH SetCurrentDirectoryA(LPCSTR dir)
BOOL WINAPI DECLSPEC_HOTPATCH SetFileAttributesW(LPCWSTR name, DWORD attributes)
DWORD WINAPI DECLSPEC_HOTPATCH GetTempPath2W(DWORD count, LPWSTR path)
HRESULT WINAPI QueryIoRingCapabilities(IORING_CAPABILITIES *caps)
BOOL WINAPI DECLSPEC_HOTPATCH ReadDirectoryChangesW(HANDLE handle, LPVOID buffer, DWORD len, BOOL subtree, DWORD filter, LPDWORD returned, LPOVERLAPPED overlapped, LPOVERLAPPED_COMPLETION_ROUTINE completion)
HANDLE WINAPI FindFirstStreamW(const WCHAR *filename, STREAM_INFO_LEVELS level, void *data, DWORD flags)
DWORD WINAPI DECLSPEC_HOTPATCH GetCompressedFileSizeA(LPCSTR name, LPDWORD size_high)
BOOL WINAPI DECLSPEC_HOTPATCH CreateHardLinkA(const char *dest, const char *source, SECURITY_ATTRIBUTES *attr)
DWORD WINAPI DECLSPEC_HOTPATCH GetCompressedFileSizeW(LPCWSTR name, LPDWORD size_high)
BOOL WINAPI DECLSPEC_HOTPATCH GetFileInformationByHandleEx(HANDLE handle, FILE_INFO_BY_HANDLE_CLASS class, LPVOID info, DWORD size)
BOOL WINAPI DECLSPEC_HOTPATCH SetSystemTime(const SYSTEMTIME *systime)
BOOLEAN WINAPI CreateSymbolicLinkW(LPCWSTR link, LPCWSTR target, DWORD flags)
BOOL WINAPI DECLSPEC_HOTPATCH GetOverlappedResultEx(HANDLE file, OVERLAPPED *overlapped, DWORD *result, DWORD timeout, BOOL alertable)
DWORD WINAPI DECLSPEC_HOTPATCH GetLongPathNameA(LPCSTR shortpath, LPSTR longpath, DWORD longlen)
UINT WINAPI DECLSPEC_HOTPATCH GetSystemDirectoryW(LPWSTR path, UINT count)
BOOL WINAPI DECLSPEC_HOTPATCH CreateDirectoryW(LPCWSTR path, LPSECURITY_ATTRIBUTES sa)
BOOL WINAPI DECLSPEC_HOTPATCH NeedCurrentDirectoryForExePathW(LPCWSTR name)
BOOL WINAPI DECLSPEC_HOTPATCH SetSystemTimeAdjustment(DWORD adjust, BOOL disabled)
BOOL WINAPI CopyFileExW(const WCHAR *source, const WCHAR *dest, LPPROGRESS_ROUTINE progress, void *param, BOOL *cancel_ptr, DWORD flags)
DWORD WINAPI DECLSPEC_HOTPATCH SearchPathW(LPCWSTR path, LPCWSTR name, LPCWSTR ext, DWORD buflen, LPWSTR buffer, LPWSTR *lastpart)
void WINAPI DECLSPEC_HOTPATCH GetSystemTimePreciseAsFileTime(FILETIME *time)
UINT WINAPI GetSystemWow64DirectoryA(LPSTR path, UINT count)
BOOL WINAPI DECLSPEC_HOTPATCH SetCurrentDirectoryW(LPCWSTR dir)
BOOL WINAPI DECLSPEC_HOTPATCH Wow64DisableWow64FsRedirection(PVOID *old_value)
void WINAPI DECLSPEC_HOTPATCH GetSystemTime(SYSTEMTIME *systime)
static BOOL oem_file_apis
BOOL WINAPI DECLSPEC_HOTPATCH CreateDirectoryA(LPCSTR path, LPSECURITY_ATTRIBUTES sa)
BOOL WINAPI DECLSPEC_HOTPATCH TransmitCommChar(HANDLE handle, CHAR ch)
static IO_STATUS_BLOCK dummy_iosb
HANDLE WINAPI DECLSPEC_HOTPATCH CreateFile2(LPCWSTR name, DWORD access, DWORD sharing, DWORD creation, CREATEFILE2_EXTENDED_PARAMETERS *params)
UINT WINAPI DECLSPEC_HOTPATCH GetSystemDirectoryA(LPSTR path, UINT count)
BOOL WINAPI DECLSPEC_HOTPATCH WaitCommEvent(HANDLE handle, DWORD *events, OVERLAPPED *overlapped)
BOOL WINAPI DECLSPEC_HOTPATCH FindNextFileA(HANDLE handle, WIN32_FIND_DATAA *data)
void WINAPI DECLSPEC_HOTPATCH GetSystemTimeAsFileTime(FILETIME *time)
BOOL WINAPI DECLSPEC_HOTPATCH GetFileAttributesExW(LPCWSTR name, GET_FILEEX_INFO_LEVELS level, void *ptr)
BOOL WINAPI DECLSPEC_HOTPATCH GetFileTime(HANDLE file, FILETIME *creation, FILETIME *access, FILETIME *write)
BOOL WINAPI DECLSPEC_HOTPATCH RemoveDirectoryW(LPCWSTR path)
BOOL WINAPI DECLSPEC_HOTPATCH SetCommTimeouts(HANDLE handle, COMMTIMEOUTS *timeouts)
BOOL WINAPI DECLSPEC_HOTPATCH LockFile(HANDLE file, DWORD offset_low, DWORD offset_high, DWORD count_low, DWORD count_high)
BOOL WINAPI DECLSPEC_HOTPATCH FindClose(HANDLE handle)
HANDLE WINAPI DECLSPEC_HOTPATCH FindFirstChangeNotificationW(LPCWSTR path, BOOL subtree, DWORD filter)
BOOL WINAPI DECLSPEC_HOTPATCH SetCommMask(HANDLE handle, DWORD mask)
BOOL WINAPI DECLSPEC_HOTPATCH LockFileEx(HANDLE file, DWORD flags, DWORD reserved, DWORD count_low, DWORD count_high, LPOVERLAPPED overlapped)
BOOL WINAPI DECLSPEC_HOTPATCH CancelIoEx(HANDLE handle, LPOVERLAPPED overlapped)
BOOL WINAPI DECLSPEC_HOTPATCH SystemTimeToFileTime(const SYSTEMTIME *systime, FILETIME *ft)
static UINT get_nt_file_options(DWORD attributes)
const WCHAR windows_dir[]
BOOL WINAPI DECLSPEC_HOTPATCH ReadFileScatter(HANDLE file, FILE_SEGMENT_ELEMENT *segments, DWORD count, LPDWORD reserved, LPOVERLAPPED overlapped)
BOOL WINAPI DECLSPEC_HOTPATCH SetLocalTime(const SYSTEMTIME *systime)
BOOL WINAPI DECLSPEC_HOTPATCH FindCloseChangeNotification(HANDLE handle)
BOOL WINAPI DECLSPEC_HOTPATCH GetCommConfig(HANDLE handle, COMMCONFIG *config, DWORD *size)
BOOL WINAPI DECLSPEC_HOTPATCH ReplaceFileW(const WCHAR *replaced, const WCHAR *replacement, const WCHAR *backup, DWORD flags, void *exclude, void *reserved)
HANDLE WINAPI DECLSPEC_HOTPATCH ReOpenFile(HANDLE handle, DWORD access, DWORD sharing, DWORD attributes)
static BOOL is_same_file(HANDLE h1, HANDLE h2)
INT WINAPI DECLSPEC_HOTPATCH CompareFileTime(const FILETIME *x, const FILETIME *y)
BOOL WINAPI DECLSPEC_HOTPATCH SetEndOfFile(HANDLE file)
BOOL WINAPI DECLSPEC_HOTPATCH SetFileTime(HANDLE file, const FILETIME *ctime, const FILETIME *atime, const FILETIME *mtime)
static void WINAPI read_write_apc(void *apc_user, PIO_STATUS_BLOCK io, ULONG reserved)
BOOL WINAPI DECLSPEC_HOTPATCH ClearCommBreak(HANDLE handle)
DWORD WINAPI DECLSPEC_HOTPATCH GetFullPathNameW(LPCWSTR name, DWORD len, LPWSTR buffer, LPWSTR *lastpart)
BOOL WINAPI DECLSPEC_HOTPATCH AreFileApisANSI(void)
BOOL WINAPI DECLSPEC_HOTPATCH SetFilePointerEx(HANDLE file, LARGE_INTEGER distance, LARGE_INTEGER *newpos, DWORD method)
BOOL WINAPI DECLSPEC_HOTPATCH CancelIo(HANDLE handle)
BOOL WINAPI DECLSPEC_HOTPATCH SetFileValidData(HANDLE file, LONGLONG length)
BOOL WINAPI DECLSPEC_HOTPATCH MoveFileWithProgressW(const WCHAR *source, const WCHAR *dest, LPPROGRESS_ROUTINE progress, void *param, DWORD flag)
BOOL WINAPI DECLSPEC_HOTPATCH FindNextChangeNotification(HANDLE handle)
DWORD file_name_WtoA(LPCWSTR src, INT srclen, LPSTR dest, INT destlen)
DWORD WINAPI DECLSPEC_HOTPATCH GetFinalPathNameByHandleW(HANDLE file, LPWSTR path, DWORD count, DWORD flags)
BOOL WINAPI DECLSPEC_HOTPATCH CancelSynchronousIo(HANDLE thread)
DWORD WINAPI DECLSPEC_HOTPATCH GetFileAttributesW(LPCWSTR name)
BOOL WINAPI MoveFileExW(const WCHAR *source, const WCHAR *dest, DWORD flag)
static BOOL add_boot_rename_entry(LPCWSTR source, LPCWSTR dest, DWORD flags)
INT WINAPI DECLSPEC_HOTPATCH CompareStringOrdinal(const WCHAR *str1, INT len1, const WCHAR *str2, INT len2, BOOL ignore_case)
WCHAR *WINAPI PathFindFileNameW(const WCHAR *path)
BOOL WINAPI PathRemoveFileSpecW(WCHAR *path)
DWORD WINAPI GetVersion(void)
#define FileStatInformation
#define FileIdInformation
#define FileDispositionInformationEx
BOOLEAN RtlTimeToTimeFields(IN PLARGE_INTEGER Time, IN PTIME_FIELDS TimeFields)
BOOLEAN RtlTimeFieldsToTime(IN PTIME_FIELDS TimeFields, IN PLARGE_INTEGER Time)
struct _IO_STATUS_BLOCK * PIO_STATUS_BLOCK
#define MOVEFILE_REPLACE_EXISTING
#define MOVEFILE_COPY_ALLOWED
@ SystemTimeAdjustmentInformation
#define FILE_OPEN_BY_FILE_ID
@ FilePositionInformation
@ FileEndOfFileInformation
@ FileCompressionInformation
@ FileIoPriorityHintInformation
@ FileAttributeTagInformation
@ FileAlignmentInformation
@ FileIdBothDirectoryInformation
@ FileValidDataLengthInformation
@ FileFullDirectoryInformation
@ FileDispositionInformation
@ FileBothDirectoryInformation
#define FILE_OVERWRITE_IF
#define FILE_SYNCHRONOUS_IO_NONALERT
@ FileFsDeviceInformation
@ FileFsVolumeInformation
#define FILE_NO_INTERMEDIATE_BUFFERING
#define FILE_RANDOM_ACCESS
#define FILE_WRITE_THROUGH
#define FILE_SEQUENTIAL_ONLY
#define FILE_OPEN_FOR_BACKUP_INTENT
GLint GLint GLint GLint GLint x
GLuint GLuint GLsizei count
GLint GLint GLint GLint GLint GLint y
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
GLsizei GLsizei GLfloat distance
GLenum const GLfloat * params
GLenum GLuint GLenum GLsizei const GLchar * buf
GLint GLint GLint GLint GLint GLint GLint GLbitfield GLenum filter
GLuint GLsizei GLsizei * length
GLuint GLint GLboolean GLint GLenum access
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean flag
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
#define OBJ_CASE_INSENSITIVE
BOOLEAN NTAPI RtlIsNameLegalDOS8Dot3(_In_ PUNICODE_STRING Name, _Inout_opt_ POEM_STRING OemName, _Inout_opt_ PBOOLEAN NameContainsSpaces)
NTSTATUS NTAPI RtlLocalTimeToSystemTime(IN PLARGE_INTEGER LocalTime, _Out_ PLARGE_INTEGER SystemTime)
NTSYSAPI NTSTATUS WINAPI RtlFindActivationContextSectionString(ULONG, const GUID *, ULONG, const UNICODE_STRING *, PVOID)
NTSYSAPI void WINAPI RtlReleaseActivationContext(HANDLE)
NTSYSAPI NTSTATUS WINAPI RtlInitializeCriticalSectionEx(RTL_CRITICAL_SECTION *, ULONG, ULONG)
NTSYSAPI NTSTATUS WINAPI NtCancelIoFileEx(HANDLE, PIO_STATUS_BLOCK, PIO_STATUS_BLOCK)
NTSYSAPI ULONG WINAPI RtlNtStatusToDosError(NTSTATUS)
NTSYSAPI NTSTATUS WINAPI RtlDosPathNameToNtPathName_U_WithStatus(PCWSTR, PUNICODE_STRING, PWSTR *, CURDIR *)
NTSYSAPI NTSTATUS WINAPI RtlQueryInformationActivationContext(ULONG, HANDLE, PVOID, ULONG, PVOID, SIZE_T, SIZE_T *)
NTSTATUS NTAPI NtReadFileScatter(IN HANDLE FileHandle, IN HANDLE Event OPTIONAL, IN PIO_APC_ROUTINE UserApcRoutine OPTIONAL, IN PVOID UserApcContext OPTIONAL, OUT PIO_STATUS_BLOCK UserIoStatusBlock, IN FILE_SEGMENT_ELEMENT BufferDescription[], IN ULONG BufferLength, IN PLARGE_INTEGER ByteOffset, IN PULONG Key OPTIONAL)
NTSTATUS NTAPI NtFlushBuffersFile(IN HANDLE FileHandle, OUT PIO_STATUS_BLOCK IoStatusBlock)
NTSTATUS NTAPI NtLockFile(IN HANDLE FileHandle, IN HANDLE EventHandle OPTIONAL, IN PIO_APC_ROUTINE ApcRoutine OPTIONAL, IN PVOID ApcContext OPTIONAL, OUT PIO_STATUS_BLOCK IoStatusBlock, IN PLARGE_INTEGER ByteOffset, IN PLARGE_INTEGER Length, IN ULONG Key, IN BOOLEAN FailImmediately, IN BOOLEAN ExclusiveLock)
NTSTATUS NTAPI NtNotifyChangeDirectoryFile(IN HANDLE FileHandle, IN HANDLE EventHandle OPTIONAL, IN PIO_APC_ROUTINE ApcRoutine OPTIONAL, IN PVOID ApcContext OPTIONAL, OUT PIO_STATUS_BLOCK IoStatusBlock, OUT PVOID Buffer, IN ULONG BufferSize, IN ULONG CompletionFilter, IN BOOLEAN WatchTree)
NTSTATUS NTAPI NtQueryDirectoryFile(IN HANDLE FileHandle, IN HANDLE EventHandle OPTIONAL, IN PIO_APC_ROUTINE ApcRoutine OPTIONAL, IN PVOID ApcContext OPTIONAL, OUT PIO_STATUS_BLOCK IoStatusBlock, OUT PVOID FileInformation, IN ULONG Length, IN FILE_INFORMATION_CLASS FileInformationClass, IN BOOLEAN ReturnSingleEntry, IN PUNICODE_STRING FileName OPTIONAL, IN BOOLEAN RestartScan)
NTSTATUS NTAPI NtWriteFileGather(IN HANDLE FileHandle, IN HANDLE Event OPTIONAL, IN PIO_APC_ROUTINE UserApcRoutine OPTIONAL, IN PVOID UserApcContext OPTIONAL, OUT PIO_STATUS_BLOCK UserIoStatusBlock, IN FILE_SEGMENT_ELEMENT BufferDescription[], IN ULONG BufferLength, IN PLARGE_INTEGER ByteOffset, IN PULONG Key OPTIONAL)
NTSTATUS NTAPI NtUnlockFile(IN HANDLE FileHandle, OUT PIO_STATUS_BLOCK IoStatusBlock, IN PLARGE_INTEGER ByteOffset, IN PLARGE_INTEGER Length, IN ULONG Key OPTIONAL)
static const WCHAR sourceW[]
static const BOOL is_win64
LPWSTR WINAPI lstrcatW(LPWSTR lpString1, LPCWSTR lpString2)
#define memcpy(s1, s2, n)
BOOL WINAPI GetVolumeNameForVolumeMountPointW(IN LPCWSTR VolumeMountPoint, OUT LPWSTR VolumeName, IN DWORD VolumeNameLength)
#define FILE_FLAG_OPEN_REPARSE_POINT
#define ERROR_ALREADY_EXISTS
#define TRUNCATE_EXISTING
#define FILE_FLAG_OVERLAPPED
#define FILE_FLAG_NO_BUFFERING
#define FILE_FLAG_POSIX_SEMANTICS
#define FILE_FLAG_BACKUP_SEMANTICS
#define FILE_FLAG_OPEN_NO_RECALL
#define FILE_FLAG_RANDOM_ACCESS
#define FILE_FLAG_DELETE_ON_CLOSE
#define FILE_FLAG_SEQUENTIAL_SCAN
#define ERROR_FILE_NOT_FOUND
#define FILE_FLAG_WRITE_THROUGH
#define SERIAL_DSR_SENSITIVITY
#define FILE_DEVICE_SERIAL_PORT
#define SERIAL_ERROR_ABORT
#define SERIAL_CTS_HANDSHAKE
#define SERIAL_DTR_CONTROL
static char shortpath[MAX_PATH]
static HANDLE PIO_APC_ROUTINE void PIO_STATUS_BLOCK io_status
static HANDLE PIO_APC_ROUTINE void * apc_user
static LPFILE_ID_DESCRIPTOR
static FILE_INFO_BY_HANDLE_CLASS
static const char machine[]
static const char session_manager[]
static DWORD LPDWORD LPCSTR DWORD srclen
static HANDLE PIO_APC_ROUTINE PVOID PIO_STATUS_BLOCK ULONG PVOID ULONG PVOID ULONG out_size
static HANDLE PIO_APC_ROUTINE PVOID PIO_STATUS_BLOCK io
static PIO_STATUS_BLOCK iosb
static HANDLE PIO_APC_ROUTINE PVOID PIO_STATUS_BLOCK ULONG PVOID ULONG in_size
static ULONG POBJECT_ATTRIBUTES PIO_STATUS_BLOCK ULONG sharing
#define InitializeObjectAttributes(p, n, a, r, s)
static UINT UINT * out_count
NTSYSAPI NTSTATUS NTAPI RtlDeleteCriticalSection(_In_ PRTL_CRITICAL_SECTION CriticalSection)
NTSYSAPI NTSTATUS NTAPI RtlUnicodeStringToOemString(POEM_STRING DestinationString, PCUNICODE_STRING SourceString, BOOLEAN AllocateDestinationString)
NTSYSAPI ULONG NTAPI RtlIsDosDeviceName_U(_In_ PCWSTR Name)
NTSYSAPI RTL_PATH_TYPE NTAPI RtlDetermineDosPathNameType_U(_In_ PCWSTR Path)
NTSYSAPI NTSTATUS NTAPI RtlOemStringToUnicodeString(PUNICODE_STRING DestinationString, PCOEM_STRING SourceString, BOOLEAN AllocateDestinationString)
NTSYSAPI NTSTATUS NTAPI RtlSetCurrentDirectory_U(_In_ PUNICODE_STRING name)
NTSYSAPI NTSTATUS NTAPI RtlEnterCriticalSection(_In_ PRTL_CRITICAL_SECTION CriticalSection)
NTSYSAPI NTSTATUS NTAPI RtlSystemTimeToLocalTime(_In_ PLARGE_INTEGER SystemTime, _Out_ PLARGE_INTEGER LocalTime)
NTSYSAPI NTSTATUS NTAPI RtlLeaveCriticalSection(_In_ PRTL_CRITICAL_SECTION CriticalSection)
NTSYSAPI ULONG NTAPI RtlGetFullPathName_U(_In_ PCWSTR FileName, _In_ ULONG Size, _Out_z_bytecap_(Size) PWSTR Buffer, _Out_opt_ PWSTR *ShortName)
NTSYSAPI ULONG NTAPI RtlDosSearchPath_U(_In_ PCWSTR Path, _In_ PCWSTR FileName, _In_ PCWSTR Extension, _In_ ULONG BufferSize, _Out_ PWSTR Buffer, _Out_ PWSTR *PartName)
NTSYSAPI ULONG NTAPI RtlGetCurrentDirectory_U(_In_ ULONG MaximumLength, _Out_bytecap_(MaximumLength) PWSTR Buffer)
NTSYSAPI BOOLEAN NTAPI RtlDosPathNameToNtPathName_U(_In_opt_z_ PCWSTR DosPathName, _Out_ PUNICODE_STRING NtPathName, _Out_opt_ PCWSTR *NtFileNamePart, _Out_opt_ PRTL_RELATIVE_NAME_U DirectoryInfo)
NTSYSAPI BOOLEAN NTAPI RtlDoesFileExists_U(_In_ PCWSTR FileName)
_Use_decl_annotations_ NTSTATUS NTAPI RtlUnicodeToOemN(_Out_ PCHAR OemString, _In_ ULONG OemSize, _Out_opt_ PULONG ResultSize, _In_ PCWCH UnicodeString, _In_ ULONG UnicodeSize)
_Use_decl_annotations_ NTSTATUS NTAPI RtlUnicodeToMultiByteN(_Out_ PCHAR MbString, _In_ ULONG MbSize, _Out_opt_ PULONG ResultSize, _In_ PCWCH UnicodeString, _In_ ULONG UnicodeSize)
_Use_decl_annotations_ NTSTATUS NTAPI RtlUnicodeToMultiByteSize(_Out_ PULONG MbSize, _In_ PCWCH UnicodeString, _In_ ULONG UnicodeSize)
NTSYSAPI NTSTATUS NTAPI NtOpenFile(OUT PHANDLE phFile, IN ACCESS_MASK DesiredAccess, IN POBJECT_ATTRIBUTES ObjectAttributes, OUT PIO_STATUS_BLOCK pIoStatusBlock, IN ULONG ShareMode, IN ULONG OpenMode)
NTSYSAPI NTSTATUS NTAPI RtlUnicodeStringToAnsiString(PANSI_STRING DestinationString, PUNICODE_STRING SourceString, BOOLEAN AllocateDestinationString)
NTSYSAPI NTSTATUS NTAPI NtSetValueKey(IN HANDLE KeyHandle, IN PUNICODE_STRING ValueName, IN ULONG TitleIndex OPTIONAL, IN ULONG Type, IN PVOID Data, IN ULONG DataSize)
#define FILE_ATTRIBUTE_VALID_FLAGS
#define FILE_ATTRIBUTE_READONLY
@ KeyValuePartialInformation
NTSYSAPI NTSTATUS NTAPI NtWriteFile(IN HANDLE hFile, IN HANDLE hEvent OPTIONAL, IN PIO_APC_ROUTINE IoApcRoutine OPTIONAL, IN PVOID IoApcContext OPTIONAL, OUT PIO_STATUS_BLOCK pIoStatusBlock, IN PVOID WriteBuffer, IN ULONG WriteBufferLength, IN PLARGE_INTEGER FileOffset OPTIONAL, IN PULONG LockOperationKey OPTIONAL)
#define FILE_READ_ATTRIBUTES
#define FILE_LIST_DIRECTORY
#define FILE_ATTRIBUTE_HIDDEN
NTSYSAPI NTSTATUS NTAPI RtlAnsiStringToUnicodeString(PUNICODE_STRING DestinationString, PANSI_STRING SourceString, BOOLEAN AllocateDestinationString)
#define FILE_ATTRIBUTE_SYSTEM
NTSYSAPI VOID NTAPI RtlInitUnicodeString(PUNICODE_STRING DestinationString, PCWSTR SourceString)
NTSYSAPI NTSTATUS NTAPI NtSetInformationFile(IN HANDLE hFile, OUT PIO_STATUS_BLOCK pIoStatusBlock, IN PVOID FileInformationBuffer, IN ULONG FileInformationBufferLength, IN FILE_INFORMATION_CLASS FileInfoClass)
NTSYSAPI NTSTATUS NTAPI NtQueryValueKey(IN HANDLE KeyHandle, IN PUNICODE_STRING ValueName, IN KEY_VALUE_INFORMATION_CLASS KeyValueInformationClass, IN PVOID KeyValueInformation, IN ULONG Length, IN PULONG ResultLength)
NTSYSAPI NTSTATUS NTAPI NtQueryInformationFile(IN HANDLE hFile, OUT PIO_STATUS_BLOCK pIoStatusBlock, OUT PVOID FileInformationBuffer, IN ULONG FileInformationBufferLength, IN FILE_INFORMATION_CLASS FileInfoClass)
#define FILE_ATTRIBUTE_OFFLINE
struct _OBJECT_NAME_INFORMATION OBJECT_NAME_INFORMATION
NTSYSAPI NTSTATUS NTAPI NtDeviceIoControlFile(IN HANDLE hFile, IN HANDLE hEvent OPTIONAL, IN PIO_APC_ROUTINE IoApcRoutine OPTIONAL, IN PVOID IoApcContext OPTIONAL, OUT PIO_STATUS_BLOCK pIoStatusBlock, IN ULONG DeviceIoControlCode, IN PVOID InBuffer OPTIONAL, IN ULONG InBufferLength, OUT PVOID OutBuffer OPTIONAL, IN ULONG OutBufferLength)
#define FILE_SHARE_DELETE
NTSTATUS NTAPI NtClose(IN HANDLE Handle)
#define FILE_ATTRIBUTE_ARCHIVE
#define FILE_ATTRIBUTE_DIRECTORY
NTSYSAPI VOID NTAPI RtlFreeUnicodeString(PUNICODE_STRING UnicodeString)
NTSTATUS NTAPI NtCreateFile(OUT PHANDLE FileHandle, IN ACCESS_MASK DesiredAccess, IN POBJECT_ATTRIBUTES ObjectAttributes, OUT PIO_STATUS_BLOCK IoStatusBlock, IN PLARGE_INTEGER AllocationSize OPTIONAL, IN ULONG FileAttributes, IN ULONG ShareAccess, IN ULONG CreateDisposition, IN ULONG CreateOptions, IN PVOID EaBuffer OPTIONAL, IN ULONG EaLength)
NTSYSAPI VOID NTAPI RtlInitAnsiString(PANSI_STRING DestinationString, PCSZ SourceString)
NTSYSAPI NTSTATUS NTAPI NtFsControlFile(IN HANDLE hFile, IN HANDLE hEvent OPTIONAL, IN PIO_APC_ROUTINE IoApcRoutine OPTIONAL, IN PVOID IoApcContext OPTIONAL, OUT PIO_STATUS_BLOCK pIoStatusBlock, IN ULONG DeviceIoControlCode, IN PVOID InBuffer OPTIONAL, IN ULONG InBufferLength, OUT PVOID OutBuffer OPTIONAL, IN ULONG OutBufferLength)
#define FILE_ATTRIBUTE_TEMPORARY
NTSTATUS NTAPI NtCreateKey(OUT PHANDLE KeyHandle, IN ACCESS_MASK DesiredAccess, IN POBJECT_ATTRIBUTES ObjectAttributes, IN ULONG TitleIndex, IN PUNICODE_STRING Class OPTIONAL, IN ULONG CreateOptions, OUT PULONG Disposition OPTIONAL)
#define UNICODE_STRING_MAX_CHARS
#define IOCTL_SERIAL_SET_CHARS
#define IOCTL_SERIAL_SET_LINE_CONTROL
#define SERIAL_ERROR_QUEUEOVERRUN
#define IOCTL_SERIAL_SET_TIMEOUTS
#define SERIAL_RTS_HANDSHAKE
#define IOCTL_SERIAL_WAIT_ON_MASK
#define IOCTL_SERIAL_IMMEDIATE_CHAR
#define SERIAL_ERROR_CHAR
#define IOCTL_SERIAL_SET_XOFF
#define IOCTL_SERIAL_GET_CHARS
#define SERIAL_DSR_HANDSHAKE
#define SERIAL_TX_WAITING_FOR_CTS
#define SERIAL_DTR_HANDSHAKE
#define SERIAL_TX_WAITING_FOR_XON
#define IOCTL_SERIAL_SET_WAIT_MASK
#define IOCTL_SERIAL_SET_QUEUE_SIZE
#define SERIAL_ERROR_BREAK
#define IOCTL_SERIAL_RESET_DEVICE
#define IOCTL_SERIAL_GET_BAUD_RATE
#define IOCTL_SERIAL_GET_COMMSTATUS
#define SERIAL_TX_WAITING_FOR_DCD
#define SERIAL_TX_WAITING_FOR_DSR
#define IOCTL_SERIAL_GET_WAIT_MASK
#define IOCTL_SERIAL_SET_BREAK_OFF
#define SERIAL_NULL_STRIPPING
#define SERIAL_RTS_CONTROL
#define SERIAL_AUTO_TRANSMIT
#define IOCTL_SERIAL_GET_TIMEOUTS
#define IOCTL_SERIAL_SET_XON
#define IOCTL_SERIAL_CLR_DTR
#define IOCTL_SERIAL_SET_BAUD_RATE
#define IOCTL_SERIAL_GET_PROPERTIES
#define SERIAL_ERROR_FRAMING
#define SERIAL_ERROR_PARITY
#define SERIAL_TX_WAITING_XOFF_SENT
#define IOCTL_SERIAL_CLR_RTS
#define SERIAL_AUTO_RECEIVE
#define SERIAL_ERROR_OVERRUN
#define IOCTL_SERIAL_GET_MODEMSTATUS
#define SERIAL_XOFF_CONTINUE
#define IOCTL_SERIAL_GET_LINE_CONTROL
#define IOCTL_SERIAL_SET_DTR
#define IOCTL_SERIAL_SET_BREAK_ON
#define IOCTL_SERIAL_GET_HANDFLOW
#define IOCTL_SERIAL_SET_RTS
#define IOCTL_SERIAL_SET_HANDFLOW
#define IOCTL_SERIAL_PURGE
#define FILE_ATTRIBUTE_ENCRYPTED
NTSTATUS NTAPI NtQuerySystemTime(OUT PLARGE_INTEGER SystemTime)
NTSTATUS NTAPI NtSetSystemTime(IN PLARGE_INTEGER SystemTime, OUT PLARGE_INTEGER PreviousTime OPTIONAL)
NTSTATUS NTAPI NtQueryAttributesFile(IN POBJECT_ATTRIBUTES ObjectAttributes, OUT PFILE_BASIC_INFORMATION FileInformation)
NTSTATUS NTAPI NtCancelIoFile(IN HANDLE FileHandle, OUT PIO_STATUS_BLOCK IoStatusBlock)
NTSTATUS NTAPI NtQueryFullAttributesFile(IN POBJECT_ATTRIBUTES ObjectAttributes, OUT PFILE_NETWORK_OPEN_INFORMATION FileInformation)
#define STATUS_SXS_KEY_NOT_FOUND
#define STATUS_NOT_SAME_DEVICE
#define IMAGE_FILE_MACHINE_I386
#define FILE_DEVICE_FILE_SYSTEM
#define FILE_DEVICE_NAMED_PIPE
#define FILE_DEVICE_UNKNOWN
#define FILE_DEVICE_CONSOLE
#define FILE_DEVICE_PARALLEL_PORT
#define FSCTL_GET_OBJECT_ID
#define offsetof(TYPE, MEMBER)
_Check_return_ _CRTIMP int __cdecl __cdecl eof(_In_ int _FileHandle)
_Check_return_ _CRTIMP _CONST_RETURN wchar_t *__cdecl wcspbrk(_In_z_ const wchar_t *_Str, _In_z_ const wchar_t *_Control)
_Check_return_ _CRTIMP int __cdecl wcsncmp(_In_reads_or_z_(_MaxCount) const wchar_t *_Str1, _In_reads_or_z_(_MaxCount) const wchar_t *_Str2, _In_ size_t _MaxCount)
_CRT_RESTORE_GCC_WARNINGS _CRT_DISABLE_GCC_WARNINGS _Check_return_ _CRTIMP _CONST_RETURN char *__cdecl strrchr(_In_z_ const char *_Str, _In_ int _Ch)
#define DECLSPEC_HOTPATCH
#define FileStandardInformation
#define STATUS_END_OF_FILE
NTSTATUS NTAPI NtQueryVolumeInformationFile(HANDLE FileHandle, PIO_STATUS_BLOCK IoStatusBlock, PVOID FsInformation, ULONG Length, FS_INFORMATION_CLASS FsInformationClass)
#define STATUS_BUFFER_TOO_SMALL
#define STATUS_BUFFER_OVERFLOW
NTSTATUS NTAPI NtReadFile(HANDLE FileHandle, HANDLE Event, PIO_APC_ROUTINE ApcRoutine, PVOID ApcContext, PIO_STATUS_BLOCK IoStatusBlock, PVOID Buffer, ULONG Length, PLARGE_INTEGER ByteOffset, PULONG Key)
namespace GUID const ADDRINFOEXW ADDRINFOEXW struct timeval OVERLAPPED * overlapped
wchar_t const *const size_t const buffer_size
NTSYSAPI NTSTATUS NTAPI NtQuerySystemInformation(IN SYSTEM_INFORMATION_CLASS SystemInfoClass, OUT PVOID SystemInfoBuffer, IN ULONG SystemInfoBufferSize, OUT PULONG BytesReturned OPTIONAL)
FINDEX_SEARCH_OPS search_op
LPVOID lpSecurityDescriptor
SECURITY_CONTEXT_TRACKING_MODE ContextTrackingMode
SECURITY_IMPERSONATION_LEVEL ImpersonationLevel
BOOLEAN TimeAdjustmentDisabled
DWORD WINAPI WaitForSingleObject(IN HANDLE hHandle, IN DWORD dwMilliseconds)
DWORD WINAPI WaitForSingleObjectEx(IN HANDLE hHandle, IN DWORD dwMilliseconds, IN BOOL bAlertable)
HANDLE WINAPI DECLSPEC_HOTPATCH CreateEventW(IN LPSECURITY_ATTRIBUTES lpEventAttributes OPTIONAL, IN BOOL bManualReset, IN BOOL bInitialState, IN LPCWSTR lpName OPTIONAL)
Character const *const prefix
#define RTL_CONSTANT_STRING(s)
#define FIELD_OFFSET(t, f)
#define STATUS_OBJECT_NAME_COLLISION
#define STATUS_OBJECT_NAME_NOT_FOUND
#define STATUS_NO_MORE_FILES
struct _LARGE_INTEGER::@2473 u
#define INVALID_FILE_ATTRIBUTES
#define COPY_FILE_FAIL_IF_EXISTS
struct _COMM_CONFIG COMMCONFIG
void(CALLBACK * LPOVERLAPPED_COMPLETION_ROUTINE)(DWORD, DWORD, LPOVERLAPPED)
enum _FINDEX_SEARCH_OPS FINDEX_SEARCH_OPS
#define LOCKFILE_FAIL_IMMEDIATELY
#define STD_OUTPUT_HANDLE
#define COPY_FILE_RESTARTABLE
#define RTS_CONTROL_ENABLE
#define DTR_CONTROL_HANDSHAKE
DWORD WINAPI GetLastError(void)
#define LOCKFILE_EXCLUSIVE_LOCK
@ FindExSearchLimitToDirectories
#define COPY_FILE_OPEN_SOURCE_FOR_WRITE
#define FILE_TYPE_UNKNOWN
#define RTS_CONTROL_HANDSHAKE
#define FIND_FIRST_EX_LARGE_FETCH
#define DTR_CONTROL_DISABLE
#define RTS_CONTROL_TOGGLE
DWORD(WINAPI * LPPROGRESS_ROUTINE)(_In_ LARGE_INTEGER, _In_ LARGE_INTEGER, _In_ LARGE_INTEGER, _In_ LARGE_INTEGER, _In_ DWORD, _In_ DWORD, _In_ HANDLE, _In_ HANDLE, _In_opt_ LPVOID)
#define RTS_CONTROL_DISABLE
#define INVALID_FILE_SIZE
#define DTR_CONTROL_ENABLE
enum _GET_FILEEX_INFO_LEVELS GET_FILEEX_INFO_LEVELS
#define SECURITY_SQOS_PRESENT
#define SECURITY_EFFECTIVE_ONLY
#define MOVEFILE_DELAY_UNTIL_REBOOT
#define SECURITY_CONTEXT_TRACKING
enum _FINDEX_INFO_LEVELS FINDEX_INFO_LEVELS
#define ERROR_IO_INCOMPLETE
#define ERROR_SHARING_VIOLATION
#define ERROR_UNABLE_TO_MOVE_REPLACEMENT
#define ERROR_PATH_NOT_FOUND
#define ERROR_NEGATIVE_SEEK
#define ERROR_BAD_PATHNAME
#define ERROR_GEN_FAILURE
#define ERROR_FILE_EXISTS
#define ERROR_UNABLE_TO_MOVE_REPLACEMENT_2
#define ERROR_NO_MORE_FILES
#define ERROR_FILENAME_EXCED_RANGE
#define HRESULT_FROM_WIN32(x)
#define RTL_CRITICAL_SECTION_FLAG_FORCE_DEBUG_INFO
#define FILE_NOTIFY_CHANGE_SIZE
#define FILE_ATTRIBUTE_INTEGRITY_STREAM
#define RtlUnicodeStringToOemSize(STRING)
#define RtlUnicodeStringToAnsiSize(String)
#define SECURITY_STATIC_TRACKING
#define SECURITY_DYNAMIC_TRACKING