Доброго времени суток! Есть драйвер, собирается таким образом (компилятор MSVC NET 7.1) Код (Text): cl /Gz %kmd_resource%.res %kmd_source% /link /align:32 /driver /machine:x86 /entry:init /subsystem:native,5 /merge:.rdata=.text /base:0x10000000 Как правило, запускается и работает нормально. НО, на некоторых системах (от версии ОС, похоже, не зависит, поскольку проявляется на 2K SP4, XP SP1, XP SP2) StartService возвращает ошибку. GetLastError выдаёт ERROR_BAD_DRIVER, а системный загрузчик STATUS_IMAGE_CHECKSUM_MISMATCH. Доступа к этим компьютерам нет, но предполагается, что файл умышленно не модифицировался. Возможны ли какие-то причины этой ошибки КРОМЕ модификации файла\поля checksum в заголовке? ЗЫ: В MSDN и google никаких других вариантов естественно нет ( Единственное, что приходит в голову - файл модифицируется каким-то вирусом на машине пользователя.
Что-то и MmCheckSystemImage ни на какие мысли не наводит. У себя я могу воспроизвести ситуацию, только изменив checksum в заголовке или другой байт в файле. Похоже, или у юзеров вирь, или они сами PE падчить пытаются (