惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

V
V2EX
Y
Y Combinator Blog
博客园_首页
V
Visual Studio Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
阮一峰的网络日志
阮一峰的网络日志
Hugging Face - Blog
Hugging Face - Blog
宝玉的分享
宝玉的分享
B
Blog
博客园 - 三生石上(FineUI控件)
小众软件
小众软件
WordPress大学
WordPress大学
L
LangChain Blog
爱范儿
爱范儿
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
P
Proofpoint News Feed
Blog — PlanetScale
Blog — PlanetScale
C
Check Point Blog
博客园 - 聂微东
云风的 BLOG
云风的 BLOG
Microsoft Security Blog
Microsoft Security Blog
博客园 - 叶小钗
酷 壳 – CoolShell
酷 壳 – CoolShell
H
Help Net Security

博客园 - bqrm_521(小奎)

.net连接eDirectory,需要安全连接的解决方案 ObDereferenceObject routine ObCloseHandle routine InitializeObjectAttributes 宏 Driver Support Routines(驱动程序开发支持例程) AdapterControl routine Standard Driver Routines(标准驱动程序) DriverEntry 文件系统过滤驱动的DriverEntry PHP扩展的加载流程 PHP扩展中定义一个类 PHP的HashTable(二) PHP的HashTable(一) PHP扩展中访问全局变量$_POST,$_GET,$_SERVER等 开发PHP扩展(一) 要搬家了,全部书籍10元转让 scribe2.2 ssh 使用技巧 安装scribe
ObDereferenceObjectDeferDelete routine
bqrm_521(小奎) · 2013-06-07 · via 博客园 - bqrm_521(小奎)

The ObDereferenceObjectDeferDelete routine decrements the reference count for the given object, checks for object retention, and avoids deadlocks.
ObDereferenceObjectDeferDelete例程减少指定对象的引用计数,检查对象保留(不明白,检查对象需不需要删除??),并且避免死锁。

语法:
VOID ObDereferenceObjectDeferDelete(
_In_ PVOID Object
);

参数:
Object [in]
A pointer to the body of the object.
指向对象实体的指针
返回值
None
备注:
ObDereferenceObjectDeferDelete is similar to ObDereferenceObject except that,
when the reference count of the object reaches zero,
the object manager passes the object deletion request to a worker thread.
Therefore, the deletion later occurs at IRQL = PASSIVE_LEVEL.
ObDereferenceObjectDeferDelete与ObDereferenceObject类似,除了,当引用计数为 0 时,对象管理器传递对象删除请求到工作线程。
因此,当之后IRQL=PASSIVE_LEVEL时,发生删除。

Use ObDereferenceObjectDeferDelete for any object when the immediate deletion by the current thread of the object (by using ObDereferenceObject)
might result in a deadlock.
Google翻译的,我不懂...

For example, such a deadlock can occur if ObDereferenceObject is used to dereference a Kernel Transaction Manager (KTM) object
when a higher level driver on the driver stack is holding a lock.
例如,使用ObDereferenceObject为Kernel Transaction Manager(KTM) 对象解引用 ,当一个驱动栈上的高层驱动持有锁时,会发生死锁。

To avoid such deadlocks, use ObDereferenceObjectDeferDelete instead of ObDereferenceObject to dereference KTM objects.
为了避免死锁,应使用ObDereferenceObjectDeferDelete代替ObDereferenceObject 对KTM对象解外用。

Note For information about object permanence and attributes, see ObDereferenceObject.
更多对象持久和属性的信息,参见ObDereferenceObject。

依赖项:
操作系统: Available in Windows Vista and later versions of Windows operating systems.Windows Vista及以上版本
头文件: Wdm.h (include Fltkernel.h or Ntifs.h)
库: Contained in Ntoskrnl.lib.
IRQL: <= DISPATCH_LEVEL