Ignore:
Timestamp:
Aug 27, 1999, 6:51:01 PM (26 years ago)
Author:
sandervl
Message:

Implemented multiple views of memory mapped files + some bugfixes to PE loader code

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/kernel32/virtual.cpp

    r708 r712  
    1 /* $Id: virtual.cpp,v 1.10 1999-08-26 17:56:26 sandervl Exp $ */
     1/* $Id: virtual.cpp,v 1.11 1999-08-27 16:51:01 sandervl Exp $ */
    22
    33/*
     
    149149{
    150150 Win32MemMap *map;
     151 DWORD offset;
    151152
    152153    if (!base)
     
    155156        return FALSE;
    156157    }
    157     map = Win32MemMap::findMap((ULONG)base);
     158    map = Win32MemMapView::findMapByView((ULONG)base, &offset, MEMMAP_ACCESS_READ);
    158159    if(map == NULL) {
    159160        SetLastError( ERROR_FILE_NOT_FOUND );
    160161        return FALSE;
    161162    }
    162     return map->flushView((LPVOID)base, cbFlush);
     163    return map->flushView(offset, cbFlush);
    163164}
    164165
     
    179180{
    180181 Win32MemMap *map;
     182 Win32MemMapView *view;
     183
     184 DWORD offset;
    181185
    182186    if (!addr)
     
    185189        return FALSE;
    186190    }
    187     map = Win32MemMap::findMap((ULONG)addr);
     191    map = Win32MemMapView::findMapByView((ULONG)addr, &offset, MEMMAP_ACCESS_READ, &view);
    188192    if(map == NULL) {
    189193        SetLastError( ERROR_FILE_NOT_FOUND );
    190194        return FALSE;
    191195    }
    192     return map->unmapViewOfFile();
     196    return map->unmapViewOfFile(view);
    193197}
    194198
     
    461465        return 0;
    462466  }
    463   cbRangeSize = cbLength;
     467 
     468  cbRangeSize = cbLength & ~0xFFF;
     469  if(cbLength & 0xFFF) {
     470        cbRangeSize += PAGE_SIZE;
     471  }
    464472  rc = OSLibDosQueryMem((LPVOID)lpvAddress, &cbRangeSize, &dAttr);
    465473  if(rc) {
Note: See TracChangeset for help on using the changeset viewer.