Changeset 3782 for trunk/src/kernel32/hmfile.cpp
- Timestamp:
- Jul 1, 2000, 11:50:55 AM (25 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/kernel32/hmfile.cpp
r3765 r3782 1 /* $Id: hmfile.cpp,v 1. 7 2000-06-28 18:08:34 sandervl Exp $ */1 /* $Id: hmfile.cpp,v 1.8 2000-07-01 09:50:54 sandervl Exp $ */ 2 2 3 3 /* … … 425 425 //SvL: DosRead doesn't like writing to memory addresses returned by 426 426 // DosAliasMem -> search for original memory mapped pointer and use 427 // that one 428 map = Win32MemMapView::findMapByView((ULONG)lpBuffer, &offset, MEMMAP_ACCESS_ READ);427 // that one + commit pages if not already present 428 map = Win32MemMapView::findMapByView((ULONG)lpBuffer, &offset, MEMMAP_ACCESS_WRITE); 429 429 if(map) { 430 430 lpRealBuf = (LPVOID)((ULONG)map->getMappingAddr() + offset); … … 432 432 if(offset & 0xfff) 433 433 nrpages++; 434 else435 434 if(nNumberOfBytesToRead & 0xfff) 436 435 nrpages++; … … 519 518 LPOVERLAPPED lpOverlapped) 520 519 { 521 BOOL bRC; 520 LPVOID lpRealBuf; 521 Win32MemMap *map; 522 DWORD offset; 523 BOOL bRC; 522 524 523 525 dprintfl(("KERNEL32: HMDeviceFileClass::WriteFile %s(%08x,%08x,%08x,%08x,%08x) - stub?\n", … … 538 540 } 539 541 542 //SvL: DosWrite doesn't like reading from memory addresses returned by 543 // DosAliasMem -> search for original memory mapped pointer and use 544 // that one + commit pages if not already present 545 map = Win32MemMapView::findMapByView((ULONG)lpBuffer, &offset, MEMMAP_ACCESS_READ); 546 if(map) { 547 lpRealBuf = (LPVOID)((ULONG)map->getMappingAddr() + offset); 548 DWORD nrpages = nNumberOfBytesToWrite/4096; 549 if(offset & 0xfff) 550 nrpages++; 551 if(nNumberOfBytesToWrite & 0xfff) 552 nrpages++; 553 554 map->commitPage(offset & ~0xfff, TRUE, nrpages); 555 } 556 else lpRealBuf = (LPVOID)lpBuffer; 557 540 558 if(pHMHandleData->dwFlags & FILE_FLAG_OVERLAPPED) { 541 559 dprintf(("ERROR: Overlapped IO not yet implememented!!")); … … 543 561 // else { 544 562 bRC = OSLibDosWrite(pHMHandleData->hHMHandle, 545 (PVOID)lp Buffer,563 (PVOID)lpRealBuf, 546 564 nNumberOfBytesToWrite, 547 565 lpNumberOfBytesWritten);
Note:
See TracChangeset
for help on using the changeset viewer.