5

私はWindowsドライバー開発の初心者です。知りたいのですが、ドライバーのグローバル変数はページプールメモリまたは非ページプールメモリを使用しますか?

よろしくお願いします

ナバニース

4

3 に答える 3

8

依存します。非ページプールは、RAMに残しておく必要のあるメモリ用に予約する必要があるため、ディスク操作によるメモリページの影響を受ける重要な処理を行う場合は、非ページプールを使用してください。

詳細については、こちらをご覧ください。

これを見ると(Cではなくc ++について説明していますが)、デフォルトでは、グローバルは#pragmaのいずれかで配置できるように見えます。また、これのp22で、これ を行う方法を確認します。最後に、ここで説明します。データセグメントはデフォルトでページング不可である必要があります。

于 2009-04-28T08:44:42.170 に答える
2

カーネル モード ドライバーのグローバル変数は、NonPagedPool から割り当てられます。

デバイス拡張を使用することもできます (IoCreateDevice を呼び出す場合)。これは常に NonPaged メモリから割り当てられます。

これがお役に立てば幸いです、マーティン

于 2009-04-28T13:31:37.177 に答える