能力值:
( LV2,RANK:10 )
|
-
-
2 楼
同上,我也想知道
|
能力值:
( LV4,RANK:50 )
|
-
-
3 楼
USA: Update Sequence Array
USN: Update Sequence Number
用来检测数据完整性
可以用如下代码检测
static BOOL
FixFileRecord(
__inout PFILE_RECORD_HEADER FileRecord,
__in DWORD WordsPerSector)
{
PUSHORT USA = (PUSHORT)(PUCHAR(FileRecord) + FileRecord->Ntfs.UsaOffset);
PUSHORT Sector = (PUSHORT)FileRecord;
if (FileRecord->Ntfs.UsaCount > 4)
return FALSE;
for (ULONG Index = 1; Index < FileRecord->Ntfs.UsaCount; ++Index)
{
if (Sector[WordsPerSector - 1] == USA[0])
{
Sector[WordsPerSector - 1] = USA[Index];
Sector += WordsPerSector;
}
else
{
PRINT((TEXT("USA error at 0x%p\n"), Sector + WordsPerSector - 1));
return FALSE;
}
}
return TRUE;
}
|
能力值:
( LV2,RANK:10 )
|
-
-
4 楼
能够用文字说明吗,我们需要的是用文字说明其具体含义,然后再使用计算机语言来编程。
长篇大论,越详细越好。
|
能力值:
(RANK: )
|
-
-
5 楼
简单的说, 就是写操作时把一个扇区的最后两个字节填上一个固定的数(USN), 这样就知道这个扇区是否被同步更新了, 而USN占用的位置上的原数据就按顺序存放在USA里.
读出时先验证USN, 然后再用USA的数据填回原来的位置上.
参看这个帖子(28楼有图): http://bbs.pediy.com/showthread.php?t=61171
|
|
|