問題タブ [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.
communication - Windows でネットワークを介してドライバーと通信する
ネットワーク経由でユーザーモード アプリケーションからドライバーと通信するにはどうすればよいですか? ドライバーをローカル ユーザーモード アプリケーションと通信させてからリモート アプリケーションと通信させることはできません。名前付きパイプを使用することを考えていましたが、それがネットワーク上で機能するかどうかはわかりません。
vb6 - ユーザーモードからカーネルモード API を呼び出す/フックする方法は?
カーネルフックに飛び込みたいのですが、私の問題は C/C++ が好きではないことです。しかし、私は VB6 プログラミングで 10 年以上の経験があり、自分自身をこの言語の専門家と呼んでいます。私の質問は、小さな C カーネル モード ドライバーを使用できるかどうかです。このドライバーは、DeviceIoControl API を介してユーザー モードから VB で制御できるため、カーネル モード API を呼び出したりフックしたりできますか?
security - カーネルモードで実行されているプロセスとルートとして実行されているプロセスの違いは?
ユーザー モードで実行されているプロセスとカーネル モードで実行されているプロセスの違いを認識しています (アクセス制限、ハードウェアへのアクセスなどに基づく)。ところで、カーネル モードで実行されているプロセスとルートとして実行されているプロセスの違いは何でしょうか?
windows - Windowsカーネルからユーザーモードを呼び出す方法は?
Windows カーネルで興味深いイベントが発生したときに、ドライバーからアプリを呼び出したいと考えています。少なくとも 4 バイトのデータをユーザー モードに戻す必要があります。これを達成する方法は?これらのイベントはかなり発生する可能性がありますが、頻繁に発生するわけではないため、キュー システムを構築して IOCTL を使用したくありません。
ドライバーが読み込まれ、ユーザー モード アプリが IOCTL を使用してコールバックを登録し、イベントが発生したときにカーネルがそのコールバックを呼び出し続け、最後にユーザー モード クライアントがコールバックを登録解除し、ユーザー モードにデータが送信されなくなるようなことを考えていました。これは可能ですか?
私はカーネルプログラミングが初めてなので、1日グーグルで調べた後、ここで質問することにしました。カーネルとドライバーについてあまり議論されていないことに気付きました。そして、さらに適切でないドキュメント。
privilege - 特権命令、レジスタ値の追加?
オペレーティング システムの大学院コースの宿題を終えました。私は素晴らしいスコアを獲得し、問題の小さなポイントを1 つだけ逃しました。どれが特権的な指示でどれがそうでないかを尋ねました。1つを除いてすべて正しく答えました:あるレジスタ値を別のレジスタ値に追加する
私はそれが特権であると答えましたが、明らかにそうではありません!どうすればいいの?
私は、ユーザーがシステム コールを使用してレジスタ/メモリとやり取りしていると考えました。システム コールは、ある意味で、ユーザー モードのシステム コールからカーネル モードのルーチンに変わります。したがって、あるレジスター値を別のレジスター値に追加することは、特権のないユーザーによって呼び出される可能性がありますが、最終的にはカーネルが作業を行い、カーネルの特権モードになります。だから特権?ユーザーは自分でそれを行うことはできません。私が間違っている?どうして?!
- ありがとう!
c++ - カーネル モードからユーザー モードの実行可能ファイルを実行する
ドライバーチーム用のハードウェアシミュレーターを構築しています。現在、シミュレーターは 2 つのモジュールに分割されています。最初のモジュールはドライバー内でカーネル モードで実行され、ドライバーと HW-Simulator 間のメイン インターフェイスがここにあります。DeviceIOControl
2番目のモジュールは、シミュレーター用のデータを生成し、 (Windows APIの下で)への呼び出しを介してシミュレーターに転送する実行可能なユーザーモードコードです。
私の必要性は次のとおりです。カーネルモード内からユーザーモードの実行可能ファイルを実行できるようにしたいです。そして、これを比較的移植性の高い方法で実行できるようにする必要があります。現在、私は Windows でのみ実行していますが、これはすぐに変更されるはずです。さらに、stdin
再構成して最終的に閉じるために、パイプを介してユーザーモードコードと通信できる必要があります。
私はこれを見つけました: カーネル空間からユーザー空間関数を実行する
ただし、これは linux-kernel にのみ関連します。よりポータブルな代替手段はありますか? またはWindowsの代替?
ShellExecute/RunAs API 関数を使用するだけで Windows でこれを実行できますか?
注: カーネル空間からユーザー モード コードを呼び出すことに伴うセキュリティ リスクを認識しています。ただし、これはテスト環境としてのみ使用することを意図しており、リリース コードに到達することはないため、心配する必要はありません。
c++ - Windows ユーザー モード スケジューラ (UMS) は廃止されましたか?
Windows 7 で導入されたユーザー モード スケジューラは廃止される (予定されている) と思われる次の投稿を見つけました。
Don McCrady、マイクロソフト:ここの他のフォーラム エントリを読んでわかるかもしれませんが、UMS スケジューラは廃止されており、最終的に UmsThreadDefault を選択すると、Win32 スレッド スケジューラを使用することになります。
誰もこれに関する情報を持っていますか? なぜ廃止されたのですか、それはバグだったのでしょうか、それとも何か他のものに置き換えられたのでしょうか? これに関する他の参照は見つかりませんでした。
serial-port - ドライバーをインストールせずにプログラムでシリアルポートをシミュレートする
com0com は、仮想シリアル ポートを持つ優れたプログラムです。私の質問: そのような仮想デバイス用の追加のソフトウェアをインストールせずに、アプリケーションでプログラムによってシリアル ポート (COM、USB など) をシミュレートするために使用できるライブラリはありますか?
ユーザー空間に仮想デバイスを作成するようなものですか?OS: Windows
c++ - SystemParametersInfo および ERROR_OPERATION_IN_PROGRESS
ログインしているユーザーのコンテキストで、Windows プラットフォームのローカル サービスから実行できるこのユーザー モード実行可能ファイルをコーディングしています。その主な目的は、ログインしているすべてのユーザーのデスクトップを構成することです。次の API を呼び出して、スクリーンセーバーをセットアップします。
上記のコードはほとんどの場合に機能しますが、複数のユーザーが Windows コンソールにログオンしている場合を除いて、この奇妙なエラー ERROR_OPERATION_IN_PROGRESS が発生します。ドキュメントを調べたところ、次の説明があります。
マシンが省電力モードまたはシステム ロック状態に入った場合、ERROR_OPERATION_IN_PROGRESS 例外が発生します。
わかりましたが、このエラーをどのように処理すればよいでしょうか?
PS。これは、Windows 8 で最も頻繁に発生します。
windows - IDTを監視することで例外発生を知ることはできますか?
IDT(Interrupt Descriptor Table)を監視することで例外発生(ユーザーモード&カーネルモード)を知ることはできますか?