Ignore:
Timestamp:
Jun 9, 1999, 4:44:52 PM (26 years ago)
Author:
phaller
Message:

Fix: experimental HandleManager support to get Winhlp32 running

File:
1 edited

Legend:

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

    r46 r75  
    2929{
    3030  HANDLE rc;
    31   int    slen = 0;
     31  HANDLE hFile;
    3232
    3333  if(lpszName == NULL)
    3434    return(NULL);
    3535
    36   dprintf(("KERNEL32:  CreateFile %s\n", lpszName));
     36  dprintf(("KERNEL32: CreateFile %s\n", lpszName));
    3737
    3838  if(strncmp(lpszName,
     
    4545  }
    4646
    47   dprintf(("KERNEL32:  CreateFile %s %X %X %X %X \n",
     47  dprintf(("KERNEL32: CreateFileA(%s,%08xh,%08xh,%08xh,%08xh,%08xh,%08xh)\n",
    4848           lpszName,
    4949           fdwAccess,
    5050           fdwShareMode,
     51           lpsa,
    5152           fdwCreate,
    52            fdwAttrsAndFlags));
     53           fdwAttrsAndFlags,
     54           hTemplateFile));
    5355
    5456  rc = O32_CreateFile(lpszName,
     
    7072                      hTemplateFile);
    7173
    72   //@@@PH translate handle
    73 
    74   dprintf(("KERNEL32:  CreateFile returned %d\n",
     74  /* @@@PH experimental Handlemanager support */
     75  if (HMHandleAllocate(&hFile,
     76                       rc) == NO_ERROR)
     77    rc = hFile;
     78
     79  dprintf(("KERNEL32:  CreateFile returned %08xh\n",
    7580           rc));
    7681
     
    112117
    113118    dprintf(("KERNEL32: FindFirstFileW: not implemented!!"));
    114     dprintf(("KERNEL32:  FindFirstFileW\n"));
     119
    115120    astring = UnicodeToAsciiString((LPWSTR)arg1);
    116121//    rc = O32_FindFirstFile(astring, arg2);
     
    146151DWORD WIN32API GetFileType(HANDLE file)
    147152{
    148  DWORD rc;
     153  DWORD rc;
     154  HFILE hFile;
    149155
    150156  /* @@@PH 1998/02/12 Handle Manager support */
     
    152158    return (HMGetFileType(file));
    153159
    154   dprintf(("KERNEL32:  GetFileType %d\n", file));
     160  /* @@@PH experimental Handlemanager support */
     161  if (HMHandleTranslateToOS2(file,
     162                       &hFile) == NO_ERROR)
     163    file = hFile;
     164
     165  dprintf(("KERNEL32:  GetFileType %08xh\n",
     166           file));
     167
    155168  rc = O32_GetFileType(file);
    156   if(rc == 0) {//bugfix
    157         rc = 1;
     169  if(rc == 0)
     170  {
     171    //bugfix
     172    rc = 1;
    158173  }
    159   dprintf(("KERNEL32:  GetFileType returned %d\n", rc));
     174
     175  dprintf(("KERNEL32:  GetFileType returned %08xh\n",
     176           rc));
     177
    160178  return(rc);
    161179}
     
    165183                                          BY_HANDLE_FILE_INFORMATION *arg2)
    166184{
    167  DWORD rc;
    168 
     185  DWORD rc;
     186  HFILE hFile;
     187
     188   /* @@@PH experimental Handlemanager support */
     189  if (HMHandleTranslateToOS2(arg1,
     190                       &hFile) == NO_ERROR)
     191    arg1 = hFile;
     192
     193
     194  rc = O32_GetFileInformationByHandle(arg1,
     195                                      arg2);
     196
     197  dprintf(("KERNEL32:  GetFileInformationByHandle (%08xh) returned %08xh\n",
     198           arg1,
     199           rc));
     200
     201  /* @@@PH irrelevant
     202  if(rc == 0)
     203  {
     204    //might be converted _lopen handle, so go get it
     205    //      arg1 = ConvertHandle(arg1);
    169206    rc = O32_GetFileInformationByHandle(arg1, arg2);
    170207    dprintf(("KERNEL32:  GetFileInformationByHandle (%X) returned %d\n", arg1, rc));
    171 
    172     if(rc == 0) {//might be converted _lopen handle, so go get it
    173         //      arg1 = ConvertHandle(arg1);
    174         //@@@PH translate handle
    175         rc = O32_GetFileInformationByHandle(arg1, arg2);
    176         dprintf(("KERNEL32:  GetFileInformationByHandle (%X) returned %d\n", arg1, rc));
    177     }
    178 
    179     return(rc);
     208  }
     209  */
     210
     211  return(rc);
    180212}
    181213//******************************************************************************
     
    183215BOOL WIN32API SetEndOfFile( HANDLE arg1)
    184216{
    185     dprintf(("KERNEL32:  SetEndOfFile\n"));
    186     return O32_SetEndOfFile(arg1);
    187 }
    188 //******************************************************************************
    189 //******************************************************************************
    190 BOOL WIN32API SetFileTime( HANDLE arg1, const FILETIME * arg2, const FILETIME * arg3, const FILETIME *  arg4)
    191 {
    192     dprintf(("KERNEL32:  SetFileTime\n"));
    193     return O32_SetFileTime(arg1, arg2, arg3, arg4);
     217  HFILE hFile;
     218
     219  /* @@@PH experimental Handlemanager support */
     220  if (HMHandleTranslateToOS2(arg1,
     221                       &hFile) == NO_ERROR)
     222    arg1 = hFile;
     223
     224  dprintf(("KERNEL32: SetEndOfFile(%08xh)\n",
     225           arg1));
     226
     227  return O32_SetEndOfFile(arg1);
     228}
     229//******************************************************************************
     230//******************************************************************************
     231BOOL WIN32API SetFileTime(HANDLE          arg1,
     232                          const FILETIME *arg2,
     233                          const FILETIME *arg3,
     234                          const FILETIME *arg4)
     235{
     236  HFILE hFile;
     237
     238  /* @@@PH experimental Handlemanager support */
     239  if (HMHandleTranslateToOS2(arg1,
     240                       &hFile) == NO_ERROR)
     241    arg1 = hFile;
     242
     243  dprintf(("KERNEL32: SetFileTime(%08xh,%08xh,%08xh,%08xh)\n",
     244           arg1,
     245           arg2,
     246           arg3,
     247           arg4));
     248
     249  return O32_SetFileTime(arg1,
     250                         arg2,
     251                         arg3,
     252                         arg4);
    194253}
    195254//******************************************************************************
     
    227286DWORD WIN32API GetFileSize( HANDLE arg1, PDWORD  arg2)
    228287{
    229     dprintf(("KERNEL32:  GetFileSize\n"));
    230     return O32_GetFileSize(arg1, arg2);
     288  HFILE hFile;
     289
     290  /* @@@PH experimental Handlemanager support */
     291  if (HMHandleTranslateToOS2(arg1,
     292                       &hFile) == NO_ERROR)
     293    arg1 = hFile;
     294
     295  dprintf(("KERNEL32: GetFileSize (%08xh, %08xh)\n",
     296           arg1,
     297           arg2));
     298
     299  return O32_GetFileSize(arg1,
     300                         arg2);
    231301}
    232302//******************************************************************************
     
    298368//******************************************************************************
    299369//******************************************************************************
    300 BOOL WIN32API ReadFile( HANDLE arg1, PVOID arg2, DWORD arg3, PDWORD arg4, LPOVERLAPPED  arg5)
    301 {
    302  BOOL rc;
     370BOOL WIN32API ReadFile(HANDLE arg1,
     371                       PVOID  arg2,
     372                       DWORD  arg3,
     373                       PDWORD arg4,
     374                       LPOVERLAPPED  arg5)
     375{
     376  BOOL rc;
     377  HFILE hFile;
    303378
    304379  /* @@@PH 1998/02/12 Handle Manager support */
     
    306381    return (HMReadFile(arg1, arg2, arg3, arg4, arg5));
    307382
    308   rc = O32_ReadFile(arg1, arg2, arg3, arg4, arg5);
    309   dprintf(("KERNEL32:  ReadFile %X %d bytes returned %d\n", arg1, arg3, rc));
     383  /* @@@PH 1999/06/09 Handle Manager support */
     384
     385  /* @@@PH experimental Handlemanager support */
     386  if (HMHandleTranslateToOS2(arg1,
     387                       &hFile) == NO_ERROR)
     388    arg1 = hFile;
     389
     390  rc = O32_ReadFile(arg1,
     391                    arg2,
     392                    arg3,
     393                    arg4,
     394                    arg5);
     395
     396  dprintf(("KERNEL32:  ReadFile %X %d bytes returned %d\n",
     397           arg1,
     398           arg3,
     399           rc));
     400
    310401  return(rc);
    311402}
     
    317408                              DWORD  dwMoveMethod)
    318409{
    319 ////  dprintf(("KERNEL32:  SetFilePointer\n"));
    320 
    321   //@@@PH translate handle
    322 
     410  HANDLE hFile2;
     411
     412//  dprintf(("KERNEL32:  SetFilePointer\n"));
     413
     414  /* @@@PH experimental Handlemanager support */
     415  if (HMHandleTranslateToOS2(hFile,
     416                       &hFile2) == NO_ERROR)
     417    hFile = hFile2;
    323418
    324419  return(O32_SetFilePointer(hFile,
    325                         lDistanceToMove,
    326                         lpDistanceToMoveHigh,
    327                         dwMoveMethod));
     420                            lDistanceToMove,
     421                            lpDistanceToMoveHigh,
     422                            dwMoveMethod));
    328423}
    329424//******************************************************************************
     
    335430                           LPOVERLAPPED lpOverlapped)
    336431{
    337   BOOL rc;
     432  BOOL   rc;
     433  HANDLE hFile2;
    338434
    339435  //@@@PH translate handle
     
    352448                        nrbyteswritten,
    353449                        lpOverlapped));
     450
     451  /* @@@PH experimental Handlemanager support */
     452  if (HMHandleTranslateToOS2(hFile,
     453                       &hFile2) == NO_ERROR)
     454    hFile = hFile2;
     455
    354456
    355457  rc = O32_WriteFile(hFile, buffer, nrbytes, nrbyteswritten, (LPOVERLAPPED)lpOverlapped);
     
    476578//******************************************************************************
    477579//******************************************************************************
    478 BOOL WIN32API LockFile( HANDLE arg1, DWORD arg2, DWORD arg3, DWORD arg4, DWORD  arg5)
    479 {
    480     dprintf(("KERNEL32:  LockFile\n"));
    481     return O32_LockFile(arg1, arg2, arg3, arg4, arg5);
     580BOOL WIN32API LockFile(HANDLE arg1,
     581                       DWORD  arg2,
     582                       DWORD  arg3,
     583                       DWORD  arg4,
     584                       DWORD  arg5)
     585{
     586  HFILE hFile;
     587
     588  /* @@@PH experimental Handlemanager support */
     589  if (HMHandleTranslateToOS2(arg1,
     590                       &hFile) == NO_ERROR)
     591    arg1 = hFile;
     592
     593  dprintf(("KERNEL32: LockFile (%08xh,%08xh,%08xh,%08xh,%08xh)\n",
     594           arg1,
     595           arg2,
     596           arg3,
     597           arg4,
     598           arg5));
     599
     600  return O32_LockFile(arg1,
     601                      arg2,
     602                      arg3,
     603                      arg4,
     604                      arg5);
    482605}
    483606
     
    501624
    502625BOOL WIN32API LockFileEx(HANDLE       hFile,
    503                             DWORD        dwFlags,
    504                             DWORD        dwReserved,
    505                             DWORD        nNumberOfBytesToLockLow,
    506                             DWORD        nNumberOfBytesToLockHigh,
    507                             LPOVERLAPPED LPOVERLAPPED)
    508 {
     626                         DWORD        dwFlags,
     627                         DWORD        dwReserved,
     628                         DWORD        nNumberOfBytesToLockLow,
     629                         DWORD        nNumberOfBytesToLockHigh,
     630                         LPOVERLAPPED LPOVERLAPPED)
     631{
     632  HFILE hFile2;
     633
     634  /* @@@PH experimental Handlemanager support */
     635  if (HMHandleTranslateToOS2(hFile,
     636                       &hFile2) == NO_ERROR)
     637    hFile = hFile2;
     638
    509639  dprintf(("Kernel32: LockFileEx(%08xh,%08xh,%08xh,%08xh,%08xh,%08xh)\n",
    510640           hFile,
     
    593723                   arg2,
    594724                   arg3);
     725
     726  /* @@@PH 1999/06/09 HandleManager support temporarily disabled */
    595727  if (hFile != 0)                                /* check if handle is valid */
    596728  {
     
    598730                         hFile) == NO_ERROR)
    599731      return (ulWindowsHandle);
    600     else
    601       return (0);
    602732  }
    603   else
    604     return (0);
    605 }
    606 //******************************************************************************
    607 //******************************************************************************
    608 BOOL WIN32API UnlockFile( HANDLE arg1, DWORD arg2, DWORD arg3, DWORD arg4, DWORD  arg5)
    609 {
    610     dprintf(("KERNEL32:  UnlockFile\n"));
    611     return O32_UnlockFile(arg1, arg2, arg3, arg4, arg5);
     733
     734  return (hFile);
     735}
     736//******************************************************************************
     737//******************************************************************************
     738BOOL WIN32API UnlockFile(HANDLE arg1,
     739                         DWORD  arg2,
     740                         DWORD  arg3,
     741                         DWORD  arg4,
     742                         DWORD  arg5)
     743{
     744  HFILE hFile2;
     745
     746  /* @@@PH experimental Handlemanager support */
     747  if (HMHandleTranslateToOS2(arg1,
     748                       &hFile2) == NO_ERROR)
     749    arg1 = hFile2;
     750
     751  dprintf(("KERNEL32: UnlockFile(%08xh,%08xh,%08xh,%08xh,%08xh)\n",
     752           arg1,
     753           arg2,
     754           arg3,
     755           arg4,
     756           arg5));
     757
     758  return O32_UnlockFile(arg1,
     759                        arg2,
     760                        arg3,
     761                        arg4,
     762                        arg5);
    612763}
    613764
     
    630781
    631782BOOL WIN32API UnlockFileEx(HANDLE       hFile,
    632                               DWORD        dwReserved,
    633                               DWORD        nNumberOfBytesToLockLow,
    634                               DWORD        nNumberOfBytesToLockHigh,
    635                               LPOVERLAPPED LPOVERLAPPED)
    636 {
     783                           DWORD        dwReserved,
     784                           DWORD        nNumberOfBytesToLockLow,
     785                           DWORD        nNumberOfBytesToLockHigh,
     786                           LPOVERLAPPED LPOVERLAPPED)
     787{
     788  HFILE hFile2;
     789
     790  /* @@@PH experimental Handlemanager support */
     791  if (HMHandleTranslateToOS2(hFile,
     792                       &hFile2) == NO_ERROR)
     793    hFile = hFile2;
     794
    637795  dprintf(("Kernel32: UnlockFileEx(%08xh,%08xh,%08xh,%08xh,%08xh,%08xh)\n",
    638796           hFile,
     
    692850BOOL WIN32API FindNextChangeNotification(HANDLE hChange)
    693851{
    694   dprintf(("KERNEL32:  FindNextChangeNotification, Not implemented\n"));
     852  dprintf(("KERNEL32: FindNextChangeNotification (%08xh), Not implemented\n",
     853           hChange));
     854
    695855  return(0);
    696856}
     
    718878
    719879DWORD WIN32API GetCompressedFileSizeA(LPCTSTR  lpFileName,
    720                                          LPDWORD  lpFileSizeHigh)
     880                                      LPDWORD  lpFileSizeHigh)
    721881{
    722882  dprintf(("KERNEL32: GetCompressedFileSizeA (%s, %08xh) not implemented.\n",
Note: See TracChangeset for help on using the changeset viewer.