从PLARGE_INTEGER打印值

问题描述 投票:0回答:1

[我正在为Windows 10 64位编写内核模式驱动程序,每当我尝试打印PLARGE_INTEGER(QuadPart,HighPart,LowPart)的值时,它都会崩溃。

LONGLONG val = plrgInt->QuadPart;
DbgPrint(val);

但是如果我只是访问val varibale中的值,则它运行得很好,仅在打印时崩溃。在此问题上需要一些帮助。

c windows kernel driver windbg
1个回答
0
投票

看一下手册: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));
© www.soinside.com 2019 - 2024. All rights reserved.