問題タブ [usermode]
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.
performance - ユーザーとカーネル システム コールの違い
システム コールは、プログラムがオペレーティング システムのカーネルからサービスを要求する方法です。
これらは、ユーザー モードとカーネル モードで発生する可能性があります。
違いは何ですか?
例えば:
- オーバーヘッド
- システム時刻
debugging - アクティベーション コンテキスト エラー 0xC015000f のデコード
の根本原因を特定する必要がある
EXCEPTION_CODE: (NTSTATUS) 0xc015000f - 非アクティブ化されているアクティブ化コンテキストは、最近アクティブ化されたコンテキストではありません。
ユーザー モードの死後クラッシュ ダンプを使用します。
コールスタック:
それが呼び出しに渡される値0x1fb2adc6
(つまり ) であると確信していますが、コンテキスト外で非アクティブ化されている理由を判断するために次にどこに行けばよいかわかりません。ulCookie
DeleteActCtx
DeactivateActCtx( 0, 0x1fb2adc6 )
特別な例外設定でプログラムを再実行できません。お客様のインストールから受け取ったこのユーザー モードのクラッシュ ダンプだけが、私が取り組まなければならないすべてです。
からの出力に!PEB
は、環境に関する次の情報が表示されます。
io - ドライバーとユーザー アプリケーションの主な違いは何ですか?
ユーザー アプリケーションは、システム セキュリティのためのユーザー モードでのみ実行できることを知っています。逆に、ほとんどのドライバーはカーネル モードで実行され、I/O デバイスにアクセスします。それでも、一部のドライバーはユーザー モードで実行されますが、I/O デバイスへのアクセスは許可されています。そこで、次の質問があります。ドライバーとユーザー アプリケーションの主な違いは何ですか? 一部のドライバーのように、ユーザー アプリケーションに I/O デバイスへのアクセスを許可することはできませんか?
ありがとう。
debugging - カーネル モード デバッグよりもユーザー モード デバッグに利点はありますか?
私が理解していることから、大まかに言えば、ユーザーモードのデバッグにより、プロセスのプライベート仮想アドレスへのアクセスが提供されます。デバッグ セッションはそのプロセスに限定されており、他のプロセスの仮想アドレス空間/データを上書きまたは改ざんすることはできません。
カーネルモードデバッグは、元のプロセスアドレス空間に加えて、複数のリソースへのフルアクセスを必要とする他のドライバーとカーネルプロセスへのアクセスを提供することを理解しています。
このことから、カーネル モードのデバッグは、ユーザー モードのデバッグよりも堅牢に見えると考えるようになります。これは私に疑問を投げかけます.デバッグモードの両方のオプションが利用可能である場合、より堅牢なカーネルモードよりもユーザーモードを選択することが理にかなっていますか?
私はまだ概念にかなり慣れていないので、2 つのモードについて間違って考えているのかもしれません。私が見逃している可能性のあるものをよりよく理解するために、そこにも洞察をいただければ幸いです。多くの人がカーネルのデバッグを避けようとしていることに気付いたようです。より堅牢に見えるので、その理由は完全にはわかりません。