Насколько я понял - предложенная Вами функция возвращает не 32-разрядную контрольную сумму первых 254 слов блока, а инвертированный признак её корректности ( т.е. "ноль", если 32-разрядная контрольная сумма первых 254 слов совпадает со значением последних 2-х слов, рассматриваемых как 32-разрядное целое, и "не ноль" в иных случаях ).
Значение контрольной суммы вычисляет (как я понял) следующая функция:
Сохранённое в блоке значение контрольной суммы возвращает (если не ошибаюсь) следующая функция:Код:DWORD CalculateHomeBlockChecksum(void* buffer) { DWORD crc = 0; for (int i = 0; i < 254; i++) { crc += ( (WORD*) buffer )[i]; } return crc * (-1); }
Код:DWORD GetHomeBlockChecksum(void* buffer) { return ( (DWORD*) buffer )[127]; }
---------- Post added at 12:58 ---------- Previous post was at 12:25 ----------
Новая версия DSK-плагина для Total Commander якобы должна работать с образами винчестеров УКНЦ.
Работа проверялась с единственным образом WDC170inv_P.img, поэтому дополнительная проверка не помешает :)



Ответить с цитированием

Размещение рекламы на форуме способствует его дальнейшему развитию 
