read sector number ThisFATSecNum (remember this is a sector number relative to sector 0 of the FAT volume). Assume this is read into an 8-bit byte array named SecBuff
If(FATType == FAT16) FAT16ClusEntryVal = *((WORD *) &SecBuff[ThisFATEntOffset]); Else FAT32ClusEntryVal = (*((DWORD *) &SecBuff[ThisFATEntOffset])) & 0x0FFFFFFF; |
set the contents of this same cluster
If(FATType == FAT16) *((WORD *) &SecBuff[ThisFATEntOffset]) = FAT16ClusEntryVal; Else { FAT32ClusEntryVal = FAT32ClusEntryVal & 0x0FFFFFFF; *((DWORD *) &SecBuff[ThisFATEntOffset]) = (*((DWORD *) &SecBuff[ThisFATEntOffset])) & 0xF0000000; *((DWORD *) &SecBuff[ThisFATEntOffset]) = (*((DWORD *) &SecBuff[ThisFATEntOffset])) | FAT32ClusEntryVal; } |