• <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

            最新隨筆

            最新評論

            閱讀排行榜

            評論排行榜

            久久天天躁狠狠躁夜夜躁2014| 亚洲国产精品无码久久SM| 69国产成人综合久久精品| 国内精品久久久久久久97牛牛| 97久久精品午夜一区二区| 国产亚洲成人久久| 色婷婷久久久SWAG精品| 久久香蕉超碰97国产精品| www性久久久com| 久久久久无码精品国产app| 久久久无码精品亚洲日韩蜜臀浪潮 | 亚洲综合伊人久久综合| 18岁日韩内射颜射午夜久久成人 | 大香伊人久久精品一区二区| 亚洲精品乱码久久久久久| 国产激情久久久久影院| 国产偷久久久精品专区| 久久99精品久久久久久野外| 麻豆一区二区99久久久久| 欧美午夜A∨大片久久| 亚洲狠狠综合久久| 久久免费的精品国产V∧| 欧美日韩精品久久久免费观看| 热久久国产精品| 久久精品亚洲中文字幕无码麻豆| 亚洲精品97久久中文字幕无码| 99热热久久这里只有精品68| 午夜人妻久久久久久久久| 一本色道久久88综合日韩精品 | 久久这里只有精品18| 亚洲婷婷国产精品电影人久久 | 久久久久人妻精品一区三寸蜜桃| 影音先锋女人AV鲁色资源网久久| 久久精品人妻一区二区三区| 色综合久久久久| 99国产精品久久久久久久成人热| 欧洲精品久久久av无码电影| AV无码久久久久不卡蜜桃| 久久亚洲AV无码精品色午夜麻豆| 欧美伊人久久大香线蕉综合69| 久久久精品视频免费观看|