Ignore:
Timestamp:
Oct 25, 2001, 3:19:05 PM (24 years ago)
Author:
sandervl
Message:

No longer use DosError; IOCTL_DISK_GET_DRIVE_GEOMETRY must return ERROR_MEDIA_CHANGED when floppy has been changed

File:
1 edited

Legend:

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

    r7060 r7202  
    1 /* $Id: oslibdos.cpp,v 1.79 2001-10-15 05:51:34 phaller Exp $ */
     1/* $Id: oslibdos.cpp,v 1.80 2001-10-25 13:19:05 sandervl Exp $ */
    22/*
    33 * Wrappers for OS/2 Dos* API
     
    15501550}
    15511551//******************************************************************************
    1552 //******************************************************************************
    1553 void OSLibDosDisableHardError(BOOL fTurnOff)
    1554 {
    1555    DosError((fTurnOff) ? FERR_DISABLEHARDERR : FERR_ENABLEHARDERR);
    1556 }
    1557 //******************************************************************************
    15581552//Returns time spent in kernel & user mode in milliseconds
    15591553//******************************************************************************
     
    21902184  result.achName[0] = 0;
    21912185
    2192   DosError(FERR_DISABLEHARDERR | FERR_DISABLEEXCEPTION);
     2186  ULONG oldmode = SetErrorMode(SEM_FAILCRITICALERRORS_W);
    21932187  APIRET rc = DosFindFirst((PSZ)lpFileName,&hDir,attrs,&result,sizeof(result),&searchCount,FIL_STANDARD);
    2194   //PH: DosError(FERR_ENABLEHARDERR | FERR_ENABLEEXCEPTION);
    21952188
    21962189  //check root: skip "." and ".." (HPFS, not on FAT)
     
    22022195    {
    22032196      result.achName[0] = 0;
    2204       //PH: DosError(FERR_DISABLEHARDERR | FERR_DISABLEEXCEPTION);
    22052197      searchCount = 1;
    22062198      APIRET rc = DosFindNext(hDir,&result,sizeof(result),&searchCount);
    2207       //PH: DosError(FERR_ENABLEHARDERR | FERR_ENABLEEXCEPTION);
    22082199      if (rc)
    22092200      {
     
    22112202        SetLastError(error2WinError(rc));
    22122203
    2213         DosError(FERR_ENABLEHARDERR | FERR_ENABLEEXCEPTION);
     2204        SetErrorMode(oldmode);
    22142205        return INVALID_HANDLE_VALUE_W;
    22152206      }
     
    22182209
    22192210  // enable i/o kernel exceptions again
    2220   DosError(FERR_ENABLEHARDERR | FERR_ENABLEEXCEPTION);
     2211  SetErrorMode(oldmode);
    22212212
    22222213  if(rc)
     
    22432234  result = (FILEFINDBUF3*)malloc(searchCount*sizeof(FILEFINDBUF3));
    22442235
    2245   DosError(FERR_DISABLEHARDERR | FERR_DISABLEEXCEPTION);
     2236  ULONG oldmode = SetErrorMode(SEM_FAILCRITICALERRORS_W);
    22462237  APIRET rc = DosFindFirst((PSZ)lpFileName,&hDir,attrs,result,searchCount*sizeof(FILEFINDBUF3),&searchCount,FIL_STANDARD);
    2247   DosError(FERR_ENABLEHARDERR | FERR_ENABLEEXCEPTION);
     2238  SetErrorMode(oldmode);
    22482239  if (rc)
    22492240  {
     
    23472338   drv[0] = (char)('A' + drive - 1);
    23482339
    2349    DosError(FERR_DISABLEHARDERR);
     2340   ULONG oldmode = SetErrorMode(SEM_FAILCRITICALERRORS_W);
    23502341   rc = DosQueryFSAttach(drv, 1, FSAIL_QUERYNAME, fsinfo, &cb);
    2351    DosError(FERR_ENABLEHARDERR);
     2342   SetErrorMode(oldmode);
    23522343
    23532344   switch(rc) {
     
    23912382 APIRET    rc;
    23922383
    2393    DosError(FERR_DISABLEHARDERR);
     2384   ULONG oldmode = SetErrorMode(SEM_FAILCRITICALERRORS_W);
    23942385   rc = DosQueryFSInfo(drive, FSIL_VOLSER, &fsi, sizeof(fsi));
    2395    DosError(FERR_ENABLEHARDERR);
     2386   SetErrorMode(oldmode);
    23962387
    23972388   switch(rc) {
     
    24402431      diskNum = 0;
    24412432
    2442    DosError(FERR_DISABLEHARDERR);
     2433   ULONG oldmode = SetErrorMode(SEM_FAILCRITICALERRORS_W);
    24432434   rc = DosQueryFSInfo(diskNum, FSIL_ALLOC, &fsAlloc, sizeof(fsAlloc));
    2444    DosError(FERR_ENABLEHARDERR);
     2435   SetErrorMode(oldmode);
    24452436
    24462437   if(rc == 0)
     
    24672458   APIRET rc;
    24682459
     2460   dprintf(("OSLibDosGetDiskGeometry %x %d %x", hDisk, cDisk, pdiskgeom));
    24692461   param[1] = cDisk - 'A';
    24702462   rc = DosDevIOCtl((hDisk) ? hDisk : -1, IOCTL_DISK, DSK_GETDEVICEPARAMS, param, 2, &parsize, &bpb, sizeof(bpb), &datasize);
     
    25092501        return TRUE;
    25102502   }
     2503   dprintf(("OSLibDosGetDiskGeometry: error %d -> %d", rc, error2WinError(rc)));
    25112504   SetLastError(error2WinError(rc));
    25122505   return FALSE;
Note: See TracChangeset for help on using the changeset viewer.