いくつかの行を上にスクロールするだけです:http://jcomeau.unternet.net/src/ramdisk/RAMDISK.C
引用されたコードの直前に、fatEntriesとコメントの計算があります。
//
// Calculate number of sectors required for FAT
//
fatEntries =
(bootSector->bsSectors - bootSector->bsResSectors -
bootSector->bsRootDirEnts / DIR_ENTRIES_PER_SECTOR) /
bootSector->bsSecPerClus + 2;
//
// Choose between 12 and 16 bit FAT based on number of clusters we
// need to map
//
そして、この関数はRamDiskFormatDisk
どれですか
このルーチンは、新しいディスクをフォーマットします。
したがって、この関数の(間接)入力にあるRAMディスクサイズに基づいて、RAMdiskにあるセクター(sector = 512bytes)の量を計算し、次に、説明するために必要なFATテーブル(FatEntries)の大きさを計算しますすべてのセクター。FATテーブルの各エントリは単一のクラスターを記述し、デフォルト値は2セクター=1クラスターです。
クラスタの数が少ない場合は、FATテーブルが小さい方が適切であり、ディスクフォーマットとしてFAT12が選択されます。FAT12で使用されているような短いFATテーブルを使用してRAMディスクのクラスターを記述できない場合。関数はFAT32を選択します。
実際の制限: http: //en.wikipedia.org/wiki/File_Allocation_Table
FAT12-最大4084クラスター(2 ^ 12‑12); 最大のクラスターで32MB。
FAT16-最大65524クラスター(2 ^ 16‑12); 最大のクラスターで最大2GB
したがって、FAT12はフロッピーまたは数MBのRAMディスクに適しています。FAT16は、GBRAMディスクまでの任意のサイズで動作します。