Ignore:
Timestamp:
Jan 10, 2003, 1:57:14 PM (23 years ago)
Author:
sandervl
Message:

implemented Get/SetHandleInformation; CloseHandle change for HANDLE_FLAG_PROTECT_FROM_CLOSE; inheritance support added to DuplicateHandle

File:
1 edited

Legend:

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

    r9530 r9653  
    1 /* $Id: oslibdos.cpp,v 1.110 2002-12-19 12:55:27 sandervl Exp $ */
     1/* $Id: oslibdos.cpp,v 1.111 2003-01-10 12:57:13 sandervl Exp $ */
    22/*
    33 * Wrappers for OS/2 Dos* API
     
    430430 HFILE  hFile;
    431431 ULONG  ulAction;
    432  DWORD  os2flags = OPEN_FLAGS_NOINHERIT;
     432 DWORD  os2flags = OPEN_FLAGS_NOINHERIT; //default is not inherited by child processes
    433433 char lOemFileName[260];
    434434
     
    843843   ULONG   fileAttr = FILE_NORMAL;
    844844   ULONG   openFlag = 0;
    845    ULONG   openMode = 0;
     845   ULONG   openMode = OPEN_FLAGS_NOINHERIT; //default is not inherited by child processes
    846846   APIRET  rc = ERROR_NOT_ENOUGH_MEMORY;;
    847847
     
    10201020   ULONG   fileAttr = FILE_NORMAL;
    10211021   ULONG   openFlag = 0;
    1022    ULONG   openMode = 0;
     1022   ULONG   openMode = OPEN_FLAGS_NOINHERIT; //default is not inherited by child processes
    10231023   APIRET  rc = ERROR_NOT_ENOUGH_MEMORY;
    10241024   HFILE   hFile;
     
    14711471}
    14721472//******************************************************************************
     1473//******************************************************************************
     1474DWORD OSLibDosSetFHState(DWORD hFile, DWORD dwFlags)
     1475{
     1476   DWORD  ulMode;
     1477   APIRET rc;
     1478   
     1479   rc = DosQueryFHState(hFile, &ulMode);
     1480   if(rc != NO_ERROR) return error2WinError(rc);
     1481
     1482   //turn off non-participating bits
     1483   ulMode &= 0x7F88;
     1484
     1485   if(dwFlags & HANDLE_FLAG_INHERIT_W) {
     1486       ulMode &= ~OPEN_FLAGS_NOINHERIT;
     1487   }
     1488   else
     1489       ulMode |= OPEN_FLAGS_NOINHERIT;
     1490
     1491   rc = DosSetFHState(hFile, ulMode);
     1492   return error2WinError(rc);
     1493}
     1494//******************************************************************************
    14731495//Returns time spent in kernel & user mode in milliseconds
    14741496//******************************************************************************
     
    15151537                               DWORD   nDefaultTimeOut,
    15161538                               LPSECURITY_ATTRIBUTES lpSecurityAttributes)
    1517 {  DWORD dwOS2Mode     = 0;
     1539{  DWORD dwOS2Mode     = NP_NOINHERIT; //default is not inherited by child processes
    15181540   DWORD dwOS2PipeMode = 0;
    15191541   LPSTR lpOS2Name;
     
    15741596  rc = DosOpen(lpOS2Name, &hPipe, &ulAction, 0, FILE_NORMAL, FILE_OPEN,
    15751597               ((dwOpenMode & PIPE_ACCESS_INBOUND_W) ? OPEN_ACCESS_READWRITE : OPEN_ACCESS_READONLY) |
    1576                OPEN_SHARE_DENYNONE, NULL);
     1598               OPEN_SHARE_DENYNONE | OPEN_FLAGS_NOINHERIT, NULL);
    15771599
    15781600  if(rc == NO_ERROR) {
     
    16461668  ULONG rc, ulAction;
    16471669  ULONG openFlag = 0;
    1648   ULONG openMode = 0;
     1670  ULONG openMode = OPEN_FLAGS_NOINHERIT; //default is not inherited by child processes
    16491671
    16501672
     
    26092631        if (DosOpen("\\DEV\\CD-ROM2$", &hCDRom2, &ulAction, 0,
    26102632                    FILE_NORMAL, OPEN_ACTION_OPEN_IF_EXISTS,
    2611                     OPEN_SHARE_DENYNONE | OPEN_ACCESS_READONLY, NULL)
     2633                    OPEN_SHARE_DENYNONE | OPEN_ACCESS_READONLY | OPEN_FLAGS_NOINHERIT, NULL)
    26122634            == NO_ERROR)
    26132635        {
     
    28642886        if (DosOpen("\\DEV\\CD-ROM2$", &hCDRom2, &ulAction, 0,
    28652887                    FILE_NORMAL, OPEN_ACTION_OPEN_IF_EXISTS,
    2866                     OPEN_SHARE_DENYNONE | OPEN_ACCESS_READONLY, NULL)
     2888                    OPEN_SHARE_DENYNONE | OPEN_ACCESS_READONLY | OPEN_FLAGS_NOINHERIT, NULL)
    28672889            == NO_ERROR)
    28682890        {
Note: See TracChangeset for help on using the changeset viewer.