• <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
            技術文摘
            posts - 137,  comments - 268,  trackbacks - 0

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

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

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

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

            <2008年8月>
            272829303112
            3456789
            10111213141516
            17181920212223
            24252627282930
            31123456

            常用鏈接

            留言簿(17)

            隨筆分類(138)

            隨筆檔案(137)

            網絡開發

            最新隨筆

            搜索

            •  

            積分與排名

            • 積分 - 500434
            • 排名 - 37

            最新隨筆

            最新評論

            閱讀排行榜

            評論排行榜

            欧美精品一区二区精品久久 | 国内精品人妻无码久久久影院导航 | 国产成人综合久久久久久| 午夜天堂精品久久久久| 久久99热只有频精品8| 97久久精品无码一区二区天美| 狼狼综合久久久久综合网| 亚洲精品乱码久久久久久久久久久久| 国内精品伊人久久久久777| 91精品国产乱码久久久久久| 国内精品久久久久影院优| 国产精品久久久久一区二区三区| 久久精品人妻一区二区三区| 亚洲中文字幕无码久久2017| 97精品伊人久久久大香线蕉 | 久久WWW免费人成—看片| 亚洲国产成人精品久久久国产成人一区二区三区综| 亚洲精品国产成人99久久| 性做久久久久久久| 久久综合亚洲欧美成人| 中文字幕乱码久久午夜| 久久久久久久久波多野高潮| 久久天天日天天操综合伊人av| 97精品伊人久久大香线蕉app| 久久夜色精品国产噜噜亚洲a| 一本一本久久a久久精品综合麻豆| 亚洲嫩草影院久久精品| 久久国产成人午夜aⅴ影院| 久久精品国内一区二区三区| 亚洲中文字幕无码久久2020| 亚洲国产精品无码久久久久久曰| 精品综合久久久久久97超人| 久久久久久国产精品免费无码| 午夜久久久久久禁播电影| 欧美激情精品久久久久| 一本色综合久久| 久久99精品久久久久久噜噜| 国产69精品久久久久观看软件| 2022年国产精品久久久久| 狠狠精品久久久无码中文字幕 | 男女久久久国产一区二区三区|