Делаю, короче так: Код (Text): typedef void asmfunc(); asmfunc* OldSysenterEntry; void SysenterHook(); /* ... */ // Внутри DeviceControlRoutine /* ... */ __asm { mov ecx, 0x176 rdmsr mov OldSysenterEntry, eax mov eax, SysenterHook xor edx, edx wrmsr } /* ... */ // Ну и наконец void __declspec(naked) SysenterHook() { __asm { jmp OldSysenterEntry } } Вроде бы все сделано в лучших русских традициях, но почему то при попытке переписать SYSENTER_MSR_EIP компьютер перезагружается... Ну вообщето трудно сказать, когд именно он перехагруэаеться, то ли на wrmsr то ли на jmp OldSysenterEntry... Но то что перехагружается это факт... Вопрос, почему? И как исправить?