Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Windows tarafından dahili olarak tanımlanan ve dosya sistemi tanıma (FRS) tarafından kullanılan FILE_SYSTEM_RECOGNITION_STRUCTURE yapısı, FRS'nin belirtilen tanınmayan dosya sistemiyle düzgün çalışabilmesi için doğru bir şekilde hesaplanması gereken bir sağlama toplamı değeri içerir. Aşağıdaki örnek bu hesaplamayı gerçekleştirir.
typedef struct _FILE_SYSTEM_RECOGNITION_STRUCTURE {
UCHAR Jmp[3];
UCHAR FsName[8];
UCHAR MustBeZero[5];
ULONG Identifier;
USHORT Length;
USHORT Checksum;
} FILE_SYSTEM_RECOGNITION_STRUCTURE, *PFILE_SYSTEM_RECOGNITION_STRUCTURE;
USHORT ComputeFileSystemInformationChecksum (
__in PFILE_SYSTEM_RECOGNITION_STRUCTURE Fsrs
)
/*++
Routine Description:
This routine computes the file record checksum.
Arguments:
Fsrs - Pointer to the record.
Return Value:
The checksum result.
--*/
{
USHORT Checksum = 0;
USHORT i;
PUCHAR Buffer = (PUCHAR)Fsrs;
USHORT StartOffset;
//
// Skip the jump instruction
//
StartOffset = FIELD_OFFSET(FILE_SYSTEM_RECOGNITION_STRUCTURE, FsName);
for (i = StartOffset; i < Fsrs->Length; i++) {
//
// Skip the checksum field itself, which is a USHORT.
//
if ((i == FIELD_OFFSET(FILE_SYSTEM_RECOGNITION_STRUCTURE, Checksum)) ||
(i == FIELD_OFFSET(FILE_SYSTEM_RECOGNITION_STRUCTURE, Checksum)+1)) {
continue;
}
Checksum = ((Checksum & 1) ? 0x8000 : 0) + (Checksum >> 1) + Buffer[i];
}
return Checksum;
}
İlgili konular