From: Conor McCarthy cmccarthy@codeweavers.com
--- dlls/kernel32/kernel32.spec | 1 + dlls/kernel32/tests/volume.c | 2 +- dlls/kernelbase/kernelbase.spec | 1 + dlls/kernelbase/volume.c | 12 ++++++++++++ include/winbase.h | 2 ++ 5 files changed, 17 insertions(+), 1 deletion(-)
diff --git a/dlls/kernel32/kernel32.spec b/dlls/kernel32/kernel32.spec index 70b23720095..375b5b470c6 100644 --- a/dlls/kernel32/kernel32.spec +++ b/dlls/kernel32/kernel32.spec @@ -659,6 +659,7 @@ @ stdcall -import GetDiskFreeSpaceExA (str ptr ptr ptr) @ stdcall -import GetDiskFreeSpaceExW (wstr ptr ptr ptr) @ stdcall -import GetDiskFreeSpaceW(wstr ptr ptr ptr ptr) +@ stdcall -import GetDiskSpaceInformationA(str ptr) @ stdcall -import GetDiskSpaceInformationW(wstr ptr) @ stdcall GetDllDirectoryA(long ptr) @ stdcall GetDllDirectoryW(long ptr) diff --git a/dlls/kernel32/tests/volume.c b/dlls/kernel32/tests/volume.c index 0819a50b2c0..a227c4251d5 100644 --- a/dlls/kernel32/tests/volume.c +++ b/dlls/kernel32/tests/volume.c @@ -1796,7 +1796,7 @@ static void test_GetDiskSpaceInformationA(void) /* GetDiskSpaceInformation() is supported on Windows 10 build 1809 and later */ if (!pGetDiskSpaceInformationA) { - skip("GetDiskSpaceInformationA is not present.\n"); + win_skip("GetDiskSpaceInformationA is not present.\n"); return; }
diff --git a/dlls/kernelbase/kernelbase.spec b/dlls/kernelbase/kernelbase.spec index 3e9982762a4..f0a041d1de6 100644 --- a/dlls/kernelbase/kernelbase.spec +++ b/dlls/kernelbase/kernelbase.spec @@ -514,6 +514,7 @@ @ stdcall GetDiskFreeSpaceExA(str ptr ptr ptr) @ stdcall GetDiskFreeSpaceExW(wstr ptr ptr ptr) @ stdcall GetDiskFreeSpaceW(wstr ptr ptr ptr ptr) +@ stdcall GetDiskSpaceInformationA(str ptr) @ stdcall GetDiskSpaceInformationW(wstr ptr) @ stdcall GetDriveTypeA(str) @ stdcall GetDriveTypeW(wstr) diff --git a/dlls/kernelbase/volume.c b/dlls/kernelbase/volume.c index 38205fa57cf..1d22e1c3afb 100644 --- a/dlls/kernelbase/volume.c +++ b/dlls/kernelbase/volume.c @@ -761,6 +761,18 @@ HRESULT WINAPI DECLSPEC_HOTPATCH GetDiskSpaceInformationW( LPCWSTR root, DISK_SP }
+/*********************************************************************** + * GetDiskSpaceInformationA (kernelbase.@) + */ +HRESULT WINAPI DECLSPEC_HOTPATCH GetDiskSpaceInformationA( LPCSTR root, DISK_SPACE_INFORMATION *info ) +{ + WCHAR *rootW = NULL; + + if (root && !(rootW = file_name_AtoW( root, FALSE ))) return FALSE; + return GetDiskSpaceInformationW( rootW, info ); +} + + static BOOL is_dos_path( const UNICODE_STRING *path ) { static const WCHAR global_prefix[4] = {'\','?','?','\'}; diff --git a/include/winbase.h b/include/winbase.h index 7361e6dc697..0d04fa09af0 100644 --- a/include/winbase.h +++ b/include/winbase.h @@ -2201,7 +2201,9 @@ WINBASEAPI BOOL WINAPI GetDiskFreeSpaceW(LPCWSTR,LPDWORD,LPDWORD,LPDWORD, WINBASEAPI BOOL WINAPI GetDiskFreeSpaceExA(LPCSTR,PULARGE_INTEGER,PULARGE_INTEGER,PULARGE_INTEGER); WINBASEAPI BOOL WINAPI GetDiskFreeSpaceExW(LPCWSTR,PULARGE_INTEGER,PULARGE_INTEGER,PULARGE_INTEGER); #define GetDiskFreeSpaceEx WINELIB_NAME_AW(GetDiskFreeSpaceEx) +WINBASEAPI HRESULT WINAPI GetDiskSpaceInformationA(LPCSTR,DISK_SPACE_INFORMATION*); WINBASEAPI HRESULT WINAPI GetDiskSpaceInformationW(LPCWSTR,DISK_SPACE_INFORMATION*); +#define GetDiskSpaceInformation WINELIB_NAME_AW(GetDiskSpaceInformation) WINBASEAPI DWORD WINAPI GetDllDirectoryA(DWORD,LPSTR); WINBASEAPI DWORD WINAPI GetDllDirectoryW(DWORD,LPWSTR); #define GetDllDirectory WINELIB_NAME_AW(GetDllDirectory)