Geoff Chappell, Software Analyst
API-MS-Win-Core-File-L1-1-0
All the many functions in the API-MS-Win-Core-File-L1-1-0 set are documented
exports from KERNEL32:
- CompareFileTime
- CreateDirectoryA
- CreateDirectoryW
- CreateFileA
- CreateFileW
- DefineDosDeviceW
- DeleteFileA
- DeleteFileW
- DeleteVolumeMountPointW
- FileTimeToLocalFileTime
- FileTimeToSystemTime
- FindClose
- FindCloseChangeNotification
- FindFirstChangeNotificationA
- FindFirstChangeNotificationW
- FindFirstFileA
- FindFirstFileW
- FindFirstFileExA
- FindFirstFileExW
- FindFirstVolumeW
- FindNextChangeNotification
- FindNextFileA
- FindNextFileW
- FindNextVolumeW
- FindVolumeClose
- FlushFileBuffers
- GetDiskFreeSpaceA
- GetDiskFreeSpaceW
- GetDiskFreeSpaceExA
- GetDiskFreeSpaceExW
- GetDriveTypeA
- GetDriveTypeW
- GetFileAttributesA
- GetFileAttributesW
- GetFileAttributesExA
- GetFileAttributesExW
- GetFileInformationByHandle
- GetFileSize
- GetFileSizeEx
- GetFileTime
- GetFileType
- GetFinalPathNameByHandleA
- GetFinalPathNameByHandleW
- GetFullPathNameA
- GetFullPathNameW
- GetLogicalDrives
- GetLogicalDriveStringsW
- GetLongPathNameA
- GetLongPathNameW
- GetShortPathNameW
- GetTempFileNameW
- GetVolumeInformationW
- GetVolumeInformationByHandleW
- GetVolumePathNameW
- LocalFileTimeToFileTime
- LockFile
- LockFileEx
- QueryDosDeviceW
- ReadFile
- ReadFileEx
- ReadFileScatter
- RemoveDirectoryA
- RemoveDirectoryW
- SetEndOfFile
- SetFileAttributesA
- SetFileAttributesW
- SetFileInformationByHandle
- SetFilePointer
- SetFilePointerEx
- SetFileTime
- SetFileValidData
- UnlockFile
- UnlockFileEx
- WriteFile
- WriteFileEx
- WriteFileGather
For most of these functions, the implementations in KERNEL32 version 6.1 and
higher are just stubs which transfer the handling to wherever the schema redirects
the API Set. The exceptions are:
- CreateFileW,
- FlushFileBuffers,
- GetFileType,
- ReadFile,
- WriteFile,
which are also transferred to the API Set but with varying amounts of pre- or post-processing;
- CreateFileA, for which KERNEL32 performs
ANSI to Unicode conversion around CreateFileW;
and
- DeleteVolumeMountPointW,
- FindFirstVolumeW,
- FindNextVolumeW,
- FindVolumeClose,
- GetLogicalDrives,
- GetLongPathNameA,
- GetLongPathNameW,
- GetShortPathNameW,
- GetVolumePathNameW,
which all retain substantial code in KERNEL32 (and are not transferred to the
API Set).
New Locations
Non-trivial implementations of all functions in this API Set are exported from
KERNELBASE version 6.1 and higher, even if very nearly duplicating a substantial
implementation that persists in KERNEL32.
Schema Redirection
The Windows 7 schema redirects this API Set to KERNEL32, except that when KERNEL32
itself imports from the API Set, the redirection is to KERNELBASE. Thus:
- high-level executables, which do not use the API Set, continue to import these
functions from KERNEL32;
- low-level executables have their imports from the API Set redirected to KERNEL32;
- stub implementations in KERNEL32 import from underlying implementations in
KERNELBASE.