Author: AlexeyBgSubject: Problem finding KiFastCallEntry fnct's location
Posted: 26 May 2015 at 10:40am
Hi all,
I'm debugging a certain problem in a Wireless IHV library on Win 8.1. I'm trying to figure out why a specific function returns an error, so I've debugged it in the assembly window in WinDbg. At a certain point I've reached the syscall instruction and would want to continue the step-by-step debugging on the kernel side.
Obviously, I've missed quite a few developments that took place in the recent years. Last time I did something like that the system calls were done by issuing int 2e instruction. But since then, syscall / sysentry technique has replaced it. So I've done some reading to catch up.
But something is still not working.
To begin with, when trying to read from the MSR representing the entry point's address, I keep getting zero as a result:
0: kd> rdmsr 0x176
msr[176] = 00000000`00000000
There's a note in WinDbg's help saying that this command is for kernel mode only, so (even though it sounded strange), I tried this from a breakpoint in a driver as well. Same result, though...
I also tried finding the KiFastCallEntry function by name, but this didn't work either. I have forced the reloading of kernel symbols by .reload /f command and most kernel symbols have indeed been downloaded. Yet, the following attempts fail:
0: kd> u ntoskrnl!KiFastCallEntry
Couldn't resolve error at 'ntoskrnl!KiFastCallEntry'
0: kd> u nt!KiFastCallEntry
Couldn't resolve error at 'nt!KiFastCallEntry'
What am I doing wrong? Any help would be highly appreciated.
Thank you!
Edited by AlexeyBg - 4 hours 54 minutes ago at 10:43am