[PATCH] ntdll/tests: GetVolumePathnameW not present before w2k

Detlef Riekenberg wine.dev at web.de
Thu Nov 12 16:42:53 CST 2009


---
 dlls/ntdll/tests/file.c |   13 ++++++++++++-
 1 files changed, 12 insertions(+), 1 deletions(-)

diff --git a/dlls/ntdll/tests/file.c b/dlls/ntdll/tests/file.c
index ba6b07e..06e35b4 100644
--- a/dlls/ntdll/tests/file.c
+++ b/dlls/ntdll/tests/file.c
@@ -40,6 +40,8 @@
 #define IO_COMPLETION_ALL_ACCESS 0x001F0003
 #endif
 
+static BOOL     (WINAPI * pGetVolumePathNameW)(LPCWSTR, LPWSTR, DWORD);
+
 static NTSTATUS (WINAPI *pRtlFreeUnicodeString)( PUNICODE_STRING );
 static VOID     (WINAPI *pRtlInitUnicodeString)( PUNICODE_STRING, LPCWSTR );
 static BOOL     (WINAPI *pRtlDosPathNameToNtPathName_U)( LPCWSTR, PUNICODE_STRING, PWSTR*, CURDIR* );
@@ -950,6 +952,12 @@ static void test_file_name_information(void)
     HANDLE h;
     UINT len;
 
+    /* GetVolumePathName is not present before w2k */
+    if (!pGetVolumePathNameW) {
+        win_skip("GetVolumePathNameW not found\n");
+        return;
+    }
+
     file_name_size = GetSystemDirectoryW( NULL, 0 );
     file_name = HeapAlloc( GetProcessHeap(), 0, file_name_size * sizeof(*file_name) );
     volume_prefix = HeapAlloc( GetProcessHeap(), 0, file_name_size * sizeof(*volume_prefix) );
@@ -960,7 +968,7 @@ static void test_file_name_information(void)
             "GetSystemDirectoryW returned %u, expected %u.\n",
             len, file_name_size - 1);
 
-    len = GetVolumePathNameW( file_name, volume_prefix, file_name_size );
+    len = pGetVolumePathNameW( file_name, volume_prefix, file_name_size );
     ok(len, "GetVolumePathNameW failed.\n");
 
     len = lstrlenW( volume_prefix );
@@ -1018,6 +1026,7 @@ static void test_file_name_information(void)
 
 START_TEST(file)
 {
+    HMODULE hkernel32 = GetModuleHandleA("kernel32.dll");
     HMODULE hntdll = GetModuleHandleA("ntdll.dll");
     if (!hntdll)
     {
@@ -1025,6 +1034,8 @@ START_TEST(file)
         return;
     }
 
+    pGetVolumePathNameW = (void *)GetProcAddress(hkernel32, "GetVolumePathNameW");
+
     pRtlFreeUnicodeString   = (void *)GetProcAddress(hntdll, "RtlFreeUnicodeString");
     pRtlInitUnicodeString   = (void *)GetProcAddress(hntdll, "RtlInitUnicodeString");
     pRtlDosPathNameToNtPathName_U = (void *)GetProcAddress(hntdll, "RtlDosPathNameToNtPathName_U");
-- 
1.5.4.3


--=-PlUdcELmg9WUjsyN6kUT--




More information about the wine-patches mailing list