reactos操作系统实现(138)

 在FAT里,需要从目录入口项里找到文件的首簇数,下面这段代码就是实现这样的功能,如下:

#001  ULONG

#002  vfatDirEntryGetFirstCluster (PDEVICE_EXTENSION  pDeviceExt,

#003                               PDIR_ENTRY  pFatDirEntry)

#004  {

#005      ULONG cluster;

#006 

 

根据FAT的类型进行不同的计算。

#007      if (pDeviceExt->FatInfo.FatType == FAT32)

#008      {

 

32位组成的簇号。

#009          cluster = pFatDirEntry->Fat.FirstCluster |

#010                   (pFatDirEntry->Fat.FirstClusterHigh << 16);

#011      }

#012      else if (pDeviceExt->Flags & VCB_IS_FATX)

#013      {

#014          cluster = pFatDirEntry->FatX.FirstCluster;

#015      }

#016      else

#017      {

 

这里直接使用16位组成的簇号。

#018          cluster = pFatDirEntry->Fat.FirstCluster;

#019      }

#020 

#021      return  cluster;

#022  }

posted @ 2009-11-21 23:40  ajuanabc  阅读(136)  评论(0编辑  收藏  举报