[我正在为Windows 10 64位编写内核模式驱动程序,每当我尝试打印PLARGE_INTEGER(QuadPart,HighPart,LowPart)的值时,它都会崩溃。
LONGLONG val = plrgInt->QuadPart;
DbgPrint(val);
但是如果我只是访问val varibale中的值,则它运行得很好,仅在打印时崩溃。在此问题上需要一些帮助。
看一下手册:https://docs.microsoft.com/en-us/windows-hardware/drivers/ddi/wdm/nf-wdm-dbgprint
您不能只将LONGLONG val传递给DbgPrint。第一个参数是格式字符串,您必须为LONGLONG传递正确的格式。
您可以对DebugPrint尝试相同的方法:
DbgPrint("%lld", val);
这可能不起作用,因为DbgPrint可能尚未实现此格式类型。
您总是可以分别打印高低单词:
DbgPrint("%d,%d", (DWORD)(val & 0xffffffff), (DWORD)(val >> 32 & 0xffffffff));