⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 minifiler开发心得 - laoka - 51cto技术博客-领先的it技术博客.htm

📁 驱动开发的一些资料
💻 HTM
📖 第 1 页 / 共 5 页
字号:
            lang=EN-US>FileObject</SPAN>还没有完全建立好,因此会失败<SPAN 
            lang=EN-US>,</SPAN>不能用<SPAN 
            lang=EN-US>.<o:p></o:p></SPAN></FONT></SPAN></DIV>
            <DIV 
            style="TEXT-JUSTIFY: inter-ideograph; MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: justify"><SPAN 
            lang=EN-US style="FONT-SIZE: 10pt"><o:p><FONT 
            face=宋体>&nbsp;</FONT></o:p></SPAN></DIV>
            <H3 style="MARGIN: 12pt 0cm 0pt"><SPAN lang=EN-US 
            style="FONT-SIZE: 10pt; LINE-HEIGHT: 173%"><FONT face=Calibri>How 
            Context Management Works<o:p></o:p></FONT></SPAN></H3>
            <DIV class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN 
            style="FONT-FAMILY: 宋体; mso-ascii-font-family: calibri; mso-hansi-font-family: calibri">上下文管理是</SPAN><SPAN 
            lang=EN-US><FONT face=Calibri>Minifilter</FONT></SPAN><SPAN 
            style="FONT-FAMILY: 宋体; mso-ascii-font-family: calibri; mso-hansi-font-family: calibri">中最容易出问题的部分</SPAN><SPAN 
            lang=EN-US><FONT face=Calibri>.</FONT></SPAN><SPAN 
            style="FONT-FAMILY: 宋体; mso-ascii-font-family: calibri; mso-hansi-font-family: calibri">而现在检测上下文引用泄漏有限</SPAN><SPAN 
            lang=EN-US><FONT face=Calibri>,</FONT></SPAN><SPAN 
            style="FONT-FAMILY: 宋体; mso-ascii-font-family: calibri; mso-hansi-font-family: calibri">问题不好找</SPAN><SPAN 
            lang=EN-US><FONT face=Calibri>. </FONT></SPAN><SPAN 
            style="FONT-FAMILY: 宋体; mso-ascii-font-family: calibri; mso-hansi-font-family: calibri">现在最好的方法是在</SPAN><SPAN 
            lang=EN-US><FONT face=Calibri>Driver Verifier</FONT></SPAN><SPAN 
            style="FONT-FAMILY: 宋体; mso-ascii-font-family: calibri; mso-hansi-font-family: calibri">中设置</SPAN><SPAN 
            lang=EN-US><FONT face=Calibri>Pool Track,</FONT></SPAN><SPAN 
            style="FONT-FAMILY: 宋体; mso-ascii-font-family: calibri; mso-hansi-font-family: calibri">这样只知道有泄漏,无法定位是那个地方</SPAN><SPAN 
            lang=EN-US><FONT face=Calibri>.</FONT></SPAN><SPAN 
            style="FONT-FAMILY: 宋体; mso-ascii-font-family: calibri; mso-hansi-font-family: calibri">最好在刚开始编码时就这么设置,代码量大了就真的一个机会也没有了</SPAN><SPAN 
            lang=EN-US><FONT face=Calibri>,</FONT></SPAN><SPAN 
            style="FONT-FAMILY: 宋体; mso-ascii-font-family: calibri; mso-hansi-font-family: calibri">哈,事在人为</SPAN><SPAN 
            lang=EN-US><FONT face=Calibri>!</FONT></SPAN></DIV>
            <DIV class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN 
            lang=EN-US><o:p><FONT face=Calibri>&nbsp;</FONT></o:p></SPAN></DIV>
            <DIV class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN 
            style="FONT-FAMILY: 宋体; mso-ascii-font-family: calibri; mso-hansi-font-family: calibri">上下文是引用型数据结构</SPAN><SPAN 
            lang=EN-US><FONT face=Calibri>.</FONT></SPAN><SPAN 
            style="FONT-FAMILY: 宋体; mso-ascii-font-family: calibri; mso-hansi-font-family: calibri">只要引用非</SPAN><SPAN 
            lang=EN-US><FONT face=Calibri>0</FONT></SPAN><SPAN 
            style="FONT-FAMILY: 宋体; mso-ascii-font-family: calibri; mso-hansi-font-family: calibri">,</SPAN><SPAN 
            lang=EN-US><FONT face=Calibri>Filter Manager</FONT></SPAN><SPAN 
            style="FONT-FAMILY: 宋体; mso-ascii-font-family: calibri; mso-hansi-font-family: calibri">就不会释放它</SPAN><SPAN 
            lang=EN-US><FONT face=Calibri>.</FONT></SPAN><SPAN 
            style="FONT-FAMILY: 宋体; mso-ascii-font-family: calibri; mso-hansi-font-family: calibri">当引用变为</SPAN><SPAN 
            lang=EN-US><FONT face=Calibri>0</FONT></SPAN><SPAN 
            style="FONT-FAMILY: 宋体; mso-ascii-font-family: calibri; mso-hansi-font-family: calibri">时</SPAN><SPAN 
            lang=EN-US><FONT face=Calibri>,</FONT></SPAN><SPAN 
            style="FONT-FAMILY: 宋体; mso-ascii-font-family: calibri; mso-hansi-font-family: calibri">事先设置的</SPAN><STRONG><SPAN 
            lang=EN-US style="FONT-SIZE: 10pt; FONT-FAMILY: " 
            Calibri?,?sans-serif??>ContextCleanup 
            Callback</SPAN></STRONG><STRONG><SPAN 
            style="FONT-WEIGHT: normal; FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: calibri; mso-hansi-font-family: calibri; mso-bidi-font-weight: bold">回调函数会被调用</SPAN></STRONG><STRONG><SPAN 
            lang=EN-US 
            style="FONT-WEIGHT: normal; FONT-SIZE: 10pt; FONT-FAMILY: " bold? 
            mso-bidi-font-weight: 
            Calibri?,?sans-serif?;>,</SPAN></STRONG><STRONG><SPAN 
            style="FONT-WEIGHT: normal; FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: calibri; mso-hansi-font-family: calibri; mso-bidi-font-weight: bold">然后上下文件被删除</SPAN></STRONG><STRONG><SPAN 
            lang=EN-US 
            style="FONT-WEIGHT: normal; FONT-SIZE: 10pt; FONT-FAMILY: " bold? 
            mso-bidi-font-weight: 
            Calibri?,?sans-serif?;>.<o:p></o:p></SPAN></STRONG></DIV>
            <DIV class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><STRONG><SPAN 
            style="FONT-WEIGHT: normal; FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: calibri; mso-hansi-font-family: calibri; mso-bidi-font-weight: bold">因此,认识到那些操作影响引用计数是重要的</SPAN></STRONG><STRONG><SPAN 
            lang=EN-US 
            style="FONT-WEIGHT: normal; FONT-SIZE: 10pt; FONT-FAMILY: " bold? 
            mso-bidi-font-weight: 
            Calibri?,?sans-serif?;>.<o:p></o:p></SPAN></STRONG></DIV>
            <DIV class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><STRONG><SPAN 
            style="FONT-WEIGHT: normal; FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: calibri; mso-hansi-font-family: calibri; mso-bidi-font-weight: bold">创建</SPAN></STRONG><STRONG><SPAN 
            lang=EN-US 
            style="FONT-WEIGHT: normal; FONT-SIZE: 10pt; FONT-FAMILY: " bold? 
            mso-bidi-font-weight: 
            Calibri?,?sans-serif?;>,</SPAN></STRONG><STRONG><SPAN 
            style="FONT-WEIGHT: normal; FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: calibri; mso-hansi-font-family: calibri; mso-bidi-font-weight: bold">查找</SPAN></STRONG><STRONG><SPAN 
            lang=EN-US 
            style="FONT-WEIGHT: normal; FONT-SIZE: 10pt; FONT-FAMILY: " bold? 
            mso-bidi-font-weight: 
            Calibri?,?sans-serif?;>,</SPAN></STRONG><STRONG><SPAN 
            style="FONT-WEIGHT: normal; FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: calibri; mso-hansi-font-family: calibri; mso-bidi-font-weight: bold">显式引用一个上下文都会对引用计数进行加一操作</SPAN></STRONG><STRONG><SPAN 
            lang=EN-US 
            style="FONT-WEIGHT: normal; FONT-SIZE: 10pt; FONT-FAMILY: " bold? 
            mso-bidi-font-weight: 
            Calibri?,?sans-serif?;>,</SPAN></STRONG><STRONG><SPAN 
            style="FONT-WEIGHT: normal; FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: calibri; mso-hansi-font-family: calibri; mso-bidi-font-weight: bold">如</SPAN></STRONG><STRONG><SPAN 
            lang=EN-US style="FONT-SIZE: 10pt; FONT-FAMILY: " 
            Calibri?,?sans-serif??>FltReferenceContext, 
            FltGetContext</SPAN></STRONG><STRONG><SPAN lang=EN-US 
            style="FONT-WEIGHT: normal; FONT-SIZE: 10pt; FONT-FAMILY: " bold? 
            mso-bidi-font-weight: Calibri?,?sans-serif?;>,</SPAN></STRONG><SPAN 
            lang=EN-US style="FONT-SIZE: 10pt"><FONT face=Calibri> <STRONG><SPAN 
            style="FONT-FAMILY: " 
            Calibri?,?sans-serif??>FltSetXXXContext</SPAN></STRONG> 
            </FONT></SPAN><SPAN 
            style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: calibri; mso-hansi-font-family: calibri">也会进行一个对引用加一的操作</SPAN><SPAN 
            lang=EN-US style="FONT-SIZE: 10pt"><FONT 
            face=Calibri>.<B><o:p></o:p></B></FONT></SPAN></DIV>
            <DIV class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN 
            style="FONT-FAMILY: 宋体; mso-ascii-font-family: calibri; mso-hansi-font-family: calibri">引用减一发生在如上下文</SPAN><SPAN 
            lang=EN-US><FONT face=Calibri>detached</FONT></SPAN><SPAN 
            style="FONT-FAMILY: 宋体; mso-ascii-font-family: calibri; mso-hansi-font-family: calibri">时</SPAN><SPAN 
            lang=EN-US><FONT face=Calibri>,</FONT></SPAN><SPAN 
            style="FONT-FAMILY: 宋体; mso-ascii-font-family: calibri; mso-hansi-font-family: calibri">这个操作直接使引用为</SPAN><SPAN 
            lang=EN-US><FONT face=Calibri>0.</FONT></SPAN></DIV>
            <DIV class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN 
            style="FONT-FAMILY: 宋体; mso-ascii-font-family: calibri; mso-hansi-font-family: calibri">引用技术是在多线程环境下保护数据安全性的一种技术</SPAN><SPAN 
            lang=EN-US><FONT face=Calibri>.</FONT></SPAN></DIV>
            <DIV class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN 
            lang=EN-US><o:p><FONT face=Calibri>&nbsp;</FONT></o:p></SPAN></DIV>
            <DIV class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><STRONG><SPAN 
            lang=EN-US 
            style="FONT-WEIGHT: normal; FONT-SIZE: 10pt; FONT-FAMILY: " bold? 
            mso-bidi-font-weight: 
            Calibri?,?sans-serif?;>FltSetContext</SPAN></STRONG><STRONG><SPAN 
            style="FONT-WEIGHT: normal; FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: calibri; mso-hansi-font-family: calibri; mso-bidi-font-weight: bold">把一个上下文件</SPAN></STRONG><STRONG><SPAN 
            lang=EN-US 
            style="FONT-WEIGHT: normal; FONT-SIZE: 10pt; FONT-FAMILY: " bold? 
            mso-bidi-font-weight: 
            Calibri?,?sans-serif?;>Attatch</SPAN></STRONG><STRONG><SPAN 
            style="FONT-WEIGHT: normal; FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: calibri; mso-hansi-font-family: calibri; mso-bidi-font-weight: bold">到一个内核数据结构之中,并对引用进行加一的操作</SPAN></STRONG><STRONG><SPAN 
            lang=EN-US 
            style="FONT-WEIGHT: normal; FONT-SIZE: 10pt; FONT-FAMILY: " bold? 
            mso-bidi-font-weight: 
            Calibri?,?sans-serif?;>.<o:p></o:p></SPAN></STRONG></DIV>
            <DIV class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><STRONG><SPAN 
            style="FONT-WEIGHT: normal; FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: calibri; mso-hansi-font-family: calibri; mso-bidi-font-weight: bold">什么原因会引发</SPAN></STRONG><STRONG><SPAN 
            lang=EN-US 
            style="FONT-WEIGHT: normal; FONT-SIZE: 10pt; FONT-FAMILY: " bold? 
            mso-bidi-font-weight: 
            Calibri?,?sans-serif?;>Detach</SPAN></STRONG><STRONG><SPAN 
            style="FONT-WEIGHT: normal; FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: calibri; mso-hansi-font-family: calibri; mso-bidi-font-weight: bold">操作呢</SPAN></STRONG><STRONG><SPAN 
            lang=EN-US 
            style="FONT-WEIGHT: normal; FONT-SIZE: 10pt; FONT-FAMILY: " bold? 
            mso-bidi-font-weight: 
            Calibri?,?sans-serif?;>?</SPAN></STRONG><STRONG><SPAN 
            style="FONT-WEIGHT: normal; FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: calibri; mso-hansi-font-family: calibri; mso-bidi-font-weight: bold">主要有以下四个</SPAN></STRONG><STRONG><SPAN 
            lang=EN-US 
            style="FONT-WEIGHT: normal; FONT-SIZE: 10pt; FONT-FAMILY: " bold? 
            mso-bidi-font-weight: 
            Calibri?,?sans-serif?;>:<o:p></o:p></SPAN></STRONG></DIV>
            <DIV class=MsoNormal 
            style="MARGIN: 0cm 0cm 0pt 18pt; TEXT-INDENT: -18pt; mso-list: l0 level1 lfo3"><STRONG><SPAN 
            lang=EN-US 
            style="FONT-WEIGHT: normal; FONT-SIZE: 10pt; FONT-FAMILY: " bold? 
            mso-bidi-font-weight: Calibri?,?sans-serif?; Calibri; 
            mso-bidi-font-family: mso-fareast-font-family:><SPAN 
            style="mso-list: ignore">1.<SPAN Roman?? New 
            Times>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
            </SPAN></SPAN></SPAN></STRONG><STRONG><SPAN 
            style="FONT-WEIGHT: normal; FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: calibri; mso-hansi-font-family: calibri; mso-bidi-font-weight: bold">当被</SPAN></STRONG><STRONG><SPAN 
            lang=EN-US 
            style="FONT-WEIGHT: normal; FONT-SIZE: 10pt; FONT-FAMILY: " bold? 
            mso-bidi-font-weight: 
            Calibri?,?sans-serif?;>Attached</SPAN></STRONG><STRONG><SPAN 
            style="FONT-WEIGHT: normal; FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: calibri; mso-hansi-font-family: calibri; mso-bidi-font-weight: bold">的数据结构被删除时</SPAN></STRONG><STRONG><SPAN 
            lang=EN-US 
            style="FONT-WEIGHT: normal; FONT-SIZE: 10pt; FONT-FAMILY: " bold? 
            mso-bidi-font-weight: 
            Calibri?,?sans-serif?;>,</SPAN></STRONG><STRONG><SPAN 
            style="FONT-WEIGHT: normal; FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: calibri; mso-hansi-font-family: calibri; mso-bidi-font-weight: bold">如当文件系统调用</SPAN></STRONG><STRONG><SPAN 
            lang=EN-US 
            style="FONT-WEIGHT: normal; FONT-SIZE: 10pt; FONT-FAMILY: " bold? 
            mso-bidi-font-weight: Calibri?,?sans-serif?;>FsRtlTeardownPer 
            StreamContexts,<o:p></o:p></SPAN></STRONG></DIV>
            <DIV class=MsoNormal style="MARGIN: 0cm 0cm 0pt 18pt"><STRONG><SPAN 
            style="FONT-WEIGHT: normal; FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: calibri; mso-hansi-font-family: calibri; mso-bidi-font-weight: bold">那么</SPAN></STRONG><STRONG><SPAN 
            lang=EN-US 
            style="FONT-WEIGHT: normal; FONT-SIZE: 10pt; FONT-FAMILY: " bold? 
            mso-bidi-font-weight: Calibri?,?sans-serif?;>Filter 
            Manger</SPAN></STRONG><STRONG><SPAN 
            style="FONT-WEIGHT: normal; FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: calibri; mso-hansi-font-family: calibri; mso-bidi-font-weight: bold">将</SPAN></STRONG><STRONG><SPAN 
            lang=EN-US 
            style="FONT-WEIGHT: normal; FONT-SIZE: 10pt; FONT-FAMILY: " bold? 
            mso-bidi-font-weight: 
            Calibri?,?sans-serif?;>Detach</SPAN></STRONG><STRONG><SPAN 
            style="FONT-WEIGHT: normal; FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: calibri; mso-hansi-font-family: calibri; mso-bidi-font-weight: bold">所有的</SPAN></STRONG><STRONG><SPAN 
            lang=EN-US 
            style="FONT-WEIGHT: normal; FONT-SIZE: 10pt; FONT-FAMILY: " bold? 
            mso-bidi-font-weight: 
            Calibri?,?sans-serif?;>StreamContext.<o:p></o:p></SPAN></STRONG></DIV>
            <DIV class=MsoNormal 
            style="MARGIN: 0cm 0cm 0pt 18pt; TEXT-INDENT: -18pt; mso-list: l0 level1 lfo3"><STRONG><SPAN 
            lang=EN-US 
            style="FONT-WEIGHT: normal; FONT-SIZE: 10pt; FONT-FAMILY: " bold? 
            mso-bidi-font-weight: Calibri?,?sans-serif?; Calibri; 
            mso-bidi-font-family: mso-fareast-font-family:><SPAN 
            style="mso-list: ignore">2.<SPAN Roman?? New 
            Times>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
            </SPAN></SPAN></SPAN></STRONG><STRONG><SPAN 
            style="FONT-WEIGHT: normal; FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: calibri; mso-hansi-font-family: calibri; mso-bidi-font-weight: bold">当被</SPAN></STRONG><STRONG><SPAN 
            lang=EN-US 
            style="FONT-WEIGHT: normal; FONT-SIZE: 10pt; FONT-FAMILY: " bold? 
            mso-bidi-font-weight: 
            Calibri?,?sans-serif?;>Attached</SPAN></STRONG><STRONG><SPAN 
            style="FONT-WEIGHT: normal; FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-ascii-font-family: calibri; mso-hansi-font-family: calibri; mso-bidi-font-weight: bold">的数据结构关联的</SPAN></STRONG><STRONG><SPAN 
            lang=EN-US 
            style="FONT-WEIGHT: normal; FONT-SIZE: 10pt; FONT-FAMILY: " bold? 
            mso-bidi-font-weight: Calibri?,?sans-serif?;>filter 
            Instance</SPAN></STRONG><STRONG><SPAN 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -