問題タブ [kernel-mode]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
wdk - カーネル モード ドライバーへのデータの格納
カーネル モード ドライバーに配列があります。ドライバーが配列データを保存し、ロード時に同じデータを復元することは可能ですか?
driver - カーネル モードからユーザー モードへの値の送信
ウイルス対策プログラム用のカーネル モード ドライバーを開発していますが、ドライバー セクションに問題があります。
カーネル モード ドライバーからユーザー モード アプリケーションに文字列値 ("String" など) を送信したいと考えています。誰でも私がこれを行うのを手伝ってもらえますか?
operating-system - 命令が特権モードで実行されているかユーザー モードで実行されているかは、どのようにしてわかりますか?
クラスで教授は、「[アセンブリ]命令は、それが特権モードで実行されているかユーザーモードで実行されているかを認識しています。トラップが生成された場合、それはユーザーモードだからです」.
まず、トラップではなく、コマンドをユーザーモードで実行できないという特定のトラップであると想定しています。
次に、これは非常に効率が悪いようです。コマンド全体を実行して、トラップがあったかどうかを確認してください。フラグが設定されていないのはなぜですか?これは、うまくいかなかった場合、問題があることがわかっていると言っているようなものではありませんか? では、実際に確認する方法はありませんか?
operating-system - ユーザーモードとカーネルモードはユーザーからの保護を提供しますか?
個人的には、ユーザー モードでは制限付きアクセスが許可されているため、変更してはいけないものは何も変更できないため、カーネル モードが使用されていると思います。
推測は十分ではありませんが。ユーザーからの保護を提供する理由または方法を知っている人はいますか?
windows - ACPI フィルター ドライバー (WDM) で ACPI 通知を使用して、ACPI ベースの明るさのホット キーを送信する方法は?
最初に、私が HW ドライバーの開発に不慣れであることを認めなければなりません。
ユーザーが Windows 8.1 で ACPI ベースの明るさのホット キーを備えたノートブック キーボードのハードウェア キー (明るさアップなど) をタッチ/押下できると仮定すると、システムは ACPI ベースの通知を受け取り、ディスプレイの明るさを上げて表示します。画面の左上に輝度レベルを表示する垂直バーであるオンスクリーンディスプレイ。
ここで、ACPI フィルター ドライバーがアプリケーションから送信された IRP を受信したときに、システムがディスプレイの明るさの増減を完了し、オン スクリーン ディスプレイ (クライアントにはこの OSD が必要) が画面に表示されるように、これらの ACIP ベースの通知を率先して発生させる必要があります。 .
最初に「ハードウェア ボタン (ホット キー) との統合」を読みましたが、カーネル モード ドライバーでこれらの「ACPI_NOTIFY_INC_BRIGHTNESS_HOTKEY」または「ACPI_NOTIFY_DEC_BRIGHTNESS_HOTKEY」を送信する方法が公開されていません。
それで、「Supporting Display Output and ACPI Events」を見つけました。これは、DxgkDdiNotifyAcpiEvent が呼び出されて、ACPI イベントについてディスプレイ ミニポート ドライバーに通知することを示しています。このルーチンを率先して呼び出して ACPI_NOTIFY_INC_BRIGHTNESS_HOTKEY を発生させ、システムが輝度を上げてオンスクリーン ディスプレイを表示できると誤解したかどうかはわかりません。
DxgkDdiNotifyAcpiEvent に必要な「PVOID MiniportDeviceContext」を構築することはほとんどできないため、おそらく DxgkDdiNotifyAcpiEvent を呼び出すことはできないと思います。
私の貧弱な英語のために、私の必要性と私の研究についての冗長な説明を許してください...
一言で言えば、全体の流れは次のとおりです。
- 私たちのアプリは、CreateFile を使用して ACPI-Filter ドライバーを開き、それと通信します。
- アプリは DeviceIoControl を使用して Irp を ACPI-Filter ドライバーに送信します
- ACPI-Filter ドライバーは Irp を受け取り、ACPI ベースの通知を生成して、ディスプレイの明るさを増減するようにシステムに指示します。最も重要なことは、オンスクリーン ディスプレイを表示することです (ACPI_NOTIFY_INC_BRIGHTNESS_HOTKEY 通知がシステムに正常に通知された場合、システムが画面に OSD を表示するため、この必要性を考慮する必要があります)。
ステップ3になると、誰かがそれを達成する方法を教えてもらえますか? サンプルコードは大歓迎です。
または、UMDF で実行できますか?
私が調査したところによると、HID レポートはこのニーズを満たすもう 1 つの方法ですが、HID ミニフィルター ドライバーを最初から最後まで作成する必要があると思います。最も重要なことは、私はこれらのモジュールに慣れていないということです。
performance - ユーザーとカーネル システム コールの違い
システム コールは、プログラムがオペレーティング システムのカーネルからサービスを要求する方法です。
これらは、ユーザー モードとカーネル モードで発生する可能性があります。
違いは何ですか?
例えば:
- オーバーヘッド
- システム時刻