- Timestamp:
- May 23, 2000, 8:45:13 PM (25 years ago)
- Location:
- trunk/src/kernel32
- Files:
-
- 5 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, -
trunk/src/kernel32/hmopen32.cpp
r3588 r3593 1 /* $Id: hmopen32.cpp,v 1.2 2 2000-05-22 19:07:56sandervl Exp $ */1 /* $Id: hmopen32.cpp,v 1.23 2000-05-23 18:45:12 sandervl Exp $ */ 2 2 3 3 /* … … 786 786 pHMHandleData->hHMHandle = hFile; 787 787 788 ::GetFileTime(hFile,789 790 791 788 GetFileTime(pHMHandleData, 789 NULL, 790 NULL, 791 &filetime ); 792 792 FileTimeToDosDateTime(&filetime, 793 793 &filedatetime[0], -
trunk/src/kernel32/lang.cpp
r3588 r3593 1 /* $Id: lang.cpp,v 1.2 0 2000-05-22 19:07:57sandervl Exp $ */1 /* $Id: lang.cpp,v 1.21 2000-05-23 18:45:12 sandervl Exp $ */ 2 2 /* 3 3 * Win32 language API functions for OS/2 … … 154 154 LANGID WIN32API GetUserDefaultLangID() 155 155 { 156 dprintf (("KERNEL32: OS2GetUserDefaultLangID, returns %x", GetLanguageId()));156 dprintf2(("KERNEL32: GetUserDefaultLangID, returns %x", GetLanguageId())); 157 157 return(GetLanguageId()); 158 158 } … … 161 161 LANGID WIN32API GetSystemDefaultLangID(void) 162 162 { 163 dprintf (("KERNEL32: OS2GetSystemDefaultLangID returns %x", MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US)));163 dprintf2(("KERNEL32: GetSystemDefaultLangID returns %x", MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US))); 164 164 return(MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US)); 165 165 } -
trunk/src/kernel32/oslibdos.cpp
r3588 r3593 1 /* $Id: oslibdos.cpp,v 1.2 7 2000-05-22 19:07:58sandervl Exp $ */1 /* $Id: oslibdos.cpp,v 1.28 2000-05-23 18:45:12 sandervl Exp $ */ 2 2 /* 3 3 * Wrappers for OS/2 Dos* API … … 15 15 #define INCL_DOSMEMMGR 16 16 #define INCL_DOSPROCESS 17 #define INCL_DOSFILEMGR 17 18 #define INCL_DOSERRORS 18 19 #define INCL_NPIPES … … 1217 1218 return TRUE; 1218 1219 } 1220 //****************************************************************************** 1221 #define FSATTACH_SIZE 256 1222 //****************************************************************************** 1223 DWORD OSLibDosQueryVolumeFS(int drive, LPSTR lpFileSystemNameBuffer, DWORD nFileSystemNameSize) 1224 { 1225 PFSQBUFFER2 fsinfo = (PFSQBUFFER2) alloca(FSATTACH_SIZE); 1226 ULONG cb = FSATTACH_SIZE; 1227 char drv[3] = "A:"; 1228 char *fsname; 1229 APIRET rc; 1230 1231 if(lpFileSystemNameBuffer == NULL) { 1232 DebugInt3(); 1233 return ERROR_INVALID_PARAMETER_W; 1234 } 1235 drv[0] = (char)('A' + drive - 1); 1236 1237 DosError(FERR_DISABLEHARDERR); 1238 rc = DosQueryFSAttach(drv, 1, FSAIL_QUERYNAME, fsinfo, &cb); 1239 DosError(FERR_ENABLEHARDERR); 1240 1241 switch(rc) { 1242 case ERROR_INVALID_DRIVE: 1243 return ERROR_INVALID_DRIVE_W; 1244 case ERROR_NO_VOLUME_LABEL: 1245 return ERROR_NO_VOLUME_LABEL_W; 1246 case NO_ERROR: 1247 break; 1248 default: 1249 return ERROR_NOT_ENOUGH_MEMORY; //whatever 1250 } 1251 1252 fsname = (char *)&fsinfo->szName[0] + fsinfo->cbName + 1; 1253 if(strlen(fsname) < nFileSystemNameSize) { 1254 strcpy(lpFileSystemNameBuffer, fsname); 1255 } 1256 else return ERROR_BUFFER_OVERFLOW_W; 1257 return 0; 1258 } 1259 //****************************************************************************** 1260 typedef struct _FSINFOBUF 1261 { 1262 ULONG ulVolser; /* Volume serial number */ 1263 VOLUMELABEL vol; /* Volume lable */ 1264 } FSINFOBUF; 1265 //****************************************************************************** 1266 DWORD OSLibDosQueryVolumeSerialAndName(int drive, LPDWORD lpVolumeSerialNumber, 1267 LPSTR lpVolumeNameBuffer, DWORD nVolumeNameSize) 1268 { 1269 FSINFOBUF fsi; 1270 APIRET rc; 1271 1272 DosError(FERR_DISABLEHARDERR); 1273 rc = DosQueryFSInfo(drive, FSIL_VOLSER, &fsi, sizeof(fsi)); 1274 DosError(FERR_ENABLEHARDERR); 1275 1276 switch(rc) { 1277 case ERROR_INVALID_DRIVE: 1278 return ERROR_INVALID_DRIVE_W; 1279 case ERROR_NO_VOLUME_LABEL: 1280 return ERROR_NO_VOLUME_LABEL_W; 1281 case NO_ERROR: 1282 break; 1283 default: 1284 return ERROR_NOT_ENOUGH_MEMORY; //whatever 1285 } 1286 1287 if(lpVolumeSerialNumber) { 1288 *lpVolumeSerialNumber = fsi.ulVolser; 1289 } 1290 if(lpVolumeNameBuffer) 1291 { 1292 if(nVolumeNameSize > fsi.vol.cch) { 1293 strcpy(lpVolumeNameBuffer, (PCHAR)fsi.vol.szVolLabel); 1294 } 1295 else return ERROR_BUFFER_OVERFLOW_W; 1296 } 1297 1298 return ERROR_SUCCESS_W; 1299 } 1300 //****************************************************************************** 1301 //****************************************************************************** -
trunk/src/kernel32/oslibdos.h
r3588 r3593 1 /* $Id: oslibdos.h,v 1.1 4 2000-05-22 19:07:59sandervl Exp $ */1 /* $Id: oslibdos.h,v 1.15 2000-05-23 18:45:13 sandervl Exp $ */ 2 2 3 3 /* … … 152 152 BOOL OSLibDosFindClose(DWORD hFindFile); 153 153 154 DWORD OSLibDosQueryVolumeFS(int drive, LPSTR lpFileSystemNameBuffer, DWORD nFileSystemNameSize); 155 DWORD OSLibDosQueryVolumeSerialAndName(int drive, LPDWORD lpVolumeSerialNumber, LPSTR lpVolumeNameBuffer, DWORD nVolumeNameSize); 156 157 154 158 #endif
Note:
See TracChangeset
for help on using the changeset viewer.