Changeset 3642 for trunk/src/kernel32/hmopen32.cpp
- Timestamp:
- Jun 1, 2000, 1:28:48 PM (25 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/kernel32/hmopen32.cpp
r3593 r3642 1 /* $Id: hmopen32.cpp,v 1.2 3 2000-05-23 18:45:12sandervl Exp $ */1 /* $Id: hmopen32.cpp,v 1.24 2000-06-01 11:28:47 sandervl Exp $ */ 2 2 3 3 /* … … 71 71 } 72 72 73 /***************************************************************************** 74 * Name : DWORD HMDeviceOpen32Class::CloseHandle 75 * Purpose : close the handle 76 * Parameters: PHMHANDLEDATA pHMHandleData 77 * Variables : 78 * Result : API returncode 79 * Remark : 80 * Status : 81 * 82 * Author : Patrick Haller [Wed, 1998/02/11 20:44] 83 *****************************************************************************/ 84 85 DWORD HMDeviceOpen32Class::CloseHandle(PHMHANDLEDATA pHMHandleData) 86 { 87 BOOL bRC; 88 89 dprintfl(("KERNEL32: HandleManager::Open32::CloseHandle(%08x)\n", 90 pHMHandleData->hHMHandle)); 91 92 bRC = O32_CloseHandle(pHMHandleData->hHMHandle); 93 94 dprintfl(("KERNEL32: HandleManager::Open32::CloseHandle returned %08xh\n", 95 bRC)); 96 97 return (DWORD)bRC; 98 } 73 99 74 100 /***************************************************************************** … … 100 126 srcprocess, pHMSrcHandle->hHMHandle, destprocess, desthandle)); 101 127 102 #if 1103 128 rc = O32_DuplicateHandle(srcprocess, pHMSrcHandle->hHMHandle, destprocess, desthandle, fdwAccess, fInherit, fdwOptions); 104 129 105 130 if(rc == TRUE) { 106 131 pHMHandleData->hHMHandle = *desthandle; 107 return (NO_ERROR);132 return TRUE; 108 133 } 109 else return(O32_GetLastError()); 110 #else 111 rc = OSLibDosDupHandle(pHMSrcHandle->hHMHandle, desthandle); 112 if(rc == NO_ERROR) 113 { 114 pHMHandleData->hHMHandle = *desthandle; 115 return (NO_ERROR); 116 } 117 else 118 { 119 dprintfl(("KERNEL32: HandleManager::Open32::DuplicateHandle Error %d\n",rc)); 120 O32_SetLastError(rc); 121 return(rc); 122 } 123 #endif 124 } 125 126 /***************************************************************************** 127 * Name : DWORD HMDeviceOpen32Class::CreateFile 128 * Purpose : this is called from the handle manager if a CreateFile() is 129 * performed on a handle 130 * Parameters: LPCSTR lpFileName name of the file / device 131 * PHMHANDLEDATA pHMHandleData data of the NEW handle 132 * PVOID lpSecurityAttributes ignored 133 * PHMHANDLEDATA pHMHandleDataTemplate data of the template handle 134 * Variables : 135 * Result : 136 * Remark : 137 * Status : NO_ERROR - API succeeded 138 * other - what is to be set in SetLastError 139 * 140 * Author : Patrick Haller [Wed, 1998/02/11 20:44] 141 *****************************************************************************/ 142 143 DWORD HMDeviceOpen32Class::CreateFile (LPCSTR lpFileName, 144 PHMHANDLEDATA pHMHandleData, 145 PVOID lpSecurityAttributes, 146 PHMHANDLEDATA pHMHandleDataTemplate) 147 { 148 HFILE hFile; 149 HFILE hTemplate; 150 151 dprintfl(("KERNEL32: HandleManager::Open32::CreateFile %s(%s,%08x,%08x,%08x) - stub?\n", 152 lpHMDeviceName, 153 lpFileName, 154 pHMHandleData, 155 lpSecurityAttributes, 156 pHMHandleDataTemplate)); 157 158 if (strncmp(lpFileName, // "support" for local unc names 159 "\\\\.\\", 160 4) == 0) 161 { 162 lpFileName+=4; 163 } 164 165 // create from template 166 if (pHMHandleDataTemplate != NULL) 167 hTemplate = pHMHandleDataTemplate->hHMHandle; 168 else 169 hTemplate = 0; 170 171 #if 1 172 //SvL: Open32 doesn't like this flag 173 if(pHMHandleData->dwShare & FILE_SHARE_DELETE) { 174 pHMHandleData->dwShare &= ~FILE_SHARE_DELETE; 175 } 176 177 hFile = O32_CreateFile(lpFileName, 178 pHMHandleData->dwAccess, 179 pHMHandleData->dwShare, 180 //(LPSECURITY_ATTRIBUTES)lpSecurityAttributes, 181 NULL, 182 pHMHandleData->dwCreation, 183 pHMHandleData->dwFlags, 184 hTemplate); 185 if (hFile != INVALID_HANDLE_ERROR) 186 { 187 pHMHandleData->hHMHandle = hFile; 188 return (NO_ERROR); 189 } 190 else { 191 dprintf(("CreateFile failed; error %x", O32_GetLastError())); 192 return(O32_GetLastError()); 193 } 194 #else 195 196 rc = OSLibDosCreate((char *)lpFileName, 197 pHMHandleData->dwAccess, 198 pHMHandleData->dwShare, 199 //(LPSECURITY_ATTRIBUTES)lpSecurityAttributes, 200 NULL, 201 pHMHandleData->dwCreation, 202 pHMHandleData->dwFlags, 203 hTemplate, &hFile); 204 if(rc) 205 { 206 dprintfl(("KERNEL32: HandleManager::Open32::CreateFile Error %d\n",rc)); 207 O32_SetLastError(rc); 208 return(rc); 209 } 210 else 211 { 212 pHMHandleData->hHMHandle = hFile; 213 return (NO_ERROR); 214 } 215 #endif 216 } 217 218 219 /***************************************************************************** 220 * Name : DWORD HMDeviceOpen32Class::CloseHandle 221 * Purpose : close the handle 222 * Parameters: PHMHANDLEDATA pHMHandleData 223 * Variables : 224 * Result : API returncode 225 * Remark : 226 * Status : 227 * 228 * Author : Patrick Haller [Wed, 1998/02/11 20:44] 229 *****************************************************************************/ 230 231 DWORD HMDeviceOpen32Class::CloseHandle(PHMHANDLEDATA pHMHandleData) 232 { 233 BOOL bRC; 234 235 dprintfl(("KERNEL32: HandleManager::Open32::CloseHandle(%08x)\n", 236 pHMHandleData->hHMHandle)); 237 238 #if 1 239 bRC = O32_CloseHandle(pHMHandleData->hHMHandle); 240 241 dprintfl(("KERNEL32: HandleManager::Open32::CloseHandle returned %08xh\n", 242 bRC)); 243 244 return (DWORD)bRC; 245 #else 246 bRC = OSLibDosClose(pHMHandleData->hHMHandle); 247 if(bRC) 248 { 249 dprintfl(("KERNEL32: HandleManager::Open32::CloseHandle Error %d\n",bRC)); 250 O32_SetLastError(bRC); 251 return TRUE; // MUTEX Problem 252 return FALSE; 253 } 254 else 255 { 256 return TRUE; 257 } 258 #endif 259 } 260 261 262 /***************************************************************************** 263 * Name : BOOL HMDeviceOpen32Class::ReadFile 264 * Purpose : read data from handle / device 265 * Parameters: PHMHANDLEDATA pHMHandleData, 266 * LPCVOID lpBuffer, 267 * DWORD nNumberOfBytesToRead, 268 * LPDWORD lpNumberOfBytesRead, 269 * LPOVERLAPPED lpOverlapped 270 * Variables : 271 * Result : Boolean 272 * Remark : 273 * Status : 274 * 275 * Author : Patrick Haller [Wed, 1998/02/11 20:44] 276 *****************************************************************************/ 277 278 BOOL HMDeviceOpen32Class::ReadFile(PHMHANDLEDATA pHMHandleData, 279 LPCVOID lpBuffer, 280 DWORD nNumberOfBytesToRead, 281 LPDWORD lpNumberOfBytesRead, 282 LPOVERLAPPED lpOverlapped) 283 { 284 BOOL bRC; 285 LPVOID lpRealBuf; 286 287 dprintfl(("KERNEL32: HandleManager::Open32::ReadFile %s(%08x,%08x,%08x,%08x,%08x) - stub?\n", 288 lpHMDeviceName, 289 pHMHandleData, 290 lpBuffer, 291 nNumberOfBytesToRead, 292 lpNumberOfBytesRead, 293 lpOverlapped)); 294 295 #if 1 296 Win32MemMap *map; 297 DWORD offset; 298 299 //SvL: DosRead doesn't like writing to memory addresses returned by 300 // DosAliasMem -> search for original memory mapped pointer and use 301 // that one 302 map = Win32MemMapView::findMapByView((ULONG)lpBuffer, &offset, MEMMAP_ACCESS_READ); 303 if(map) { 304 lpRealBuf = (LPVOID)((ULONG)map->getMappingAddr() + offset); 305 DWORD nrpages = nNumberOfBytesToRead/4096; 306 if(offset & 0xfff) 307 nrpages++; 308 else 309 if(nNumberOfBytesToRead & 0xfff) 310 nrpages++; 311 312 map->commitPage(offset & ~0xfff, TRUE, nrpages); 313 } 314 else lpRealBuf = (LPVOID)lpBuffer; 315 316 bRC = O32_ReadFile(pHMHandleData->hHMHandle, 317 (PVOID)lpRealBuf, 318 nNumberOfBytesToRead, 319 lpNumberOfBytesRead, 320 lpOverlapped); 321 322 if(bRC == 0) { 323 dprintf(("KERNEL32: HandleManager::Open32::ReadFile returned %08xh %x\n", 324 bRC, GetLastError())); 325 dprintf(("%x -> %d", lpBuffer, IsBadWritePtr((LPVOID)lpBuffer, nNumberOfBytesToRead))); 326 } 327 else dprintfl(("KERNEL32: HandleManager::Open32::ReadFile returned %08xh\n", 328 bRC)); 329 330 return bRC; 331 #else 332 rc = OSLibDosRead(pHMHandleData->hHMHandle, 333 (PVOID) lpBuffer, 334 nNumberOfBytesToRead, 335 lpNumberOfBytesRead); 336 if(rc) 337 { 338 dprintfl(("KERNEL32: HandleManager::Open32::ReadFile Error %d\n",rc)); 339 O32_SetLastError(rc); 340 return FALSE; 341 } 342 else 343 { 344 return TRUE; 345 } 346 #endif 347 } 348 349 350 /***************************************************************************** 351 * Name : BOOL HMDeviceOpen32Class::WriteFile 352 * Purpose : write data to handle / device 353 * Parameters: PHMHANDLEDATA pHMHandleData, 354 * LPCVOID lpBuffer, 355 * DWORD nNumberOfBytesToWrite, 356 * LPDWORD lpNumberOfBytesWritten, 357 * LPOVERLAPPED lpOverlapped 358 * Variables : 359 * Result : Boolean 360 * Remark : 361 * Status : 362 * 363 * Author : Patrick Haller [Wed, 1998/02/11 20:44] 364 *****************************************************************************/ 365 366 BOOL HMDeviceOpen32Class::WriteFile(PHMHANDLEDATA pHMHandleData, 367 LPCVOID lpBuffer, 368 DWORD nNumberOfBytesToWrite, 369 LPDWORD lpNumberOfBytesWritten, 370 LPOVERLAPPED lpOverlapped) 371 { 372 BOOL bRC; 373 374 dprintfl(("KERNEL32: HandleManager::Open32::WriteFile %s(%08x,%08x,%08x,%08x,%08x) - stub?\n", 375 lpHMDeviceName, 376 pHMHandleData, 377 lpBuffer, 378 nNumberOfBytesToWrite, 379 lpNumberOfBytesWritten, 380 lpOverlapped)); 381 382 #if 1 383 bRC = O32_WriteFile(pHMHandleData->hHMHandle, 384 lpBuffer, 385 nNumberOfBytesToWrite, 386 lpNumberOfBytesWritten, 387 lpOverlapped); 388 389 dprintfl(("KERNEL32: HandleManager::Open32::WriteFile returned %08xh\n", 390 bRC)); 391 392 return bRC; 393 #else 394 rc = OSLibDosWrite(pHMHandleData->hHMHandle, 395 (PVOID) lpBuffer, 396 nNumberOfBytesToWrite, 397 lpNumberOfBytesWritten); 398 if(rc) 399 { 400 dprintfl(("KERNEL32: HandleManager::Open32::WriteFile Error %d\n",rc)); 401 O32_SetLastError(rc); 402 return FALSE; 403 } 404 else 405 { 406 return TRUE; 407 } 408 #endif 409 } 410 134 else return FALSE; 135 } 411 136 412 137 /***************************************************************************** … … 428 153 pHMHandleData)); 429 154 430 #if 1 155 //TODO: return FILE_TYPE_UNKNOWN for standard in/out handles; correct?? 431 156 return O32_GetFileType(pHMHandleData->hHMHandle); 432 #else433 // TODO: FILE_TYPE_DISK434 return FILE_TYPE_CHAR;435 #endif436 157 } 437 158 … … 461 182 pHFI); 462 183 } 463 464 465 /*****************************************************************************466 * Name : BOOL HMDeviceOpen32Class::SetEndOfFile467 * Purpose : set end of file marker468 * Parameters: PHMHANDLEDATA pHMHandleData469 * Variables :470 * Result : API returncode471 * Remark :472 * Status :473 *474 * Author : Patrick Haller [Wed, 1999/06/17 20:44]475 *****************************************************************************/476 477 BOOL HMDeviceOpen32Class::SetEndOfFile(PHMHANDLEDATA pHMHandleData)478 {479 dprintfl(("KERNEL32: HandleManager::Open32::SetEndOfFile %s(%08xh)\n",480 lpHMDeviceName,481 pHMHandleData));482 483 return O32_SetEndOfFile(pHMHandleData->hHMHandle);484 }485 486 487 /*****************************************************************************488 * Name : BOOL HMDeviceOpen32Class::SetFileTime489 * Purpose : set file time490 * Parameters: PHMHANDLEDATA pHMHandleData491 * PFILETIME pFT1492 * PFILETIME pFT2493 * PFILETIME pFT3494 * Variables :495 * Result : API returncode496 * Remark :497 * Status :498 *499 * Author : Patrick Haller [Wed, 1999/06/17 20:44]500 *****************************************************************************/501 502 BOOL HMDeviceOpen32Class::SetFileTime(PHMHANDLEDATA pHMHandleData,503 LPFILETIME pFT1,504 LPFILETIME pFT2,505 LPFILETIME pFT3)506 {507 dprintfl(("KERNEL32: HandleManager::Open32::SetFileTime %s(%08xh,%08xh,%08xh,%08xh)\n",508 lpHMDeviceName,509 pHMHandleData,510 pFT1,511 pFT2,512 pFT3));513 514 return O32_SetFileTime(pHMHandleData->hHMHandle,515 pFT1,516 pFT2,517 pFT3);518 }519 520 /*****************************************************************************521 * Name : BOOL HMDeviceOpen32Class::GetFileTime522 * Purpose : get file time523 * Parameters: PHMHANDLEDATA pHMHandleData524 * PFILETIME pFT1525 * PFILETIME pFT2526 * PFILETIME pFT3527 * Variables :528 * Result : API returncode529 * Remark :530 * Status :531 *532 * Author : SvL533 *****************************************************************************/534 535 BOOL HMDeviceOpen32Class::GetFileTime(PHMHANDLEDATA pHMHandleData,536 LPFILETIME pFT1,537 LPFILETIME pFT2,538 LPFILETIME pFT3)539 {540 return O32_GetFileTime(pHMHandleData->hHMHandle,541 pFT1,542 pFT2,543 pFT3);544 }545 546 547 /*****************************************************************************548 * Name : DWORD HMDeviceOpen32Class::GetFileSize549 * Purpose : set file time550 * Parameters: PHMHANDLEDATA pHMHandleData551 * PDWORD pSize552 * Variables :553 * Result : API returncode554 * Remark :555 * Status :556 *557 * Author : Patrick Haller [Wed, 1999/06/17 20:44]558 *****************************************************************************/559 560 DWORD HMDeviceOpen32Class::GetFileSize(PHMHANDLEDATA pHMHandleData,561 PDWORD lpdwFileSizeHigh)562 {563 dprintfl(("KERNEL32: HandleManager::Open32::GetFileSize %s(%08xh,%08xh)\n",564 lpHMDeviceName,565 pHMHandleData,566 lpdwFileSizeHigh));567 568 #if 1569 if(lpdwFileSizeHigh)570 *lpdwFileSizeHigh = 0;571 572 return O32_GetFileSize(pHMHandleData->hHMHandle,573 lpdwFileSizeHigh);574 #else575 size = OSLibDosGetFileSize(pHMHandleData->hHMHandle);576 if(pSize)577 *pSize = 0;578 return size;579 #endif580 }581 582 583 /*****************************************************************************584 * Name : DWORD HMDeviceOpen32Class::SetFilePointer585 * Purpose : set file pointer586 * Parameters: PHMHANDLEDATA pHMHandleData587 * LONG lDistanceToMove588 * PLONG lpDistanceToMoveHigh589 * DWORD dwMoveMethod590 * Variables :591 * Result : API returncode592 * Remark :593 * Status :594 *595 * Author : Patrick Haller [Wed, 1999/06/17 20:44]596 *****************************************************************************/597 598 DWORD HMDeviceOpen32Class::SetFilePointer(PHMHANDLEDATA pHMHandleData,599 LONG lDistanceToMove,600 PLONG lpDistanceToMoveHigh,601 DWORD dwMoveMethod)602 {603 dprintfl(("KERNEL32: HandleManager::Open32::SetFilePointer %s(%08xh,%08xh,%08xh,%08xh)\n",604 lpHMDeviceName,605 pHMHandleData,606 lDistanceToMove,607 lpDistanceToMoveHigh,608 dwMoveMethod));609 610 #if 1611 DWORD ret;612 613 if(lpDistanceToMoveHigh)614 *lpDistanceToMoveHigh = 0;615 616 ret = O32_SetFilePointer(pHMHandleData->hHMHandle,617 lDistanceToMove,618 lpDistanceToMoveHigh,619 dwMoveMethod);620 621 // if(ret == -1) {622 // dprintf(("current position %x (error = %x)", O32_SetFilePointer(pHMHandleData->hHMHandle,0, 0, 1), GetLastError()));623 // }624 return ret;625 #else626 627 if(lpDistanceToMoveHigh)628 *lpDistanceToMoveHigh = 0;629 pos = OSLibDosSetFilePtr2(pHMHandleData->hHMHandle, lDistanceToMove, dwMoveMethod);630 return pos;631 #endif632 }633 634 635 /*****************************************************************************636 * Name : DWORD HMDeviceOpen32Class::LockFile637 * Purpose : file locking638 * Parameters: PHMHANDLEDATA pHMHandleData639 * DWORD arg2640 * DWORD arg3641 * DWORD arg4642 * DWORD arg5643 * Variables :644 * Result : API returncode645 * Remark :646 * Status :647 *648 * Author : Patrick Haller [Wed, 1999/06/17 20:44]649 *****************************************************************************/650 651 DWORD HMDeviceOpen32Class::LockFile(PHMHANDLEDATA pHMHandleData,652 DWORD arg2,653 DWORD arg3,654 DWORD arg4,655 DWORD arg5)656 {657 dprintfl(("KERNEL32: HandleManager::Open32::LockFile %s(%08xh,%08xh,%08xh,%08xh,%08xh)\n",658 lpHMDeviceName,659 pHMHandleData,660 arg2,661 arg3,662 arg4,663 arg5));664 665 return O32_LockFile(pHMHandleData->hHMHandle,666 arg2,667 arg3,668 arg4,669 arg5);670 }671 672 673 674 /*****************************************************************************675 * Name : DWORD HMDeviceOpen32Class::LockFileEx676 * Purpose : file locking677 * Parameters: PHMHANDLEDATA pHMHandleData678 * DWORD dwFlags679 * DWORD dwReserved680 * DWORD nNumberOfBytesToLockLow681 * DWORD nNumberOfBytesToLockHigh682 * LPOVERLAPPED lpOverlapped683 * Variables :684 * Result : API returncode685 * Remark :686 * Status :687 *688 * Author : Patrick Haller [Wed, 1999/06/17 20:44]689 *****************************************************************************/690 691 DWORD HMDeviceOpen32Class::LockFileEx(PHMHANDLEDATA pHMHandleData,692 DWORD dwFlags,693 DWORD dwReserved,694 DWORD nNumberOfBytesToLockLow,695 DWORD nNumberOfBytesToLockHigh,696 LPOVERLAPPED lpOverlapped)697 {698 699 dprintfl(("KERNEL32: HandleManager::Open32::LockFileEx %s(%08xh,%08xh,%08xh,%08xh,%08xh,%08xh)\n",700 lpHMDeviceName,701 pHMHandleData,702 dwFlags,703 dwReserved,704 nNumberOfBytesToLockLow,705 nNumberOfBytesToLockHigh,706 lpOverlapped));707 708 709 return(O32_LockFile(pHMHandleData->hHMHandle,710 lpOverlapped->Offset,711 lpOverlapped->OffsetHigh,712 nNumberOfBytesToLockLow,713 nNumberOfBytesToLockHigh));714 }715 716 717 /*****************************************************************************718 * Name : DWORD HMDeviceOpen32Class::OpenFile719 * Purpose : this is called from the handle manager if a OpenFile() is720 * performed on a handle721 * Parameters: LPCSTR lpFileName name of the file / device722 * PHMHANDLEDATA pHMHandleData data of the NEW handle723 * PVOID lpSecurityAttributes ignored724 * PHMHANDLEDATA pHMHandleDataTemplate data of the template handle725 * Variables :726 * Result :727 * Remark :728 * Status : NO_ERROR - API succeeded729 * other - what is to be set in SetLastError730 *731 * Author : Patrick Haller [Wed, 1998/02/11 20:44]732 *****************************************************************************/733 734 DWORD HMDeviceOpen32Class::OpenFile (LPCSTR lpFileName,735 PHMHANDLEDATA pHMHandleData,736 OFSTRUCT *pOFStruct,737 UINT fuMode)738 {739 HFILE hFile;740 FILETIME filetime;741 WORD filedatetime[2];742 char filepath[260];743 744 dprintfl(("KERNEL32: HandleManager::Open32::OpenFile %s(%s,%08x,%08x,%08x) - stub?\n",745 lpHMDeviceName,746 lpFileName,747 pHMHandleData,748 pOFStruct,749 fuMode));750 751 if(strcmp(lpFileName, // "support" for local unc names752 "\\\\.\\") == 0)753 {754 lpFileName+=4;755 }756 else757 if(!strchr(lpFileName, ':') && !strchr(lpFileName, '\\'))758 {759 //filename only; search for file in following order760 //1: dir from which the app loaded761 //2: current dir762 //3: windows system dir763 //4: windows dir764 //5: dirs in path path environment variable765 //SearchPath does exactly that766 LPSTR filenameinpath;767 768 if(SearchPathA(NULL, lpFileName, NULL, sizeof(filepath), filepath, &filenameinpath) == 0769 && !(fuMode & OF_CREATE) ) {770 SetLastError(ERROR_FILE_NOT_FOUND);771 return HFILE_ERROR;772 }773 lpFileName = filepath;774 }775 // filling OFSTRUCT776 memset(pOFStruct, 0, sizeof(OFSTRUCT));777 pOFStruct->cBytes = sizeof(OFSTRUCT);778 pOFStruct->nErrCode = 0;779 strncpy((char *)pOFStruct->szPathName, lpFileName, OFS_MAXPATHNAME - 1);780 781 hFile = O32_OpenFile(lpFileName,782 pOFStruct,783 fuMode);784 if (hFile != INVALID_HANDLE_ERROR)785 {786 pHMHandleData->hHMHandle = hFile;787 788 GetFileTime(pHMHandleData,789 NULL,790 NULL,791 &filetime );792 FileTimeToDosDateTime(&filetime,793 &filedatetime[0],794 &filedatetime[1] );795 memcpy(pOFStruct->reserved,796 filedatetime,797 sizeof(pOFStruct->reserved) );798 799 return (NO_ERROR);800 }801 802 // error branch803 pOFStruct->nErrCode = O32_GetLastError();804 dprintf(("KERNEL32: HandleManager::Open32::OpenFile Error %08xh\n",805 pOFStruct->nErrCode));806 807 // return != NO_ERROR => error code808 return(hFile);809 }810 811 812 /*****************************************************************************813 * Name : DWORD HMDeviceOpen32Class::UnlockFile814 * Purpose : file locking815 * Parameters: PHMHANDLEDATA pHMHandleData816 * DWORD arg2817 * DWORD arg3818 * DWORD arg4819 * DWORD arg5820 * Variables :821 * Result : API returncode822 * Remark :823 * Status :824 *825 * Author : Patrick Haller [Wed, 1999/06/17 20:44]826 *****************************************************************************/827 828 DWORD HMDeviceOpen32Class::UnlockFile(PHMHANDLEDATA pHMHandleData,829 DWORD arg2,830 DWORD arg3,831 DWORD arg4,832 DWORD arg5)833 {834 dprintfl(("KERNEL32: HandleManager::Open32::UnlockFile %s(%08xh,%08xh,%08xh,%08xh,%08xh)\n",835 lpHMDeviceName,836 pHMHandleData,837 arg2,838 arg3,839 arg4,840 arg5));841 842 return O32_UnlockFile(pHMHandleData->hHMHandle,843 arg2,844 arg3,845 arg4,846 arg5);847 }848 849 850 851 /*****************************************************************************852 * Name : DWORD HMDeviceOpen32Class::UnlockFileEx853 * Purpose : file locking854 * Parameters: PHMHANDLEDATA pHMHandleData855 * DWORD dwFlags856 * DWORD dwReserved857 * DWORD nNumberOfBytesToLockLow858 * DWORD nNumberOfBytesToLockHigh859 * LPOVERLAPPED lpOverlapped860 * Variables :861 * Result : API returncode862 * Remark :863 * Status :864 *865 * Author : Patrick Haller [Wed, 1999/06/17 20:44]866 *****************************************************************************/867 868 DWORD HMDeviceOpen32Class::UnlockFileEx(PHMHANDLEDATA pHMHandleData,869 DWORD dwFlags,870 DWORD dwReserved,871 DWORD nNumberOfBytesToLockLow,872 DWORD nNumberOfBytesToLockHigh,873 LPOVERLAPPED lpOverlapped)874 {875 876 dprintfl(("KERNEL32: HandleManager::Open32::UnlockFileEx %s(%08xh,%08xh,%08xh,%08xh,%08xh,%08xh)\n",877 lpHMDeviceName,878 pHMHandleData,879 dwFlags,880 dwReserved,881 nNumberOfBytesToLockLow,882 nNumberOfBytesToLockHigh,883 lpOverlapped));884 885 return(O32_UnlockFile(pHMHandleData->hHMHandle,886 lpOverlapped->Offset,887 lpOverlapped->OffsetHigh,888 nNumberOfBytesToLockLow,889 nNumberOfBytesToLockHigh));890 }891 892 184 893 185 /***************************************************************************** … … 955 247 } 956 248 957 958 /*****************************************************************************959 * Name : DWORD HMDeviceOpen32Class::FlushFileBuffers960 * Purpose : flush the buffers of a file961 * Parameters: PHMHANDLEDATA pHMHandleData962 * Variables :963 * Result : API returncode964 * Remark :965 * Status :966 *967 * Author : Patrick Haller [Wed, 1999/06/17 20:44]968 *****************************************************************************/969 970 BOOL HMDeviceOpen32Class::FlushFileBuffers(PHMHANDLEDATA pHMHandleData)971 {972 dprintfl(("KERNEL32: HandleManager::Open32:FlushFileBuffers(%08xh)\n",973 pHMHandleData->hHMHandle));974 975 return(O32_FlushFileBuffers(pHMHandleData->hHMHandle));976 }977 978 979 /*****************************************************************************980 * Name : DWORD HMDeviceOpen32Class::GetOverlappedResult981 * Purpose : asynchronus I/O982 * Parameters: PHMHANDLEDATA pHMHandleData983 * LPOVERLAPPED arg2984 * LPDWORD arg3985 * BOOL arg4986 * Variables :987 * Result : API returncode988 * Remark :989 * Status :990 *991 * Author : Patrick Haller [Wed, 1999/06/17 20:44]992 *****************************************************************************/993 994 BOOL HMDeviceOpen32Class::GetOverlappedResult(PHMHANDLEDATA pHMHandleData,995 LPOVERLAPPED arg2,996 LPDWORD arg3,997 BOOL arg4)998 {999 dprintfl(("KERNEL32: HandleManager::Open32::GetOverlappedResult(%08xh,%08xh,%08xh,%08xh)\n",1000 pHMHandleData->hHMHandle,1001 arg2,1002 arg3,1003 arg4));1004 1005 return(O32_GetOverlappedResult(pHMHandleData->hHMHandle,1006 arg2,1007 arg3,1008 arg4));1009 }1010
Note:
See TracChangeset
for help on using the changeset viewer.