From ad6c781eb2f27e158e973e55aced6b01f320c542 Mon Sep 17 00:00:00 2001 From: Austin English Date: Wed, 6 Apr 2016 17:34:40 -0500 Subject: [PATCH] kernel32: Add GetVolumeInformationByHandleW stub. Signed-off-by: Austin English Signed-off-by: Andrew Eikum Signed-off-by: Alexandre Julliard --- .../api-ms-win-core-file-l1-1-0.spec | 2 +- .../api-ms-win-core-file-l1-2-0.spec | 2 +- .../api-ms-win-core-file-l1-2-1.spec | 2 +- dlls/kernel32/kernel32.spec | 2 +- dlls/kernel32/volume.c | 22 +++++++++++++++++++ dlls/kernelbase/kernelbase.spec | 2 +- include/winbase.h | 1 + 7 files changed, 28 insertions(+), 5 deletions(-) diff --git a/dlls/api-ms-win-core-file-l1-1-0/api-ms-win-core-file-l1-1-0.spec b/dlls/api-ms-win-core-file-l1-1-0/api-ms-win-core-file-l1-1-0.spec index 61e8038083e..612e491f890 100644 --- a/dlls/api-ms-win-core-file-l1-1-0/api-ms-win-core-file-l1-1-0.spec +++ b/dlls/api-ms-win-core-file-l1-1-0/api-ms-win-core-file-l1-1-0.spec @@ -49,7 +49,7 @@ @ stdcall GetLongPathNameW(wstr long long) kernel32.GetLongPathNameW @ stdcall GetShortPathNameW(wstr ptr long) kernel32.GetShortPathNameW @ stdcall GetTempFileNameW(wstr wstr long ptr) kernel32.GetTempFileNameW -@ stub GetVolumeInformationByHandleW +@ stdcall GetVolumeInformationByHandleW(ptr ptr long ptr ptr ptr ptr long) kernel32.GetVolumeInformationByHandleW @ stdcall GetVolumeInformationW(wstr ptr long ptr ptr ptr ptr long) kernel32.GetVolumeInformationW @ stdcall GetVolumePathNameW(wstr ptr long) kernel32.GetVolumePathNameW @ stdcall LocalFileTimeToFileTime(ptr ptr) kernel32.LocalFileTimeToFileTime diff --git a/dlls/api-ms-win-core-file-l1-2-0/api-ms-win-core-file-l1-2-0.spec b/dlls/api-ms-win-core-file-l1-2-0/api-ms-win-core-file-l1-2-0.spec index cddf1129f43..1aba68d18be 100644 --- a/dlls/api-ms-win-core-file-l1-2-0/api-ms-win-core-file-l1-2-0.spec +++ b/dlls/api-ms-win-core-file-l1-2-0/api-ms-win-core-file-l1-2-0.spec @@ -50,7 +50,7 @@ @ stdcall GetShortPathNameW(wstr ptr long) kernel32.GetShortPathNameW @ stdcall GetTempFileNameW(wstr wstr long ptr) kernel32.GetTempFileNameW @ stdcall GetTempPathW(long ptr) kernel32.GetTempPathW -@ stub GetVolumeInformationByHandleW +@ stdcall GetVolumeInformationByHandleW(ptr ptr long ptr ptr ptr ptr long) kernel32.GetVolumeInformationByHandleW @ stdcall GetVolumeInformationW(wstr ptr long ptr ptr ptr ptr long) kernel32.GetVolumeInformationW @ stdcall GetVolumeNameForVolumeMountPointW(wstr ptr long) kernel32.GetVolumeNameForVolumeMountPointW @ stdcall GetVolumePathNameW(wstr ptr long) kernel32.GetVolumePathNameW diff --git a/dlls/api-ms-win-core-file-l1-2-1/api-ms-win-core-file-l1-2-1.spec b/dlls/api-ms-win-core-file-l1-2-1/api-ms-win-core-file-l1-2-1.spec index a9acd8deb47..5bf5cb3b55e 100644 --- a/dlls/api-ms-win-core-file-l1-2-1/api-ms-win-core-file-l1-2-1.spec +++ b/dlls/api-ms-win-core-file-l1-2-1/api-ms-win-core-file-l1-2-1.spec @@ -52,7 +52,7 @@ @ stdcall GetShortPathNameW(wstr ptr long) kernel32.GetShortPathNameW @ stdcall GetTempFileNameW(wstr wstr long ptr) kernel32.GetTempFileNameW @ stdcall GetTempPathW(long ptr) kernel32.GetTempPathW -@ stub GetVolumeInformationByHandleW +@ stdcall GetVolumeInformationByHandleW(ptr ptr long ptr ptr ptr ptr long) kernel32.GetVolumeInformationByHandleW @ stdcall GetVolumeInformationW(wstr ptr long ptr ptr ptr ptr long) kernel32.GetVolumeInformationW @ stdcall GetVolumeNameForVolumeMountPointW(wstr ptr long) kernel32.GetVolumeNameForVolumeMountPointW @ stdcall GetVolumePathNameW(wstr ptr long) kernel32.GetVolumePathNameW diff --git a/dlls/kernel32/kernel32.spec b/dlls/kernel32/kernel32.spec index a144fd173f2..31ce4565b9e 100644 --- a/dlls/kernel32/kernel32.spec +++ b/dlls/kernel32/kernel32.spec @@ -877,7 +877,7 @@ @ stdcall GetVersionExA(ptr) @ stdcall GetVersionExW(ptr) @ stdcall GetVolumeInformationA(str ptr long ptr ptr ptr ptr long) -# @ stub GetVolumeInformationByHandleW +@ stdcall GetVolumeInformationByHandleW(ptr ptr long ptr ptr ptr ptr long) @ stdcall GetVolumeInformationW(wstr ptr long ptr ptr ptr ptr long) @ stdcall GetVolumeNameForVolumeMountPointA(str ptr long) @ stdcall GetVolumeNameForVolumeMountPointW(wstr ptr long) diff --git a/dlls/kernel32/volume.c b/dlls/kernel32/volume.c index 68cc762b519..92bcf53777b 100644 --- a/dlls/kernel32/volume.c +++ b/dlls/kernel32/volume.c @@ -2309,3 +2309,25 @@ BOOL WINAPI SetVolumeMountPointW(LPCWSTR path, LPCWSTR volume) SetLastError(ERROR_CALL_NOT_IMPLEMENTED); return FALSE; } + +/*********************************************************************** + * GetVolumeInformationByHandleW (KERNEL32.@) + */ +BOOL WINAPI GetVolumeInformationByHandleW(HANDLE handle, WCHAR *volnamebuf, DWORD volnamesize, DWORD *volserial, DWORD *maxlength, DWORD *flags, WCHAR *fsnamebuf, DWORD fsnamesize) +{ + FIXME("%p %p %d %p %p %p %p %d\n", handle, volnamebuf, volnamesize, volserial, maxlength, flags, fsnamebuf, fsnamesize); + + if(volnamebuf && volnamesize) + *volnamebuf = 0; + if(volserial) + *volserial = 0; + if(maxlength) + *maxlength = 0; + if(flags) + *flags = 0; + if(fsnamebuf && fsnamesize) + *fsnamebuf = 0; + + SetLastError(ERROR_CALL_NOT_IMPLEMENTED); + return FALSE; +} diff --git a/dlls/kernelbase/kernelbase.spec b/dlls/kernelbase/kernelbase.spec index 064f7923e26..95ce6c1ee35 100644 --- a/dlls/kernelbase/kernelbase.spec +++ b/dlls/kernelbase/kernelbase.spec @@ -337,7 +337,7 @@ @ stdcall GetVersion() kernel32.GetVersion @ stdcall GetVersionExA(ptr) kernel32.GetVersionExA @ stdcall GetVersionExW(ptr) kernel32.GetVersionExW -@ stub GetVolumeInformationByHandleW +@ stdcall GetVolumeInformationByHandleW(ptr ptr long ptr ptr ptr ptr long) kernel32.GetVolumeInformationByHandleW @ stdcall GetVolumeInformationW(wstr ptr long ptr ptr ptr ptr long) kernel32.GetVolumeInformationW @ stdcall GetVolumePathNameW(wstr ptr long) kernel32.GetVolumePathNameW @ stdcall GetWindowsAccountDomainSid(ptr ptr ptr) advapi32.GetWindowsAccountDomainSid diff --git a/include/winbase.h b/include/winbase.h index 2345443b659..894156c0f75 100644 --- a/include/winbase.h +++ b/include/winbase.h @@ -2217,6 +2217,7 @@ WINBASEAPI BOOL WINAPI GetVersionExW(OSVERSIONINFOW*); WINBASEAPI BOOL WINAPI GetVolumeInformationA(LPCSTR,LPSTR,DWORD,LPDWORD,LPDWORD,LPDWORD,LPSTR,DWORD); WINBASEAPI BOOL WINAPI GetVolumeInformationW(LPCWSTR,LPWSTR,DWORD,LPDWORD,LPDWORD,LPDWORD,LPWSTR,DWORD); #define GetVolumeInformation WINELIB_NAME_AW(GetVolumeInformation) +WINBASEAPI BOOL WINAPI GetVolumeInformationByHandleW(HANDLE,WCHAR *,DWORD,DWORD *,DWORD *,DWORD *,WCHAR *,DWORD); WINBASEAPI BOOL WINAPI GetVolumeNameForVolumeMountPointA(LPCSTR,LPSTR,DWORD); WINBASEAPI BOOL WINAPI GetVolumeNameForVolumeMountPointW(LPCWSTR,LPWSTR,DWORD); #define GetVolumeNameForVolumeMountPoint WINELIB_NAME_AW(GetVolumeNameForVolumeMountPoint)