我是windows驅動程序開發的新手。我只想知道,驅動程序中的全局變量將使用分頁緩衝池內存還是非分頁緩衝池內存?分頁池內存或非分頁池內存? (windows驅動程序開發)
感謝和問候
Navaneeth
我是windows驅動程序開發的新手。我只想知道,驅動程序中的全局變量將使用分頁緩衝池內存還是非分頁緩衝池內存?分頁池內存或非分頁池內存? (windows驅動程序開發)
感謝和問候
Navaneeth
依賴。非頁面緩衝池應該保留在內存中,這些內存必須保留在RAM中,所以如果你正在做一些重要的事情,那麼會受到磁盤操作中的內存頁面的影響,然後使用非分頁。
有關更多信息,請參閱here。
看着this(儘管它討論的是C++而不是C),似乎默認情況下全局變量可以位於#pragma中。同樣在的第22頁,我們看到如何做到這一點。最後在這裏我們看到this discuss這個數據段在默認情況下不應該是pagagable。
內核模式驅動程序中的全局變量是從NonPagedPool分配的。
您也可以使用設備擴展(當您調用IoCreateDevice時),它始終從NonPaged內存分配。
我希望這有助於 馬丁
No.my的問題是一樣的財產以後,如果我申報的設備驅動程序的全局變量,這將使用內存,即頁面緩衝池內存和非分頁池內存?(本地變量將使用非分頁池內存)。 – Navaneeth 2009-04-28 10:07:04
它不會取決於。 它將是分頁或非分頁池。 – Navaneeth 2009-04-28 10:34:29