Ignore:
Timestamp:
Dec 5, 2001, 3:16:38 PM (24 years ago)
Author:
sandervl
Message:

preliminary changes for new overlapped io framework

File:
1 edited

Legend:

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

    r7532 r7549  
    1 /* $Id: HandleManager.cpp,v 1.82 2001-12-03 12:13:06 sandervl Exp $ */
     1/* $Id: HandleManager.cpp,v 1.83 2001-12-05 14:15:56 sandervl Exp $ */
    22
    33/*
     
    268268        TabWin32Handles[ulLoop].hmHandleData.dwUserData     = 0;
    269269        TabWin32Handles[ulLoop].hmHandleData.dwInternalType = HMTYPE_UNKNOWN;
     270        TabWin32Handles[ulLoop].hmHandleData.hWin32Handle   = (HANDLE)ulLoop;
    270271        TabWin32Handles[ulLoop].hmHandleData.lpDeviceData   = NULL;
    271272        handleMutex.leave();
     
    845846  /* initialize the complete HMHANDLEDATA structure */
    846847  pHMHandleData = &TabWin32Handles[hHandle].hmHandleData;
    847   pHMHandleData->dwType     = FILE_TYPE_CHAR;
    848848  pHMHandleData->dwAccess   = 0;
    849849  pHMHandleData->dwShare    = 0;
     
    916916  /* initialize the complete HMHANDLEDATA structure */
    917917  pHMHandleData                = &TabWin32Handles[iIndexNew].hmHandleData;
    918   pHMHandleData->dwType        = TabWin32Handles[srchandle].hmHandleData.dwType;
    919918  if (fdwOptions & DUPLICATE_SAME_ACCESS)
    920     pHMHandleData->dwAccess    = TabWin32Handles[srchandle].hmHandleData.dwAccess;
     919      pHMHandleData->dwAccess    = TabWin32Handles[srchandle].hmHandleData.dwAccess;
    921920  else
    922     pHMHandleData->dwAccess    = fdwAccess;
     921      pHMHandleData->dwAccess    = fdwAccess;
    923922
    924923  if((fdwOdinOptions & DUPLICATE_ACCESS_READWRITE) == DUPLICATE_ACCESS_READWRITE) {
    925   pHMHandleData->dwAccess = GENERIC_READ | GENERIC_WRITE;
     924      pHMHandleData->dwAccess = GENERIC_READ | GENERIC_WRITE;
    926925  }
    927926  else
    928927  if(fdwOdinOptions & DUPLICATE_ACCESS_READ) {
    929   pHMHandleData->dwAccess = GENERIC_READ;
     928      pHMHandleData->dwAccess = GENERIC_READ;
    930929  }
    931930
    932931  if(fdwOdinOptions & DUPLICATE_SHARE_READ) {
    933   pHMHandleData->dwShare = FILE_SHARE_READ;
     932      pHMHandleData->dwShare = FILE_SHARE_READ;
    934933  }
    935934  else
    936935  if(fdwOdinOptions & DUPLICATE_SHARE_DENYNONE) {
    937   pHMHandleData->dwShare = FILE_SHARE_READ | FILE_SHARE_WRITE;
     936      pHMHandleData->dwShare = FILE_SHARE_READ | FILE_SHARE_WRITE;
    938937  }
    939938  else  pHMHandleData->dwShare = TabWin32Handles[srchandle].hmHandleData.dwShare;
     
    10691068  else
    10701069  {
    1071     HMHandleTemp.dwType     = FILE_TYPE_UNKNOWN;      /* unknown handle type */
    10721070    HMHandleTemp.dwAccess   = dwDesiredAccess;
    10731071    HMHandleTemp.dwShare    = dwShareMode;
     
    10891087         sizeof(HMHANDLEDATA));
    10901088
    1091   rc = pDeviceHandler->CreateFile((HANDLE)iIndexNew, lpFileName,     /* call the device handler */
     1089  rc = pDeviceHandler->CreateFile(lpFileName,     /* call the device handler */
    10921090                                  &HMHandleTemp,
    10931091                                  lpSecurityAttributes,
     
    12151213  }
    12161214
    1217 
    1218                            /* initialize the complete HMHANDLEDATA structure */
     1215  /* initialize the complete HMHANDLEDATA structure */
    12191216  pHMHandleData = &TabWin32Handles[iIndexNew].hmHandleData;
    1220   pHMHandleData->dwType     = FILE_TYPE_UNKNOWN;      /* unknown handle type */
    12211217
    12221218  FILE_ConvertOFMode(fuMode,                                 /* map OF_flags */
     
    12311227  pHMHandleData->lpDeviceData  = pDevData;
    12321228
    1233       /* we've got to mark the handle as occupied here, since another device */
    1234                    /* could be created within the device handler -> deadlock */
    1235 
    1236           /* write appropriate entry into the handle table if open succeeded */
     1229  /* we've got to mark the handle as occupied here, since another device */
     1230  /* could be created within the device handler -> deadlock */
     1231
     1232  /* write appropriate entry into the handle table if open succeeded */
    12371233  TabWin32Handles[iIndexNew].hmHandleData.hHMHandle = iIndexNew;
    12381234  TabWin32Handles[iIndexNew].pDeviceHandler         = pDeviceHandler;
    12391235
    1240   rc = pDeviceHandler->OpenFile  ((HANDLE)iIndexNew,  lpFileName,     /* call the device handler */
    1241                                   &TabWin32Handles[iIndexNew].hmHandleData,
    1242                                   pOFStruct,
    1243                                   fuMode);
     1236  rc = pDeviceHandler->OpenFile(lpFileName,     /* call the device handler */
     1237                                &TabWin32Handles[iIndexNew].hmHandleData,
     1238                                pOFStruct,
     1239                                fuMode);
    12441240
    12451241#ifdef DEBUG_LOCAL
     
    13561352                DWORD        nNumberOfBytesToRead,
    13571353                LPDWORD      lpNumberOfBytesRead,
    1358                 LPOVERLAPPED lpOverlapped)
     1354                LPOVERLAPPED lpOverlapped,
     1355                LPOVERLAPPED_COMPLETION_ROUTINE  lpCompletionRoutine)
    13591356{
    13601357  int       iIndex;                           /* index into the handle table */
     
    13751372                                                nNumberOfBytesToRead,
    13761373                                                lpNumberOfBytesRead,
    1377                                                 lpOverlapped);
    1378 
    1379   return (fResult);                                   /* deliver return code */
    1380 }
    1381 /*****************************************************************************
    1382  * Name      : HANDLE  HMReadFileEx
    1383  * Purpose   : Wrapper for the ReadFileEx() API
    1384  * Parameters:
    1385  * Variables :
    1386  * Result    :
    1387  * Remark    :
    1388  * Status    :
    1389  *
    1390  * Author    : SvL
    1391  *****************************************************************************/
    1392 BOOL HMReadFileEx(HANDLE                     hFile,
    1393                   LPVOID                     lpBuffer,
    1394                   DWORD                      nNumberOfBytesToRead,
    1395                   LPOVERLAPPED               lpOverlapped,
    1396                   LPOVERLAPPED_COMPLETION_ROUTINE  lpCompletionRoutine)
    1397 {
    1398   int       iIndex;                           /* index into the handle table */
    1399   BOOL      fResult;       /* result from the device handler's CloseHandle() */
    1400   PHMHANDLE pHMHandle;       /* pointer to the handle structure in the table */
    1401 
    1402                                                           /* validate handle */
    1403   iIndex = _HMHandleQuery(hFile);                           /* get the index */
    1404   if (-1 == iIndex)                                               /* error ? */
    1405   {
    1406     SetLastError(ERROR_INVALID_HANDLE);       /* set win32 error information */
    1407     return (FALSE);                                        /* signal failure */
    1408   }
    1409 
    1410   pHMHandle = &TabWin32Handles[iIndex];               /* call device handler */
    1411   fResult = pHMHandle->pDeviceHandler->ReadFileEx(&pHMHandle->hmHandleData,
    1412                                                   lpBuffer,
    1413                                                   nNumberOfBytesToRead,
    1414                                                   lpOverlapped,
    1415                                                   lpCompletionRoutine);
     1374                                                lpOverlapped, lpCompletionRoutine);
    14161375
    14171376  return (fResult);                                   /* deliver return code */
     
    14341393                 DWORD        nNumberOfBytesToWrite,
    14351394                 LPDWORD      lpNumberOfBytesWritten,
    1436                  LPOVERLAPPED lpOverlapped)
     1395                 LPOVERLAPPED lpOverlapped,
     1396                 LPOVERLAPPED_COMPLETION_ROUTINE  lpCompletionRoutine)
    14371397{
    14381398  int       iIndex;                           /* index into the handle table */
     
    14531413                                                 nNumberOfBytesToWrite,
    14541414                                                 lpNumberOfBytesWritten,
    1455                                                  lpOverlapped);
    1456 
    1457   return (fResult);                                   /* deliver return code */
    1458 }
    1459 
    1460 /*****************************************************************************
    1461  * Name      : HANDLE  HMWriteFileEx
    1462  * Purpose   : Wrapper for the WriteFileEx() API
    1463  * Parameters:
    1464  * Variables :
    1465  * Result    :
    1466  * Remark    :
    1467  * Status    :
    1468  *
    1469  * Author    : SvL
    1470  *****************************************************************************/
    1471 BOOL HMWriteFileEx(HANDLE                     hFile,
    1472                    LPVOID                     lpBuffer,
    1473                    DWORD                      nNumberOfBytesToWrite,
    1474                    LPOVERLAPPED               lpOverlapped,
    1475                    LPOVERLAPPED_COMPLETION_ROUTINE  lpCompletionRoutine)
    1476 {
    1477   int       iIndex;                           /* index into the handle table */
    1478   BOOL      fResult;       /* result from the device handler's CloseHandle() */
    1479   PHMHANDLE pHMHandle;       /* pointer to the handle structure in the table */
    1480 
    1481                                                           /* validate handle */
    1482   iIndex = _HMHandleQuery(hFile);                           /* get the index */
    1483   if (-1 == iIndex)                                               /* error ? */
    1484   {
    1485     SetLastError(ERROR_INVALID_HANDLE);       /* set win32 error information */
    1486     return (FALSE);                                        /* signal failure */
    1487   }
    1488 
    1489   pHMHandle = &TabWin32Handles[iIndex];               /* call device handler */
    1490   fResult = pHMHandle->pDeviceHandler->WriteFileEx(&pHMHandle->hmHandleData,
    1491                                                    lpBuffer,
    1492                                                    nNumberOfBytesToWrite,
    1493                                                    lpOverlapped,
    1494                                                    lpCompletionRoutine);
     1415                                                 lpOverlapped, lpCompletionRoutine);
    14951416
    14961417  return (fResult);                                   /* deliver return code */
     
    23462267  /* Initialize the complete HMHANDLEDATA structure */
    23472268  pHMHandleData = &TabWin32Handles[iIndexNew].hmHandleData;
    2348   pHMHandleData->dwType     = FILE_TYPE_UNKNOWN;      /* unknown handle type */
    23492269  pHMHandleData->dwAccess   = 0;
    23502270  pHMHandleData->dwShare    = 0;
     
    24242344                           /* initialize the complete HMHANDLEDATA structure */
    24252345  pHMHandleData = &TabWin32Handles[iIndexNew].hmHandleData;
    2426   pHMHandleData->dwType     = FILE_TYPE_UNKNOWN;      /* unknown handle type */
    24272346  pHMHandleData->dwAccess   = 0;
    24282347  pHMHandleData->dwShare    = 0;
     
    24922411                           /* initialize the complete HMHANDLEDATA structure */
    24932412  pHMHandleData = &TabWin32Handles[iIndexNew].hmHandleData;
    2494   pHMHandleData->dwType     = FILE_TYPE_UNKNOWN;      /* unknown handle type */
    24952413  pHMHandleData->dwAccess   = fdwAccess;
    24962414  pHMHandleData->dwShare    = 0;
     
    25592477                           /* initialize the complete HMHANDLEDATA structure */
    25602478  pHMHandleData = &TabWin32Handles[iIndexNew].hmHandleData;
    2561   pHMHandleData->dwType     = FILE_TYPE_UNKNOWN;      /* unknown handle type */
    25622479  pHMHandleData->dwAccess   = fdwAccess;
    25632480  pHMHandleData->dwShare    = 0;
     
    26362553                           /* initialize the complete HMHANDLEDATA structure */
    26372554  pHMHandleData = &TabWin32Handles[iIndexNew].hmHandleData;
    2638   pHMHandleData->dwType     = FILE_TYPE_UNKNOWN;      /* unknown handle type */
    26392555  pHMHandleData->dwAccess   = 0;
    26402556  pHMHandleData->dwShare    = 0;
     
    27052621                           /* initialize the complete HMHANDLEDATA structure */
    27062622  pHMHandleData = &TabWin32Handles[iIndexNew].hmHandleData;
    2707   pHMHandleData->dwType     = FILE_TYPE_UNKNOWN;      /* unknown handle type */
    27082623  pHMHandleData->dwAccess   = fdwAccess;
    27092624  pHMHandleData->dwShare    = 0;
     
    28122727                           /* initialize the complete HMHANDLEDATA structure */
    28132728  pHMHandleData = &TabWin32Handles[iIndexNew].hmHandleData;
    2814   pHMHandleData->dwType     = FILE_TYPE_UNKNOWN;      /* unknown handle type */
    28152729  pHMHandleData->dwAccess   = 0;
    28162730  pHMHandleData->dwShare    = 0;
     
    28902804  /* initialize the complete HMHANDLEDATA structure */
    28912805  pHMHandleData = &TabWin32Handles[iIndexNew].hmHandleData;
    2892   pHMHandleData->dwType     = FILE_TYPE_UNKNOWN;      /* unknown handle type */
    28932806  pHMHandleData->dwAccess   = fdwAccess;
    28942807  pHMHandleData->dwShare    = 0;
     
    38783791  /* initialize the complete HMHANDLEDATA structure */
    38793792  pHMHandleData = &TabWin32Handles[iIndexNew].hmHandleData;
    3880   pHMHandleData->dwType     = FILE_TYPE_UNKNOWN;      /* unknown handle type */
    38813793  pHMHandleData->dwAccess   = DesiredAccess;
    38823794  pHMHandleData->dwShare    = 0;
     
    39463858  /* initialize the complete HMHANDLEDATA structure */
    39473859  pHMHandleData = &TabWin32Handles[iIndexNew].hmHandleData;
    3948   pHMHandleData->dwType     = FILE_TYPE_UNKNOWN;      /* unknown handle type */
    39493860  pHMHandleData->dwAccess   = DesiredAccess;
    39503861  pHMHandleData->dwShare    = 0;
     
    40183929  /* initialize the complete HMHANDLEDATA structure */
    40193930  pHMHandleData = &TabWin32Handles[iIndexNew].hmHandleData;
    4020   pHMHandleData->dwType     = FILE_TYPE_UNKNOWN;      /* unknown handle type */
    40213931  pHMHandleData->dwAccess   = 0;
    40223932  pHMHandleData->dwShare    = 0;
     
    44114321  /* initialize the complete HMHANDLEDATA structure */
    44124322  pHMHandleData = &TabWin32Handles[iIndexNew].hmHandleData;
    4413   pHMHandleData->dwType     = FILE_TYPE_PIPE;
    44144323  pHMHandleData->dwAccess   = 0;
    44154324  pHMHandleData->dwShare    = 0;
     
    47214630  /* initialize the complete HMHANDLEDATA structure */
    47224631  pHMHandleData = &TabWin32Handles[iIndexNewRead].hmHandleData;
    4723   pHMHandleData->dwType     = FILE_TYPE_PIPE;
    47244632  pHMHandleData->dwAccess   = 0;
    47254633  pHMHandleData->dwShare    = 0;
     
    47374645  /* initialize the complete HMHANDLEDATA structure */
    47384646  pHMHandleData = &TabWin32Handles[iIndexNewWrite].hmHandleData;
    4739   pHMHandleData->dwType     = FILE_TYPE_PIPE;
    47404647  pHMHandleData->dwAccess   = 0;
    47414648  pHMHandleData->dwShare    = 0;
     
    48044711  /* initialize the complete HMHANDLEDATA structure */
    48054712  pHMHandleData = &TabWin32Handles[iIndexNew].hmHandleData;
    4806   pHMHandleData->dwType     = FILE_TYPE_UNKNOWN;
    48074713  pHMHandleData->dwAccess   = 0;
    48084714  pHMHandleData->dwShare    = 0;
Note: See TracChangeset for help on using the changeset viewer.