windows驱动开发 磁盘的虚拟问题
细粉条 2014-08-04 05:36:18 看寒江独钓的windows内核安全编程第5章 磁盘的虚拟,示例代码RamDiskFormatDisk中有:
//由于根目录入口点只使用32字节,但是最少占用一个扇区,这里为了充分利用空间,在用户指定的数目不合适时,会修正这个数目,以使扇区空间得到充分利用。
if (rootDirEntries & (DIR_ENTRIES_PER_SECTOR - 1)) {
rootDirEntries = (rootDirEntries + (DIR_ENTRIES_PER_SECTOR - 1)) &
~ (DIR_ENTRIES_PER_SECTOR - 1);
}
不知道上面两句话是什么意思,不理解。
另外还有一处:
if (fatEntries > 4087) {
fatType = 16;
fatSectorCnt = (fatEntries * 2 + 511) / 512;
fatEntries = fatEntries + fatSectorCnt;
fatSectorCnt = (fatEntries * 2 + 511) / 512;
}
else {
fatType = 12;
fatSectorCnt = (((fatEntries * 3 + 1) / 2) + 511) / 512;
fatEntries = fatEntries + fatSectorCnt;
fatSectorCnt = (((fatEntries * 3 + 1) / 2) + 511) / 512;
}
这是区分FAT12和FAT16,但是红色部分不知道是什么意思。