Context Navigation


Changeset 120


Ignore:
Timestamp:
Aug 21, 2016, 9:59:12 AM (9 years ago)
Author:
Valery V. Sedletski
Message:

ufat32.dll: Make CHKDSK to set volume clean.

Location:
branches/fat32-0.10/src/ufat32
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • branches/fat32-0.10/src/ufat32/chkdsk.c

    r118 r120
    7474VOID GetCaseConversion( PUCHAR pCase );
    7575VOID Translate2OS2(PUSHORT pusUni, PSZ pszName, USHORT usLen);
    76(追記) (追記ここまで)
    77(追記) void remount_media (HFILE hDevice); (追記ここまで)
    7678
    7779INT cdecl iShowMessage(PCDINFO pCD, USHORT usNr, USHORT usNumFields, ...);
    523525 ulDataSize = nSectors * SECTOR_SIZE;
    524526
    527(追記) //if (pVolInfo->fWriteProtected) (追記ここまで)
    528(追記) // return ERROR_WRITE_PROTECT; (追記ここまで)
    529(追記) (追記ここまで)
    530(追記) //if (pVolInfo->fDiskClean) (追記ここまで)
    531(追記) // MarkDiskStatus(pVolInfo, FALSE); (追記ここまで)
    532(追記) (追記ここまで)
    525533 if ( (rc = DosDevIOCtl(pCD->hDisk, IOCTL_DISK, DSK_GETDEVICEPARAMS,
    526534 &parm2, parmlen2, &parmlen2, &bpb, datalen2, &datalen2)) )
    675683 if (pCD->DiskInfo.avail_clusters != pCD->ulFreeClusters)
    676684 {
    685(追記) printf("pCD->DiskInfo.avail_clusters=%lu\n", pCD->DiskInfo.avail_clusters); (追記ここまで)
    686(追記) printf("pCD->ulFreeClusters=%lu\n", pCD->ulFreeClusters); (追記ここまで)
    677687 printf("The stored free disk space is incorrect.\n");
    678688 printf("(%lu free allocation units are reported while %lu free units are detected.)\n",
    754764 printf("Still errors found on disk. Please run Windows 95 ScanDisk!\n");
    755765 }
    756 //else if (pCD->fFix)
    766 else if (pCD->fFix)
    767 {
    757768 //DosDevIOCtl(NULL, NULL, FAT32_MARKVOLCLEAN, IOCTL_FAT32, pCD->hDisk);
    758769 //DosDevIOCtl(pCD->hDisk, IOCTL_FAT32, FAT32_MARKVOLCLEAN,
    759770 // NULL, 0, NULL, NULL, 0, NULL);
    771(追記) MarkDiskStatus(pCD, TRUE); (追記ここまで)
    772(追記) remount_media(pCD->hDisk); (追記ここまで)
    773(追記) } (追記ここまで)
    760774
    761775 return 0;
  • branches/fat32-0.10/src/ufat32/fatfunc.c

    r117 r120
    120120ULONG GetNextCluster2(PCDINFO pCD, ULONG ulCluster);
    121121BOOL GetDiskStatus(PCDINFO pCD);
    122ULONG GetFreeSpace(PCDINFO p(削除) VolInfo (削除ここまで));
    122ULONG GetFreeSpace(PCDINFO p(追記) CD (追記ここまで));
    123123BOOL MarkDiskStatus(PCDINFO pCD, BOOL fClean);
    124124ULONG FindDirCluster(PCDINFO pCD, PSZ pDir, USHORT usCurDirEnd, USHORT usAttrWanted, PSZ *pDirEnd);
    154154BOOL LoadTranslateTable(VOID);
    155155VOID GetCaseConversion( PUCHAR pCase );
    156(追記) BOOL UpdateFSInfo(PCDINFO pCD); (追記ここまで)
    156157
    157158/******************************************************************
    290291 {
    291292 pCD->FSInfo.ulFreeClusters = ulTotalFree;
    292 (削除) /* UpdateFSInfo(pVolInfo); * (削除ここまで)/
    293 (追記) UpdateFSInfo(pCD); /// (追記ここまで)/
    293294 }
    294295
    16241625 return FAT_EOF;
    16251626
    1626/*
    1627 if (fUpdateFSInfo)
    1628 UpdateFSInfo(pVolInfo);
    1629*/
    1627 if (fUpdateFSInfo) ////
    1628 UpdateFSInfo(pCD);
    16301629
    16311630 return ulReturn;
    20502049
    20512050 pCD->FSInfo.ulFreeClusters += ulClustersFreed;
    2052(削除) /* UpdateFSInfo(pVolInfo);* (削除ここまで)/
    2051(追記) UpdateFSInfo(pCD); /// (追記ここまで)/
    20532052
    20542053 //ReleaseFat(pVolInfo);
    24332432 memcpy( pCase, rgLCase, sizeof( rgLCase ));
    24342433}
    2434(追記) (追記ここまで)
    2435(追記) /****************************************************************** (追記ここまで)
    2436(追記) * (追記ここまで)
    2437(追記) ******************************************************************/ (追記ここまで)
    2438(追記) BOOL UpdateFSInfo(PCDINFO pCD) (追記ここまで)
    2439(追記) { (追記ここまで)
    2440(追記) static BYTE bSector[SECTOR_SIZE] = ""; (追記ここまで)
    2441(追記) (追記ここまで)
    2442(追記) //if (f32Parms.fMessageActive & LOG_FUNCS) (追記ここまで)
    2443(追記) // Message("UpdateFSInfo"); (追記ここまで)
    2444(追記) (追記ここまで)
    2445(追記) //if (pCD->fFormatInProgress) (追記ここまで)
    2446(追記) // return FALSE; (追記ここまで)
    2447(追記) (追記ここまで)
    2448(追記) //if (pCD->fWriteProtected) (追記ここまで)
    2449(追記) // return TRUE; (追記ここまで)
    2450(追記) (追記ここまで)
    2451(追記) if (pCD->BootSect.bpb.FSinfoSec == 0xFFFF) (追記ここまで)
    2452(追記) return TRUE; (追記ここまで)
    2453(追記) (追記ここまで)
    2454(追記) if (!ReadSector(pCD, pCD->BootSect.bpb.FSinfoSec, 1, bSector)) (追記ここまで)
    2455(追記) { (追記ここまで)
    2456(追記) memcpy(bSector + FSINFO_OFFSET, (void *)&pCD->FSInfo, sizeof (BOOTFSINFO)); (追記ここまで)
    2457(追記) if (!WriteSector(pCD, pCD->BootSect.bpb.FSinfoSec, 1, bSector)) (追記ここまで)
    2458(追記) return TRUE; (追記ここまで)
    2459(追記) } (追記ここまで)
    2460(追記) //CritMessage("UpdateFSInfo for %c: failed!", pVolInfo->bDrive + 'A'); (追記ここまで)
    2461(追記) //Message("ERROR: UpdateFSInfo for %c: failed!", pVolInfo->bDrive + 'A'); (追記ここまで)
    2462(追記) (追記ここまで)
    2463(追記) return FALSE; (追記ここまで)
    2464(追記) } (追記ここまで)
Note: See TracChangeset for help on using the changeset viewer.

AltStyle によって変換されたページ (->オリジナル) /