Ignore:
Timestamp:
Aug 4, 2000, 11:12:10 PM (25 years ago)
Author:
sandervl
Message:

mmap + share hack

File:
1 edited

Legend:

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

    r3897 r3948  
    1 /* $Id: HandleManager.cpp,v 1.44 2000-07-26 18:06:21 sandervl Exp $ */
     1/* $Id: HandleManager.cpp,v 1.45 2000-08-04 21:12:05 sandervl Exp $ */
    22
    33/*
     
    707707                       DWORD   fdwAccess,
    708708                       BOOL    fInherit,
    709                        DWORD   fdwOptions)
     709                       DWORD   fdwOptions,
     710                       DWORD   fdwOdinOptions)
    710711{
    711712  int             iIndex;                     /* index into the handle table */
     
    738739    pHMHandleData->dwAccess    = fdwAccess;
    739740
    740   pHMHandleData->dwShare       = TabWin32Handles[srchandle].hmHandleData.dwShare;
     741  if(fdwOdinOptions & DUPLICATE_ACCESS_READWRITE) {
     742        pHMHandleData->dwAccess = GENERIC_READ | GENERIC_WRITE;
     743  }
     744  else
     745  if(fdwOdinOptions & DUPLICATE_ACCESS_READ) {
     746        pHMHandleData->dwAccess = GENERIC_READ;
     747  }
     748
     749  if(fdwOdinOptions & DUPLICATE_SHARE_READ) {
     750        pHMHandleData->dwShare = FILE_SHARE_READ;
     751  }
     752  else
     753  if(fdwOdinOptions & DUPLICATE_SHARE_DENYNONE) {
     754        pHMHandleData->dwShare = FILE_SHARE_READ | FILE_SHARE_WRITE;
     755  }
     756  else  pHMHandleData->dwShare = TabWin32Handles[srchandle].hmHandleData.dwShare;
     757
    741758  pHMHandleData->dwCreation    = TabWin32Handles[srchandle].hmHandleData.dwCreation;
    742759  pHMHandleData->dwFlags       = TabWin32Handles[srchandle].hmHandleData.dwFlags;
     
    759776                                       fdwAccess,
    760777                                       fInherit,
    761                                        fdwOptions & ~DUPLICATE_CLOSE_SOURCE);
     778                                       fdwOptions & ~DUPLICATE_CLOSE_SOURCE,
     779                                       fdwOdinOptions);
    762780
    763781  //Don't let Open32 close it for us, but do it manually (regardless of error; see SDK docs))
Note: See TracChangeset for help on using the changeset viewer.