[KERNEL32]
[reactos.git] / reactos / dll / win32 / kernel32 / client / file / volume.c
index dedfb1c..1a2af5e 100644 (file)
@@ -253,7 +253,7 @@ GetVolumeInformationW(IN LPCWSTR lpRootPathName,
       return FALSE;
     }
 
-  TRACE("hFile: %x\n", hFile);
+  TRACE("hFile: %p\n", hFile);
   errCode = NtQueryVolumeInformationFile(hFile,
                                          &IoStatusBlock,
                                          FileFsVolume,
@@ -426,6 +426,7 @@ FindFirstVolumeW(IN LPWSTR volume,
                  IN DWORD len)
 {
     DWORD size = 1024;
+    DWORD br;
     HANDLE mgr = CreateFileW( MOUNTMGR_DOS_DEVICE_NAME, 0, FILE_SHARE_READ|FILE_SHARE_WRITE,
                               NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, INVALID_HANDLE_VALUE );
     if (mgr == INVALID_HANDLE_VALUE) return INVALID_HANDLE_VALUE;
@@ -443,7 +444,7 @@ FindFirstVolumeW(IN LPWSTR volume,
         memset( &input, 0, sizeof(input) );
 
         if (!DeviceIoControl( mgr, IOCTL_MOUNTMGR_QUERY_POINTS, &input, sizeof(input),
-                              output, size, NULL, NULL ))
+                              output, size, &br, NULL ))
         {
             if (GetLastError() != ERROR_MORE_DATA) break;
             size = output->Size;
@@ -552,6 +553,12 @@ GetVolumePathNameW(IN LPCWSTR lpszFileName,
     DWORD ErrorCode;
     BOOL Result = FALSE;
 
+    if (!lpszFileName || !lpszVolumePathName || !cchBufferLength)
+    {
+        SetLastError(ERROR_INVALID_PARAMETER);
+        return FALSE;
+    }
+    
     if (!(PathLength = GetFullPathNameW(lpszFileName, 0, NULL, NULL)))
     {
         return Result;
@@ -668,7 +675,7 @@ FindNextVolumeA(IN HANDLE handle,
         if (!WideCharToMultiByte( CP_ACP, 0, buffer, -1, volume, len, NULL, NULL )) ret = FALSE;
     }
 
-    HeapFree( GetProcessHeap(), 0, buffer );
+    RtlFreeHeap(RtlGetProcessHeap(), 0, buffer);
     return ret;
 }