Changeset 6468 for trunk/src


Ignore:
Timestamp:
Aug 6, 2001, 6:01:11 PM (24 years ago)
Author:
sandervl
Message:

CreateProcess & memory map fixes

Location:
trunk/src/kernel32
Files:
5 edited

Legend:

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

    r5587 r6468  
    1 /* $Id: hmmmap.cpp,v 1.17 2001-04-26 13:22:46 sandervl Exp $ */
     1/* $Id: hmmmap.cpp,v 1.18 2001-08-06 16:01:10 sandervl Exp $ */
    22
    33/*
     
    213213  dprintf(("HMDeviceMemMapClass::CloseHandle %x", pHMHandleData->dwUserData));
    214214  if(pHMHandleData->dwUserData == NULL || pHMHandleData->dwInternalType != HMTYPE_MEMMAP) {
    215         dprintf(("MapViewOfFileEx: invalid handle data!"));
     215        dprintf(("HMDeviceMemMapClass::CloseHandle: invalid handle data!"));
    216216        return FALSE;
    217217  }
  • trunk/src/kernel32/initkernel32.cpp

    r6411 r6468  
    6565}
    6666
    67 //Global DLL Data
    68 #pragma data_seg(_GLOBALDATA)
    69 int globLoadNr = 0;
    70 #pragma data_seg()
    71 
    7267       ULONG   flAllocMem = 0;    /* flag to optimize DosAllocMem to use all the memory on SMP machines */
    7368       ULONG   ulMaxAddr = 0x20000000; /* end of user address space. */
     
    8984    APIRET rc;
    9085    ULONG  ulSysinfo, version[2];
    91     static BOOL fInit = FALSE;
    9286   
    9387    /*-------------------------------------------------------------------------*/
     
    9791    /*-------------------------------------------------------------------------*/
    9892
    99     if(fInit == TRUE && ulFlag == 0) {
    100         return 1; //already initialized
    101     }
    102     fInit = TRUE;
    10393    switch (ulFlag)
    10494    {
     
    121111                }
    122112            }
    123 
    124             loadNr = globLoadNr++;
    125113
    126114            strcpy(kernel32Path, OSLibGetDllName(hModule));
  • trunk/src/kernel32/initterm.cpp

    r6417 r6468  
    6060BOOL  fVersionWarp3 = FALSE;
    6161
     62//Global DLL Data
     63#pragma data_seg(_GLOBALDATA)
     64int globLoadNr = 0;
     65#pragma data_seg()
     66
     67static BOOL fInit = FALSE;
     68
    6269/*-------------------------------------------------------------------*/
    6370/* A clean up routine registered with DosExitList must be used if    */
     
    8895    /*-------------------------------------------------------------------------*/
    8996
     97    if(fInit == TRUE && ulFlag == 0) {
     98        return 1; //already initialized
     99    }
     100    fInit = TRUE;
    90101    switch (ulFlag)
    91102    {
     
    147158    HMODULE hModule;
    148159
     160    if(!fInit) {
     161        loadNr = globLoadNr++;
     162    }
    149163    DosQueryModuleHandle("WGSS50", &hModule);
    150164    O32__DLL_InitTerm(hModule, 0);
    151165    DosQueryModuleHandle("KERNEL32", &hModule);
    152     return inittermKernel32(hModule, 0);
     166    return DLLENTRYPOINT_NAME(hModule, 0);
    153167}
    154168//******************************************************************************
  • trunk/src/kernel32/mmap.cpp

    r5815 r6468  
    1 /* $Id: mmap.cpp,v 1.51 2001-05-28 11:26:06 phaller Exp $ */
     1/* $Id: mmap.cpp,v 1.52 2001-08-06 16:01:11 sandervl Exp $ */
    22
    33/*
     
    6666    mSize      = size;
    6767    mProtFlags = fdwProtect;
    68     mProcessId  = GetCurrentProcess();
     68    mProcessId  = GetCurrentProcessId();
    6969
    7070    if(lpszName) {
     
    8989    mSize      = size;
    9090    mProtFlags = PAGE_READWRITE;
    91     mProcessId = GetCurrentProcess();
     91    mProcessId = GetCurrentProcessId();
    9292
    9393    pMapping   = (LPVOID)baseAddress;
     
    104104    {
    105105#if 0
    106         if(DuplicateHandle(mProcessId, hMemFile, GetCurrentProcess(),
     106        if(DuplicateHandle(GetCurrentProcess(), hMemFile, GetCurrentProcess(),
    107107                           &hMemFile, 0, FALSE, DUPLICATE_SAME_ACCESS) == FALSE)
    108108#else
     
    114114        else    dwOdinOptions = DUPLICATE_ACCESS_READWRITE | DUPLICATE_SHARE_DENYNONE;
    115115
    116         if(HMDuplicateHandleOdin(mProcessId, hMemFile, GetCurrentProcess(),
     116        if(HMDuplicateHandleOdin(GetCurrentProcess(), hMemFile, GetCurrentProcess(),
    117117                           &hMemFile, 0, FALSE, DUPLICATE_SAME_ACCESS, dwOdinOptions) == FALSE)
    118118#endif
     
    194194void Win32MemMap::Release()
    195195{
    196 #ifdef DEBUG
    197196    dprintf(("Win32MemMap::Release %s (%d)", lpszMapName, referenced-1));
    198 #endif
    199197    --referenced;
    200198    if(nrMappings == 0 && referenced == 0) {
     
    337335LPVOID Win32MemMap::mapViewOfFile(ULONG size, ULONG offset, ULONG fdwAccess)
    338336{
    339  DWORD processId = GetCurrentProcess();
     337 DWORD processId = GetCurrentProcessId();
    340338
    341339    mapMutex.enter();
     
    551549{
    552550 Win32MemMap *map = memmaps, *nextmap;
    553  DWORD processId = GetCurrentProcess();
     551 DWORD processId = GetCurrentProcessId();
    554552
    555553  //delete all maps created by this process
     
    587585    mSize    = size;
    588586    mOffset  = offset;
    589     mProcessId = GetCurrentProcess();
     587    mProcessId = GetCurrentProcessId();
    590588    pShareViewAddr = NULL;
    591589
  • trunk/src/kernel32/wprocess.cpp

    r6397 r6468  
    1 /* $Id: wprocess.cpp,v 1.131 2001-07-28 18:03:38 sandervl Exp $ */
     1/* $Id: wprocess.cpp,v 1.132 2001-08-06 16:01:11 sandervl Exp $ */
    22
    33/*
     
    139139    //Allocate one dword to store the flat address of our TEB
    140140    if(fMainThread) {
     141        dprintf(("InitializeTIB Process handle %x, id %x", GetCurrentProcess(), GetCurrentProcessId()));
     142
    141143        TIBFlatPtr = (DWORD *)OSLibAllocThreadLocalMemory(1);
    142144        if(TIBFlatPtr == 0) {
     
    16421644    // it is also valid in Win32.
    16431645    DWORD dwError = GetLastError();
    1644     if (ERROR_INVALID_EXE_SIGNATURE != dwError && ERROR_FILE_NOT_FOUND != dwError)
     1646    if (ERROR_INVALID_EXE_SIGNATURE != dwError && ERROR_FILE_NOT_FOUND != dwError && ERROR_ACCESS_DENIED != dwError)
    16451647    {
    16461648        dprintf(("CreateProcess: O32_CreateProcess failed with rc=%d, not PE-executable !",
Note: See TracChangeset for help on using the changeset viewer.