我用KsCreatePin(..,OUT PHANDLE PinHandle) 创建了一个 Pin Handle ,用完后调用ZwClose(PinHandle)释放这个局柄,常常出现0xc0000008 (An invalid HANDLE was specified)错误,...
全文
回复(20) 2003-06-17 11:35 来自版块 - 内核编程
表情
firfor你可以把那个句柄的打开时候的属性添加上OBJ_KERNEL_HANDLE. 这样的话在不同的进程中好像都可以使用,不会有无效句柄的情况,大家都知道句柄是进程相关的,若这个句柄附上了这一个属性后就能在进程间切换。这个我好像验证过了,不过问题有点多没有仔细去想过。 你可以试一下,不过...(2011-07-09 00:56)
swf2003我明白了,主要是要通过内核对象的引用计数来控制这个对象的生命周期。 谢谢jason.gao。(2003-06-26 10:17)
jason.gao 创建是 CreateXXX(&handle) ObReferenceObjectByHandle(handle, ..., &object) 释放是 ObDereferenceObject(object) ZwClose(handle) ...(2003-06-25 17:40)
jason.gao谢谢!我看到了,情况有所不同。那边有具体的。 (2003-06-25 17:26)
swf2003另:swf2003在做stream driver?有个问题顺便问问你 如何(或能不能)在stream minidriver中得到自己的DeviceExtension。因为我绕过了class driver,需要从DeviceObject得到。 如果你知道,可以去这里回答...(2003-06-25 10:02)
swf2003CreateXXX(&handle) ObReferenceObjectByHandle(handle, ..., &object) ZwClose(handle) - 然后就把句柄关闭了 在用完了之后 ObDereferenceObject - 最后...(2003-06-25 09:38)
rookie_cnCreateXXX(&handle) ObReferenceObjectByHandle(handle, ..., &object) ZwClose(handle) - 然后就把句柄关闭了 在用完了之后 ObDereferenceObject - 最后...(2003-06-24 21:50)
jason.gao另:swf2003在做stream driver?有个问题顺便问问你 如何(或能不能)在stream minidriver中得到自己的DeviceExtension。因为我绕过了class driver,需要从DeviceObject得到。 如果你知道,可以去这里回答...(2003-06-24 17:09)
jason.gao我觉得rookie_cn所说的“进程切换”有一定道理,至少可以解释:为什么很多代码都像我上面说的那样,呵呵 (2003-06-24 16:57)
jason.gao我真傻,以为那么多的顶级会员都是高手! ----------- haha,隔壁看到一个资深会员连个event都要人解释半天。 言归正转。 我怀疑是不是哪里已经误释放掉了。我看到很多代码里都是这样用的: CreateXXX(&handle) ObRe...(2003-06-24 16:54)

返回顶部