-
-
[求助]求证ObReferenceObjectByName函数增加引用的对象
-
发表于:
2010-1-21 21:33
6112
-
[求助]求证ObReferenceObjectByName函数增加引用的对象
#define KBD_DRIVER_NAME L"\\Driver\\Kbdclass"
RtlInitUnicodeString(&uniNtNameString, KBD_DRIVER_NAME);
status = ObReferenceObjectByName (
&uniNtNameString,
OBJ_CASE_INSENSITIVE,
NULL,
0,
IoDriverObjectType,
KernelMode,
NULL,
&
KbdDriverObject
);
// 如果失败了就直接返回
if(!NT_SUCCESS(status))
{
KdPrint(("MyAttach: Couldn't get the MyTest Device Object\n"));
return( status );
}
else
{
// 这个打开需要解应用。早点解除了免得之后忘记。
ObDereferenceObject(DriverObject);
}
这是寒江独钓里面的源代码,按照它的写法,ObReferenceObjectByName是增加了当前驱动对象的引用计数,而不是KbdDriverObject 所指向的驱动对象.我觉得它这里写错了,误导偶
,应该是增加KbdDriverObject 所指向的驱动对象的引用计数吧
后面编程发现...连续2次使用ObReferenceObjectByName后,第3次的ObDereferenceObject(DriverObject)必蓝屏了...才突然想到这点..求证求证錒
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)