Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
私はWindowsドライバー開発の初心者です。知りたいのですが、ドライバーのグローバル変数はページプールメモリまたは非ページプールメモリを使用しますか?
よろしくお願いします
ナバニース
依存します。非ページプールは、RAMに残しておく必要のあるメモリ用に予約する必要があるため、ディスク操作によるメモリページの影響を受ける重要な処理を行う場合は、非ページプールを使用してください。
詳細については、こちらをご覧ください。
これを見ると(Cではなくc ++について説明していますが)、デフォルトでは、グローバルは#pragmaのいずれかで配置できるように見えます。また、これのp22で、これ を行う方法を確認します。最後に、ここで説明します。データセグメントはデフォルトでページング不可である必要があります。
カーネル モード ドライバーのグローバル変数は、NonPagedPool から割り当てられます。
デバイス拡張を使用することもできます (IoCreateDevice を呼び出す場合)。これは常に NonPaged メモリから割り当てられます。
これがお役に立てば幸いです、マーティン