File Index Symbol Index

/******************************************************************************** * * * FileApi.h -- ApiSet Contract for api-ms-win-core-file-l1 * * * * Copyright (c) Microsoft Corporation. All rights reserved. * * * ********************************************************************************/
#ifdef _MSC_VER
#pragma once
#endif // _MSC_VER
#ifndef _APISETFILE_
#define _APISETFILE_
#include <apiset.h>
#include <apisetcconv.h>
#include <minwindef.h>
#include <minwinbase.h>
#ifdef __cplusplus
extern
"C"
{
#endif
#pragma region Application Family or OneCore Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM)
//
// Constants
//
#define CREATE_NEW 1
#define CREATE_ALWAYS 2
#define OPEN_EXISTING 3
#define OPEN_ALWAYS 4
#define TRUNCATE_EXISTING 5
#define INVALID_FILE_SIZE ((DWORD)0xFFFFFFFF)
#define INVALID_SET_FILE_POINTER ((DWORD)-1)
#define INVALID_FILE_ATTRIBUTES ((DWORD)-1)
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM) */
#pragma endregion #pragma region Application Family or OneCore Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM)
LONG
CompareFileTime
( );
BOOL
CreateDirectoryA
( );
BOOL
CreateDirectoryW
( );
#ifdef UNICODE
#define CreateDirectory CreateDirectoryW
#else
#define CreateDirectory CreateDirectoryA #endif // !UNICODE
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM) */
#pragma endregion #pragma region Desktop Family or OneCore Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM)
HANDLE
CreateFileA
( );
HANDLE
CreateFileW
( );
#ifdef UNICODE
#define CreateFile CreateFileW
#else
#define CreateFile CreateFileA #endif // !UNICODE
BOOL
DefineDosDeviceW
( );
#ifdef UNICODE
#define DefineDosDevice DefineDosDeviceW #endif
#endif // WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM)
#pragma endregion #pragma region Application Family or OneCore Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM)
BOOL
DeleteFileA
( );
BOOL
DeleteFileW
( );
#ifdef UNICODE
#define DeleteFile DeleteFileW
#else
#define DeleteFile DeleteFileA #endif // !UNICODE
BOOL
DeleteVolumeMountPointW
( );
#ifdef UNICODE
#define DeleteVolumeMountPoint DeleteVolumeMountPointW #endif
BOOL
FileTimeToLocalFileTime
( );
BOOL
FindClose
( );
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM) */
#pragma endregion #pragma region Desktop Family or OneCore Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM)
BOOL
FindCloseChangeNotification
( );
HANDLE
FindFirstChangeNotificationA
( );
HANDLE
FindFirstChangeNotificationW
( );
#ifdef UNICODE
#define FindFirstChangeNotification FindFirstChangeNotificationW
#else
#define FindFirstChangeNotification FindFirstChangeNotificationA #endif // !UNICODE
#endif // WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM)
#pragma endregion #pragma region Application Family or OneCore Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM)
HANDLE
FindFirstFileA
( );
HANDLE
FindFirstFileW
( );
#ifdef UNICODE
#define FindFirstFile FindFirstFileW
#else
#define FindFirstFile FindFirstFileA #endif // !UNICODE
#if (_WIN32_WINNT >= 0x0400)
HANDLE
FindFirstFileExA
( );
HANDLE
FindFirstFileExW
( );
#ifdef UNICODE
#define FindFirstFileEx FindFirstFileExW
#else
#define FindFirstFileEx FindFirstFileExA #endif // !UNICODE
#endif /* _WIN32_WINNT >= 0x0400 */
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM) */
#pragma endregion #pragma region Desktop Family or OneCore Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM)
HANDLE
FindFirstVolumeW
( );
#ifdef UNICODE
#define FindFirstVolume FindFirstVolumeW #endif // !UNICODE
BOOL
FindNextChangeNotification
( );
#endif // WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM)
#pragma endregion #pragma region Application Family or OneCore Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM)
BOOL
FindNextFileA
( );
BOOL
FindNextFileW
( );
#ifdef UNICODE
#define FindNextFile FindNextFileW
#else
#define FindNextFile FindNextFileA #endif // !UNICODE
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM) */
#pragma endregion #pragma region Desktop Family or OneCore Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM)
BOOL
FindNextVolumeW
( );
#ifdef UNICODE
#define FindNextVolume FindNextVolumeW #endif
BOOL
FindVolumeClose
( );
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM) */
#pragma endregion #pragma region Application Family or OneCore Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM)
BOOL
FlushFileBuffers
( );
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM) */
#pragma endregion #pragma region Application Family or OneCore Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM)
BOOL
GetDiskFreeSpaceA
( );
BOOL
GetDiskFreeSpaceW
( );
#ifdef UNICODE
#define GetDiskFreeSpace GetDiskFreeSpaceW
#else
#define GetDiskFreeSpace GetDiskFreeSpaceA #endif // !UNICODE
BOOL
GetDiskFreeSpaceExA
( );
BOOL
GetDiskFreeSpaceExW
( );
#ifdef UNICODE
#define GetDiskFreeSpaceEx GetDiskFreeSpaceExW
#else
#define GetDiskFreeSpaceEx GetDiskFreeSpaceExA #endif // !UNICODE
//
// The structure definition must be same as the one
// (FILE_FS_FULL_SIZE_INFORMATION_EX) defined in ntioapi_x.w
//
typedef
struct
DISK_SPACE_INFORMATION
{
//
// AllocationUnits are actually file system clusters.
// AllocationUnits * SectorsPerAllocationUnit * BytesPerSector
// will get you the sizes in bytes.
//
//
// The Actual*AllocationUnits are volume sizes without considering Quota
// setting.
// ActualPoolUnavailableAllocationUnits is the unavailable space for the
// volume due to insufficient free pool space (PoolAvailableAllocationUnits).
// Be aware AllocationUnits are mesured in clusters, see comments at the beginning.
//
// ActualTotalAllocationUnits = ActualAvailableAllocationUnits +
// ActualPoolUnavailableAllocationUnits +
// UsedAllocationUnits +
// TotalReservedAllocationUnits
//
ULONGLONG
ActualTotalAllocationUnits
;
ULONGLONG
ActualAvailableAllocationUnits
;
ULONGLONG
ActualPoolUnavailableAllocationUnits
;
//
// The Caller*AllocationUnits are limited by Quota setting.
// CallerAvailableAllocationUnits is the unavailable space for the
// volume due to insufficient free pool space (PoolAvailableAllocationUnits).
// Be aware AllocationUnits are mesured in clusters, see comments at the beginning.
//
// CallerTotalAllocationUnits = CallerAvailableAllocationUnits +
// CallerPoolUnavailableAllocationUnits +
// UsedAllocationUnits +
// TotalReservedAllocationUnits
//
ULONGLONG
CallerTotalAllocationUnits
;
ULONGLONG
CallerAvailableAllocationUnits
;
ULONGLONG
CallerPoolUnavailableAllocationUnits
;
//
// The used space (in clusters) of the volume.
//
ULONGLONG
UsedAllocationUnits
;
//
// Total reserved space (in clusters).
//
ULONGLONG
TotalReservedAllocationUnits
;
//
// A special type of reserved space (in clusters) for per-volume storage
// reserve and this is included in the above TotalReservedAllocationUnits.
//
ULONGLONG
VolumeStorageReserveAllocationUnits
;
//
// This refers to the space (in clusters) that has been committed by
// storage pool but has not been allocated by file system.
//
// s1 = (ActualTotalAllocationUnits - UsedAllocationUnits - TotalReservedAllocationUnits)
// s2 = (AvailableCommittedAllocationUnits + PoolAvailableAllocationUnits)
// ActualAvailableAllocationUnits = min( s1, s2 )
//
// When s1 >= s2, ActualPoolUnavailableAllocationUnits = 0
// When s1 < s2, ActualPoolUnavailableAllocationUnits = s2 - s1.
//
ULONGLONG
AvailableCommittedAllocationUnits
;
//
// Available space (in clusters) in corresponding storage pool. If the volume
// is not a spaces volume, the PoolAvailableAllocationUnits is set to zero.
//
ULONGLONG
PoolAvailableAllocationUnits
;
DWORD
SectorsPerAllocationUnit
;
DWORD
BytesPerSector
; }
DISK_SPACE_INFORMATION
;
HRESULT
GetDiskSpaceInformationA
( );
HRESULT
GetDiskSpaceInformationW
( );
#ifdef UNICODE
#define GetDiskSpaceInformation GetDiskSpaceInformationW
#else
#define GetDiskSpaceInformation GetDiskSpaceInformationA #endif // !UNICODE
UINT
GetDriveTypeA
( );
UINT
GetDriveTypeW
( );
#ifdef UNICODE
#define GetDriveType GetDriveTypeW
#else
#define GetDriveType GetDriveTypeA #endif // !UNICODE
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM) */
#pragma endregion #pragma region Application Family or OneCore Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM)
typedef
struct
_WIN32_FILE_ATTRIBUTE_DATA
{
DWORD
dwFileAttributes
;
FILETIME
ftCreationTime
;
FILETIME
ftLastAccessTime
;
FILETIME
ftLastWriteTime
;
DWORD
nFileSizeHigh
;
DWORD
nFileSizeLow
; }
WIN32_FILE_ATTRIBUTE_DATA
, *
LPWIN32_FILE_ATTRIBUTE_DATA
;
DWORD
GetFileAttributesA
( );
DWORD
GetFileAttributesW
( );
#ifdef UNICODE
#define GetFileAttributes GetFileAttributesW
#else
#define GetFileAttributes GetFileAttributesA #endif // !UNICODE
BOOL
GetFileAttributesExA
( );
BOOL
GetFileAttributesExW
( );
#ifdef UNICODE
#define GetFileAttributesEx GetFileAttributesExW
#else
#define GetFileAttributesEx GetFileAttributesExA #endif // !UNICODE
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM) */
#pragma endregion #pragma region Desktop Family or OneCore Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM)
typedef
struct
_BY_HANDLE_FILE_INFORMATION
{
DWORD
dwFileAttributes
;
FILETIME
ftCreationTime
;
FILETIME
ftLastAccessTime
;
FILETIME
ftLastWriteTime
;
DWORD
dwVolumeSerialNumber
;
DWORD
nFileSizeHigh
;
DWORD
nFileSizeLow
;
DWORD
;
DWORD
nFileIndexHigh
;
DWORD
nFileIndexLow
; }
BY_HANDLE_FILE_INFORMATION
, *
PBY_HANDLE_FILE_INFORMATION
, *
LPBY_HANDLE_FILE_INFORMATION
;
BOOL
GetFileInformationByHandle
( );
DWORD
GetFileSize
( );
#endif // WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM)
#pragma endregion #pragma region Application Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM)
BOOL
GetFileSizeEx
( );
DWORD
GetFileType
( );
#if (_WIN32_WINNT >= 0x0600)
DWORD
GetFinalPathNameByHandleA
( );
DWORD
GetFinalPathNameByHandleW
( );
#ifdef UNICODE
#define GetFinalPathNameByHandle GetFinalPathNameByHandleW
#else
#define GetFinalPathNameByHandle GetFinalPathNameByHandleA #endif // !UNICODE
#endif // (_WIN32_WINNT >= 0x0600)
BOOL
GetFileTime
( );
_Success_(return != 0 && return < nBufferLength)
DWORD
GetFullPathNameW
( );
#ifdef UNICODE
#define GetFullPathName GetFullPathNameW #endif
_Success_(return != 0 && return < nBufferLength)
DWORD
GetFullPathNameA
( );
#ifndef UNICODE
#define GetFullPathName GetFullPathNameA
#endif
DWORD
GetLogicalDrives
( );
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM) */
#pragma endregion #pragma region Desktop Family or OneCore Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM)
DWORD
GetLogicalDriveStringsW
( );
#ifdef UNICODE
#define GetLogicalDriveStrings GetLogicalDriveStringsW #endif
_Success_(return != 0 && return < cchBuffer)
DWORD
GetLongPathNameA
( );
#ifndef UNICODE
#define GetLongPathName GetLongPathNameA
#endif
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM) */
#pragma endregion #pragma region Application Family or OneCore Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM)
_Success_(return != 0 && return < cchBuffer)
DWORD
GetLongPathNameW
( );
#ifdef UNICODE
#define GetLongPathName GetLongPathNameW #endif
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM) */
#pragma endregion #pragma region Desktop Family or OneCore Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM)
_Success_(return != 0 && return < cchBuffer)
DWORD
GetShortPathNameW
( );
#ifdef UNICODE
#define GetShortPathName GetShortPathNameW #endif
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM) */
#pragma endregion #pragma region Application Family or OneCore Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM)
UINT
GetTempFileNameW
( );
#ifdef UNICODE
#define GetTempFileName GetTempFileNameW #endif
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM) */
#pragma endregion #pragma region Desktop Family or OneCore Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM)
#if (_WIN32_WINNT >= 0x0600)
BOOL
GetVolumeInformationByHandleW
( );
#endif /* _WIN32_WINNT >= 0x0600 */ #endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM) */
#pragma endregion #pragma region Application Family or OneCore Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM)
BOOL
GetVolumeInformationW
( );
#ifdef UNICODE
#define GetVolumeInformation GetVolumeInformationW #endif
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM) */
#pragma endregion #pragma region Desktop Family or OneCore Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM)
BOOL
GetVolumePathNameW
( );
#ifdef UNICODE
#define GetVolumePathName GetVolumePathNameW #endif
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM) */
#pragma endregion #pragma region Application Family or OneCore Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM)
BOOL
LocalFileTimeToFileTime
( );
BOOL
LockFile
( );
BOOL
LockFileEx
( );
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM) */
#pragma endregion #pragma region Desktop Family or OneCore Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM)
DWORD
QueryDosDeviceW
( );
#ifdef UNICODE
#define QueryDosDevice QueryDosDeviceW #endif
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM) */
#pragma endregion #pragma region Application Family or OneCore Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM)
_Must_inspect_result_
BOOL
ReadFile
( );
_Must_inspect_result_
BOOL
ReadFileEx
( );
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM) */
#pragma endregion #pragma region Desktop Family or OneCore Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM)
_Must_inspect_result_
BOOL
ReadFileScatter
( );
#endif // WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM)
#pragma endregion #pragma region Application Family or OneCore Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM)
BOOL
RemoveDirectoryA
( );
BOOL
RemoveDirectoryW
( );
#ifdef UNICODE
#define RemoveDirectory RemoveDirectoryW
#else
#define RemoveDirectory RemoveDirectoryA #endif // !UNICODE
BOOL
SetEndOfFile
( );
BOOL
SetFileAttributesA
( );
BOOL
SetFileAttributesW
( );
#ifdef UNICODE
#define SetFileAttributes SetFileAttributesW
#else
#define SetFileAttributes SetFileAttributesA #endif // !UNICODE
#if (_WIN32_WINNT >= 0x0600)
BOOL
SetFileInformationByHandle
( );
#endif
DWORD
SetFilePointer
( );
BOOL
SetFilePointerEx
( );
BOOL
SetFileTime
( );
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM) */
#pragma endregion #pragma region Desktop Family or OneCore Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM)
#if _WIN32_WINNT >= 0x0501
BOOL
SetFileValidData
( );
#endif // (_WIN32_WINNT >= 0x0501)
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM) */
#pragma endregion #pragma region Application Family or OneCore Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM)
BOOL
UnlockFile
( );
BOOL
UnlockFileEx
( );
BOOL
WriteFile
( );
BOOL
WriteFileEx
( );
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM) */
#pragma endregion #pragma region Desktop Family or OneCore Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM)
BOOL
WriteFileGather
( );
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM) */
#pragma endregion #pragma region Application Family or OneCore Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM)
DWORD
GetTempPathW
( );
#ifdef UNICODE
#define GetTempPath GetTempPathW #endif
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM) */
#pragma endregion #pragma region Desktop Family or OneCore Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM)
BOOL
GetVolumeNameForVolumeMountPointW
( );
#ifdef UNICODE
#define GetVolumeNameForVolumeMountPoint GetVolumeNameForVolumeMountPointW #endif
#if (_WIN32_WINNT >= 0x0501)
BOOL
GetVolumePathNamesForVolumeNameW
( );
#ifdef UNICODE
#define GetVolumePathNamesForVolumeName GetVolumePathNamesForVolumeNameW #endif
#endif // _WIN32_WINNT >= 0x0501
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM) */
#pragma endregion #pragma region Application Family or OneCore Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM)
#if (_WIN32_WINNT >= 0x0602)
typedef
struct
_CREATEFILE2_EXTENDED_PARAMETERS
{
DWORD
dwSize
;
DWORD
dwFileAttributes
;
DWORD
dwFileFlags
;
DWORD
dwSecurityQosFlags
;
LPSECURITY_ATTRIBUTES
lpSecurityAttributes
;
HANDLE
hTemplateFile
; }
CREATEFILE2_EXTENDED_PARAMETERS
, *
PCREATEFILE2_EXTENDED_PARAMETERS
, *
LPCREATEFILE2_EXTENDED_PARAMETERS
;
HANDLE
CreateFile2
( );
#endif // _WIN32_WINNT >= 0x0602
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM) */
#pragma endregion #pragma region Desktop Family or OneCore Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM)
#if (_WIN32_WINNT >= 0x0600)
BOOL
SetFileIoOverlappedRange
( );
#endif // _WIN32_WINNT >= 0x0600
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM) */
#pragma endregion #pragma region Desktop Family or OneCore Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM)
#if _WIN32_WINNT >= 0x0501
DWORD
GetCompressedFileSizeA
( );
DWORD
GetCompressedFileSizeW
( );
#ifdef UNICODE
#define GetCompressedFileSize GetCompressedFileSizeW
#else
#define GetCompressedFileSize GetCompressedFileSizeA #endif // !UNICODE
#endif // _WIN32_WINNT >= 0x0501
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM) */
#pragma endregion #pragma region Desktop Family or OneCore Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM)
#if (_WIN32_WINNT >= 0x0501)
typedef
enum
_STREAM_INFO_LEVELS
{
FindStreamInfoStandard
,
FindStreamInfoMaxInfoLevel
}
STREAM_INFO_LEVELS
;
typedef
struct
_WIN32_FIND_STREAM_DATA
{
LARGE_INTEGER
StreamSize
; }
WIN32_FIND_STREAM_DATA
, *
PWIN32_FIND_STREAM_DATA
;
HANDLE
FindFirstStreamW
( );
BOOL
FindNextStreamW
( );
#endif // (_WIN32_WINNT >= 0x0501)
BOOL
AreFileApisANSI
( );
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM) */
#pragma endregion #pragma region Application Family or OneCore Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM)
DWORD
GetTempPathA
( );
#ifndef UNICODE
#define GetTempPath GetTempPathA
#endif
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM) */
#pragma endregion #pragma region Desktop Family or OneCore Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM)
#if _WIN32_WINNT >= 0x0600
HANDLE
FindFirstFileNameW
( );
BOOL
FindNextFileNameW
( );
#endif // (_WIN32_WINNT >= 0x0600)
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM) */
#pragma endregion #pragma region Application Family or OneCore Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM)
BOOL
GetVolumeInformationA
( );
#ifndef UNICODE
#define GetVolumeInformation GetVolumeInformationA
#endif
UINT
GetTempFileNameA
( );
#ifndef UNICODE
#define GetTempFileName GetTempFileNameA
#endif #endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM) */
#pragma endregion #pragma region Desktop Family or OneCore Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM)
SetFileApisToOEM
( );
SetFileApisToANSI
( );
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM) */
#pragma endregion
#ifdef __cplusplus
}
#endif
#endif // _APISETFILE_