/*
* @implemented
*/
-/* Synced to Wine-? */
+/* Synced to Wine-2008/12/28 */
DWORD WINAPI
GetLogicalDriveStringsA(DWORD nBufferLength,
LPSTR lpBuffer)
}
- if (count * 4 <= nBufferLength)
- {
+ if ((count * 4) + 1 > nBufferLength) return ((count * 4) + 1);
+
LPSTR p = lpBuffer;
for (drive = 0; drive < MAX_DOS_DRIVES; drive++)
*p++ = '\0';
}
*p = '\0';
- }
+
return (count * 4);
}
/*
* @implemented
*/
-/* Synced to Wine-? */
+/* Synced to Wine-2008/12/28 */
DWORD WINAPI
GetLogicalDriveStringsW(DWORD nBufferLength,
LPWSTR lpBuffer)
count++;
}
- if (count * 4 <= nBufferLength)
- {
- LPWSTR p = lpBuffer;
- for (drive = 0; drive < MAX_DOS_DRIVES; drive++)
- if (dwDriveMap & (1<<drive))
- {
- *p++ = (WCHAR)('A' + drive);
- *p++ = (WCHAR)':';
- *p++ = (WCHAR)'\\';
- *p++ = (WCHAR)'\0';
- }
- *p = (WCHAR)'\0';
- }
+ if ((count * 4) + 1 > nBufferLength) return ((count * 4) + 1);
+
+ LPWSTR p = lpBuffer;
+ for (drive = 0; drive < MAX_DOS_DRIVES; drive++)
+ if (dwDriveMap & (1<<drive))
+ {
+ *p++ = (WCHAR)('A' + drive);
+ *p++ = (WCHAR)':';
+ *p++ = (WCHAR)'\\';
+ *p++ = (WCHAR)'\0';
+ }
+ *p = (WCHAR)'\0';
+
return (count * 4);
}
BOOL Result;
NTSTATUS Status;
+ if (!VolumeMountPoint || !VolumeMountPoint[0])
+ {
+ SetLastError(ERROR_PATH_NOT_FOUND);
+ return FALSE;
+ }
+
/*
* First step is to convert the passed volume mount point name to
* an NT acceptable name.