2

カーネル レベル ドライバー (IOControl 機能から) からユーザー空間バッファーに書き込みを行っています。ドライバーが書き込みを完了する前に、ユーザー ランド プログラム/サービスがバッファーを上書きしたり読み取ったりしないようにする必要があります。それに。

Windows のカーネル モード ドライバー内で一種の「グローバル クリティカル セクション」に入る方法はありますか (そうであれば、好ましい方法は何ですか)、ドライバーがシステム全体を短時間処理するための排他性を取得できるようにする方法はありますか?ドライバーは、ユーザー空間のバッファーへの排他的アクセスを保証できますか?

4

1 に答える 1

1

コメントでの返信を考慮して、それを達成する 1 つの方法は、各システム プロセッサに関連付けられたカーネル モード スレッドを維持し、バッファへの書き込み時に IRQL を DPC に引き上げることです。DPC IRQL ではスレッド スケジューリングが許可されていないため、ユーザー モード アプリケーションは制御できません。

注:これは質問への回答ですが、基本的には、そうすべきではないというコメントに同意します。ユーザーモードバッファがいつでも変更できるという前提で動作するように、おそらくドライバを再設計する必要があります。

于 2012-06-15T17:36:52.067 に答える