2009-04-28 79 views

回答

8

依賴。非頁面緩衝池應該保留在內存中,這些內存必須保留在RAM中,所以如果你正在做一些重要的事情,那麼會受到磁盤操作中的內存頁面的影響,然後使用非分頁。

有關更多信息,請參閱here

看着this(儘管它討論的是C++而不是C),似乎默認情況下全局變量可以位於#pragma中。同樣在的第22頁,我們看到如何做到這一點。最後在這裏我們看到this discuss這個數據段在默認情況下不應該是pagagable。

+0

No.my的問題是一樣的財產以後,如果我申報的設備驅動程序的全局變量,這將使用內存,即頁面緩衝池內存和非分頁池內存?(本地變量將使用非分頁池內存)。 – Navaneeth 2009-04-28 10:07:04

+0

它不會取決於。 它將是分頁或非分頁池。 – Navaneeth 2009-04-28 10:34:29

2

內核模式驅動程序中的全局變量是從NonPagedPool分配的。

您也可以使用設備擴展(當您調用IoCreateDevice時),它始終從NonPaged內存分配。

我希望這有助於 馬丁