You are debugging a 64-bit process.
Remember the x64 calling convention described here . The first 4 arguments are passed to the registers. After that, the arguments are pushed onto the stack.
Unfortunately, kv blindly displays stack arguments. In fact, it would be rather difficult (and sometimes impossible) to determine which first 4 arguments were actually during the call, since they probably were not saved anywhere that can be restored.
So, you are looking at the 5th argument of nt!NtWaitForSingleObject , where nullptr is a fairly typical argument for Timeout .
Fortunately for us, debugging types, all is not lost! There is a windbg extension that does its best to restore arguments when calling a function. The extension is called CMKD . You can place the DLL extension in your winext folder and call it like this:
0:000> !cmkd.stack -p Call Stack : 7 frames
Note that it is not always possible to find an argument, since some of them are (unknown) . But this is a good job and can be an invaluable tool when debugging 64-bit code.
source share