Changeset 4588 for trunk/src/kernel32/HandleManager.cpp
- Timestamp:
- Nov 14, 2000, 3:27:04 PM (25 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/kernel32/HandleManager.cpp
r4487 r4588 1 /* $Id: HandleManager.cpp,v 1.5 3 2000-10-16 17:56:08sandervl Exp $ */1 /* $Id: HandleManager.cpp,v 1.54 2000-11-14 14:26:55 sandervl Exp $ */ 2 2 3 3 /* … … 177 177 { 178 178 PHMDEVICE pHMDevice; /* iterator over the device table */ 179 180 if (pszDeviceName != NULL) { 179 int namelength = strlen(pszDeviceName); 180 181 if (pszDeviceName != NULL) 182 { 181 183 for (pHMDevice = TabWin32Devices; /* loop over all devices in the table */ 182 184 pHMDevice != NULL; 183 185 pHMDevice = pHMDevice->pNext) 184 186 { 185 if (stricmp(pHMDevice->pszDeviceName, /* case-insensitive search */ 186 pszDeviceName) == 0) 187 return (pHMDevice->pDeviceHandler); /* OK, we've found our device */ 187 if(pHMDevice->pDeviceHandler->FindDevice(pHMDevice->pszDeviceName, pszDeviceName, namelength) == TRUE) 188 { 189 return pHMDevice->pDeviceHandler; 190 } 188 191 } 189 192 } 190 int namelength = strlen(pszDeviceName);191 192 //SvL: \\.\x: -> drive x (i.e. \\.\C:)193 // \\.\PHYSICALDRIVEn -> drive n (n>=0)194 if((strncmp(pszDeviceName, "\\\\.\\", 4) == 0) &&195 namelength == 6 && pszDeviceName[5] == ':')196 {197 return HMGlobals.pHMDisk;198 }199 if((strncmp(pszDeviceName, "\\\\.\\PHYSICALDRIVE", 17) == 0) && namelength == 18) {200 return HMGlobals.pHMDisk;201 }202 203 193 return (HMGlobals.pHMOpen32); /* haven't found anything, return default */ 204 194 } … … 219 209 { 220 210 PHMDEVICE pHMDevice; /* iterator over the device table */ 211 int namelength = strlen(pszDeviceName); 221 212 222 213 if (pszDeviceName != NULL) 214 { 223 215 for (pHMDevice = TabWin32Devices; /* loop over all devices in the table */ 224 216 pHMDevice != NULL; 225 217 pHMDevice = pHMDevice->pNext) 226 218 { 227 if (stricmp(pHMDevice->pszDeviceName, /* case-insensitive search */ 228 pszDeviceName) == 0) 229 return (pHMDevice->pDevData); /* OK, we've found our device */ 219 if(pHMDevice->pDeviceHandler->FindDevice(pHMDevice->pszDeviceName, pszDeviceName, namelength) == TRUE) 220 { 221 return (pHMDevice->pDevData); /* OK, we've found our device */ 222 } 230 223 } 231 224 } 232 225 return (NULL); /* haven't found anything, return NULL */ 233 226 } … … 259 252 /* free handle found ? */ 260 253 if (INVALID_HANDLE_VALUE == TabWin32Handles[ulLoop].hmHandleData.hHMHandle) { 261 TabWin32Handles[ulLoop].hmHandleData.dwUserData = 0;262 TabWin32Handles[ulLoop].hmHandleData.dwInternalType = HMTYPE_UNKNOWN;263 TabWin32Handles[ulLoop].hmHandleData.lpDeviceData = NULL;264 handleMutex.leave();254 TabWin32Handles[ulLoop].hmHandleData.dwUserData = 0; 255 TabWin32Handles[ulLoop].hmHandleData.dwInternalType = HMTYPE_UNKNOWN; 256 TabWin32Handles[ulLoop].hmHandleData.lpDeviceData = NULL; 257 handleMutex.leave(); 265 258 return (ulLoop); /* OK, then return it to the caller */ 266 259 } … … 389 382 if (HMGlobals.fIsInitialized != TRUE) 390 383 { 391 HMGlobals.fIsInitialized = TRUE; /* OK, done */392 393 384 handleMutex.enter(); 394 385 // fill handle table … … 403 394 0, 404 395 sizeof(HMGlobals)); 396 397 HMGlobals.fIsInitialized = TRUE; /* OK, done */ 405 398 406 399 /* copy standard handles from OS/2's Open32 Subsystem */ … … 442 435 /* @@@PH we could deallocate the device list here */ 443 436 444 if(HMGlobals.pHMOpen32) 445 446 if(HMGlobals.pHMEvent) 447 448 if(HMGlobals.pHMFile) 449 450 if(HMGlobals.pHMMutex) 451 452 if(HMGlobals.pHMSemaphore) 453 454 if(HMGlobals.pHMFileMapping) 455 456 if(HMGlobals.pHMComm) 457 458 if(HMGlobals.pHMToken) 459 460 if(HMGlobals.pHMThread) 461 462 if(HMGlobals.pHMNamedPipe) 463 464 if(HMGlobals.pHMDisk) 465 437 if(HMGlobals.pHMOpen32) 438 delete HMGlobals.pHMOpen32; 439 if(HMGlobals.pHMEvent) 440 delete HMGlobals.pHMEvent; 441 if(HMGlobals.pHMFile) 442 delete HMGlobals.pHMFile; 443 if(HMGlobals.pHMMutex) 444 delete HMGlobals.pHMMutex; 445 if(HMGlobals.pHMSemaphore) 446 delete HMGlobals.pHMSemaphore; 447 if(HMGlobals.pHMFileMapping) 448 delete HMGlobals.pHMFileMapping; 449 if(HMGlobals.pHMComm) 450 delete HMGlobals.pHMComm; 451 if(HMGlobals.pHMToken) 452 delete HMGlobals.pHMToken; 453 if(HMGlobals.pHMThread) 454 delete HMGlobals.pHMThread; 455 if(HMGlobals.pHMNamedPipe) 456 delete HMGlobals.pHMNamedPipe; 457 if(HMGlobals.pHMDisk) 458 delete HMGlobals.pHMDisk; 466 459 467 460 return (NO_ERROR); … … 1380 1373 if((hFile == GetStdHandle(STD_INPUT_HANDLE)) || 1381 1374 (hFile == GetStdHandle(STD_OUTPUT_HANDLE)) || 1382 (hFile == GetStdHandle(STD_ERROR_HANDLE))) 1375 (hFile == GetStdHandle(STD_ERROR_HANDLE))) 1383 1376 { 1384 1377 return FILE_TYPE_CHAR;
Note:
See TracChangeset
for help on using the changeset viewer.