summaryrefslogtreecommitdiff
path: root/boost/detail/winapi/file_management.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'boost/detail/winapi/file_management.hpp')
-rw-r--r--boost/detail/winapi/file_management.hpp24
1 files changed, 24 insertions, 0 deletions
diff --git a/boost/detail/winapi/file_management.hpp b/boost/detail/winapi/file_management.hpp
index 4c28bec5b6..80567bd477 100644
--- a/boost/detail/winapi/file_management.hpp
+++ b/boost/detail/winapi/file_management.hpp
@@ -157,6 +157,12 @@ SetFilePointer(
boost::detail::winapi::LONG_ lpDistanceToMove,
boost::detail::winapi::PLONG_ lpDistanceToMoveHigh,
boost::detail::winapi::DWORD_ dwMoveMethod);
+
+struct _BY_HANDLE_FILE_INFORMATION;
+BOOST_SYMBOL_IMPORT boost::detail::winapi::BOOL_ WINAPI
+GetFileInformationByHandle(
+ boost::detail::winapi::HANDLE_ hFile,
+ ::_BY_HANDLE_FILE_INFORMATION* lpFileInformation);
}
#endif
@@ -358,6 +364,19 @@ typedef struct BOOST_DETAIL_WINAPI_MAY_ALIAS _WIN32_FIND_DATAW {
#endif
} WIN32_FIND_DATAW_, *PWIN32_FIND_DATAW_, *LPWIN32_FIND_DATAW_;
+typedef struct BOOST_DETAIL_WINAPI_MAY_ALIAS _BY_HANDLE_FILE_INFORMATION {
+ DWORD_ dwFileAttributes;
+ FILETIME_ ftCreationTime;
+ FILETIME_ ftLastAccessTime;
+ FILETIME_ ftLastWriteTime;
+ DWORD_ dwVolumeSerialNumber;
+ DWORD_ nFileSizeHigh;
+ DWORD_ nFileSizeLow;
+ DWORD_ nNumberOfLinks;
+ DWORD_ nFileIndexHigh;
+ DWORD_ nFileIndexLow;
+} BY_HANDLE_FILE_INFORMATION_, *PBY_HANDLE_FILE_INFORMATION_, *LPBY_HANDLE_FILE_INFORMATION_;
+
BOOST_FORCEINLINE HANDLE_ FindFirstFileW(LPCWSTR_ lpFileName, WIN32_FIND_DATAW_* lpFindFileData)
{
return ::FindFirstFileW(lpFileName, reinterpret_cast< ::_WIN32_FIND_DATAW* >(lpFindFileData));
@@ -504,6 +523,11 @@ BOOST_FORCEINLINE DWORD_ get_file_attributes(LPCWSTR_ lpFileName)
return ::GetFileAttributesW(lpFileName);
}
+BOOST_FORCEINLINE BOOL_ GetFileInformationByHandle(HANDLE_ h, BY_HANDLE_FILE_INFORMATION_* info)
+{
+ return ::GetFileInformationByHandle(h, reinterpret_cast< ::_BY_HANDLE_FILE_INFORMATION* >(info));
+}
+
}
}
}