• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            aurain
            技術(shù)文摘
            posts - 137,  comments - 268,  trackbacks - 0

                 今天在調(diào)試驅(qū)動的時候,發(fā)現(xiàn)一個開始覺得很奇怪的問題,就是調(diào)用RtlStringCbPrintfW函數(shù)來格式化WCHAR字符串時,一定藍屏,提示
            IRQL_NOT_LESS_OR_EQUAL,并且比較郁悶的是,在虛擬機上有時不會出現(xiàn),有時會出現(xiàn),但在真正的主機上一定會出現(xiàn)(Windows xp sp2)。
            一般出現(xiàn)IRQL_NOT_LESS_OR_EQUAL,是IRQL在級別高的地方調(diào)用了分頁內(nèi)存,所以,我就想到把當(dāng)前的IRQL打出來看看,發(fā)現(xiàn)在進入函數(shù)
            的時候,當(dāng)前的IRQL是0(PASSIVE_LEVEL),而在執(zhí)行這段代碼的地方,IRQL是2(DISPATCH_LEVEL),是什么原因使得IRQL發(fā)生了變化呢?
            仔細查看代碼后,發(fā)現(xiàn)了原因,因為在執(zhí)行這段代碼之前,通過NdisAcquireSpinLock獲取旋轉(zhuǎn)鎖,而在旋轉(zhuǎn)鎖釋放之前,其中的代碼是跑在
            IRQL=2的,另外,RtlStringCbPrintfW需要處理分頁內(nèi)存(PagedPool),但在IRQL=2的情況下,是只能處理非分頁內(nèi)存的(NonpagedPool),所以,
            就產(chǎn)生了上面的藍屏現(xiàn)象。

            這里給出驅(qū)動內(nèi)存的分配細節(jié):
            驅(qū)動編程時,也有兩種申請內(nèi)存的方式:
            (1).在核心棧中申請,在X86 R0級中,核心棧只有約兩個頁面的大小,所以DDK中提到,不能使用遞歸調(diào)用。
            (2).在核心堆中申請,比如ExAllocatePoolWithTag函數(shù)就可以。不過核心堆分成兩種:分頁的、非分頁的。

            另外,獲取當(dāng)前IRQL級別方法:
             KIRQL uIrql = KeGetCurrentIrql();
             DEBUG_INFO(("%s is run on level: %x\n", __FUNCTION__, uIrql));

            posted on 2009-01-14 17:05 閱讀(5034) 評論(0)  編輯 收藏 引用 所屬分類: windows驅(qū)動

            <2009年1月>
            28293031123
            45678910
            11121314151617
            18192021222324
            25262728293031
            1234567

            常用鏈接

            留言簿(17)

            隨筆分類(138)

            隨筆檔案(137)

            網(wǎng)絡(luò)開發(fā)

            最新隨筆

            搜索

            •  

            積分與排名

            • 積分 - 499036
            • 排名 - 36

            最新隨筆

            最新評論

            閱讀排行榜

            評論排行榜

            国产成人久久久精品二区三区 | 久久噜噜电影你懂的| 欧美喷潮久久久XXXXx| 亚洲精品高清国产一线久久| 国内精品伊人久久久久| 免费一级欧美大片久久网 | 久久精品成人免费国产片小草 | 亚洲精品午夜国产VA久久成人| 久久精品国产亚洲AV香蕉| 国产午夜福利精品久久2021| 久久有码中文字幕| 久久精品草草草| 精品久久久中文字幕人妻| 狠狠色伊人久久精品综合网 | 人人妻久久人人澡人人爽人人精品| 精品国产乱码久久久久久人妻| 国产成人久久精品麻豆一区 | 久久精品国产亚洲av高清漫画| 精品综合久久久久久88小说| 久久99精品久久久久久hb无码| 中文字幕精品无码久久久久久3D日动漫| 无码人妻久久一区二区三区| 久久青青色综合| 久久精品女人天堂AV麻| 久久精品国产免费| 丰满少妇人妻久久久久久| 人妻无码αv中文字幕久久| 日韩亚洲国产综合久久久| 精品久久综合1区2区3区激情| 国产精品99久久精品| 久久人人妻人人爽人人爽| 久久精品国产男包| 中文字幕精品久久久久人妻| 亚洲精品tv久久久久| 久久毛片一区二区| 久久久精品国产免大香伊| 婷婷久久香蕉五月综合加勒比| 久久精品亚洲AV久久久无码| 欧美噜噜久久久XXX| 久久电影网2021| 99热都是精品久久久久久|