Changeset 3593 for trunk/src/kernel32/disk.cpp
- Timestamp:
- May 23, 2000, 8:45:13 PM (25 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/kernel32/disk.cpp
r3577 r3593 1 /* $Id: disk.cpp,v 1.1 1 2000-05-20 13:30:27sandervl Exp $ */1 /* $Id: disk.cpp,v 1.12 2000-05-23 18:45:12 sandervl Exp $ */ 2 2 3 3 /* … … 20 20 #include <string.h> 21 21 #include "unicode.h" 22 #include "oslibdos.h" 22 23 23 24 #define DBG_LOCALLOG DBG_disk … … 220 221 DWORD, nFileSystemNameSize) 221 222 { 223 CHAR tmpstring[256]; 224 ULONG drive; 225 BOOL rc; 226 222 227 dprintf(("GetVolumeInformationA %s", lpRootPathName)); 223 return O32_GetVolumeInformation(lpRootPathName, 224 lpVolumeNameBuffer, 225 nVolumeNameSize, 226 lpVolumeSerialNumber, 227 lpMaximumComponentLength, 228 lpFileSystemFlags, 229 lpFileSystemNameBuffer, 230 nFileSystemNameSize); 231 } 232 //****************************************************************************** 233 //****************************************************************************** 234 228 229 if(lpRootPathName == NULL) { 230 GetCurrentDirectoryA(sizeof(tmpstring), tmpstring); 231 lpRootPathName = tmpstring; 232 } 233 234 if('A' <= *lpRootPathName && *lpRootPathName <= 'Z') { 235 drive = *lpRootPathName - 'A' + 1; 236 } 237 else 238 if('a' <= *lpRootPathName && *lpRootPathName <= 'z') { 239 drive = *lpRootPathName - 'a' + 1; 240 } 241 else { 242 SetLastError(ERROR_INVALID_PARAMETER); 243 return FALSE; 244 } 245 246 if(lpVolumeSerialNumber || lpVolumeNameBuffer) { 247 rc = OSLibDosQueryVolumeSerialAndName(drive, lpVolumeSerialNumber, lpVolumeNameBuffer, nVolumeNameSize); 248 } 249 if(lpFileSystemNameBuffer || lpMaximumComponentLength) { 250 if(!lpFileSystemNameBuffer) { 251 lpFileSystemNameBuffer = tmpstring; 252 } 253 rc = OSLibDosQueryVolumeFS(drive, lpFileSystemNameBuffer, nFileSystemNameSize); 254 } 255 if(lpMaximumComponentLength) { 256 if(!strcmp(lpFileSystemNameBuffer, "FAT")) { 257 *lpMaximumComponentLength = 11; 258 } 259 else *lpMaximumComponentLength = 255; //TODO: Always correct? (CDFS?) 260 } 261 if(lpFileSystemFlags) { 262 if(strcmp(lpFileSystemNameBuffer, "FAT")) { 263 *lpFileSystemFlags = FS_CASE_IS_PRESERVED; 264 } 265 else 266 if(!strcmp(lpFileSystemNameBuffer, "CDFS")) { 267 *lpFileSystemFlags = FS_CASE_SENSITIVE; //NT4 returns this 268 } 269 else 270 if(!strcmp(lpFileSystemNameBuffer, "UDF")) {//TODO: correct? 271 *lpFileSystemFlags = FS_CASE_SENSITIVE | FS_UNICODE_STORED_ON_DISK; 272 } 273 else *lpFileSystemFlags = 0; 274 } 275 276 if(rc) { 277 SetLastError(rc); 278 return FALSE; 279 } 280 return TRUE; 281 } 282 //****************************************************************************** 283 //****************************************************************************** 235 284 ODINFUNCTION8(BOOL, GetVolumeInformationW, 236 285 LPCWSTR, lpRootPathName, … … 261 310 asciiroot = NULL; 262 311 263 // @@@PH switch to ODIN_ 264 rc = GetVolumeInformationA(asciiroot, 312 rc = ODIN_GetVolumeInformationA(asciiroot, 265 313 asciivol, 266 314 nVolumeNameSize,
Note:
See TracChangeset
for help on using the changeset viewer.