ZwQuerySymbolicLink函数报错,调用到ObReferenceObjectByHandle
刚接触驱动开发经验太少,被BSOD 0xC4_f6蓝屏问题困扰了几天,最后在论坛问到了原因。
下面记录问题及解决办法。
问题:
同样的驱动某一天在虚拟机中跑直接导致了蓝屏,只要开启就会蓝屏。
利用windbg分析dump文件,查看堆栈得知是调用到ZwQuerySymbolicLink函数时出的问题
再查找 0xC4_f6的bug信息,得知问题描述是驱动程序将用户模式句柄引用为内核模式。
找了半天也没理解我在内核申请的句柄怎么变成了用户模式。
下面的是相关的函数代码
NTSTATUS QuerySymbolicLink(
IN PUNICODE_STRING SymbolicLinkName,
OUT PUNICODE_STRING LinkTarget
)
{
OBJECT_ATT