• <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 閱讀(5031) 評論(0)  編輯 收藏 引用 所屬分類: windows驅動

            <2008年2月>
            272829303112
            3456789
            10111213141516
            17181920212223
            2425262728291
            2345678

            常用鏈接

            留言簿(17)

            隨筆分類(138)

            隨筆檔案(137)

            網絡開發

            最新隨筆

            搜索

            •  

            積分與排名

            • 積分 - 497473
            • 排名 - 36

            最新隨筆

            最新評論

            閱讀排行榜

            評論排行榜

            狠狠狠色丁香婷婷综合久久俺| 久久精品无码免费不卡| 伊人久久大香线焦AV综合影院| 久久亚洲美女精品国产精品| 久久精品中文字幕久久| 欧美色综合久久久久久| 成人久久免费网站| 办公室久久精品| 久久久久久人妻无码| 久久涩综合| 国产麻豆精品久久一二三| 人妻少妇精品久久| 久久久精品国产sm调教网站 | 色综合久久夜色精品国产| 久久久久久亚洲精品成人| 亚洲v国产v天堂a无码久久| 久久精品毛片免费观看| 亚洲伊人久久综合影院| 国产91久久综合| 色综合久久久久久久久五月| 亚洲精品乱码久久久久久蜜桃 | 国产aⅴ激情无码久久| 久久久久国产亚洲AV麻豆| 久久99国产精品99久久| 久久夜色精品国产噜噜亚洲AV| 久久午夜无码鲁丝片午夜精品| 国内精品久久久久久野外| 国产亚洲精品美女久久久| 久久精品国产2020| 久久久久亚洲AV成人网人人网站| 久久午夜综合久久| 久久影院午夜理论片无码 | 久久夜色精品国产网站| 亚洲国产精品久久久天堂| 三级三级久久三级久久| 日本精品一区二区久久久| 久久亚洲国产成人精品无码区| 久久播电影网| 久久只有这精品99| 国产成人精品综合久久久| 久久亚洲日韩精品一区二区三区 |