Windows DDK サンプルがページ アウトを処理しないのはなぜですか? それらはページング不可ですか?
3 に答える
ページング可能なコードは #pragma code_seg("PAGE") でマークされます。そのため、ドライバーはページングを処理していません。デフォルトでは、すべてページング不可です。
ページ コードは でラップされ#pragma code_seg("PAGExxx")
、ページ データは でラップされます#pragma data_seg("PAGExxx")
。でページ化された関数 (c-linkage のみ) を指定することもできます#pragma alloc_text
。Classes can also be paged by using declspec(allocate())
starting with WDK 8. メモリ内のページをロックおよびロック解除する API もあり、ランタイム制御が可能です。詳細はこちら: http://social.msdn.microsoft.com/Forums/en-US/wdk/thread/ba75e766-6a8f-4fe8-9d03-b69be85655d9
特にWindowsドライバーについては話していませんが、一般的なデバイスドライバーについてのみ:
大型ドライバーはいらない。
カーネル モードで多くの作業を行わないでください。また、高い割り込み優先度レベルで多くの作業を行わないでください。これらのレベルで必要なことだけを行い、残りの作業を最低レベル (0) で実行されるコードに委任します。