問題タブ [sysinternals]
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.
windows - windows-kernel - Can a thread id ever be the same as a process id?
Hi I've looked around for an answer to this question and I am wondering if anyone with experience in windows internals knows if the kernel ever will assign a process id that is the same as a thread id. What I mean is say there is process a.exe that I have started that has a thread with id 123. If another process is started, for example b.exe, will the process id be 123? In other words do process and thread identifiers ever collide? Thanks
EDIT: It appears that process and thread ids come from the same pool called the PspCidTable. A hacker named Polynomial who reviewed the windows nt source says the following:
The kernel needs to be able to generate a sequence of process and thread IDs that are unique across the whole system. To efficiently and safely do this, the kernel creates a pool of IDs that can be used for both processes and threads. This pool is exported in the kernel as a HANDLE_TABLE object called PspCidTable. During Phase0 startup of the system, the PspInitPhase0 function is called. This function creates a HANDLE_TABLE object using ExCreateHandleTable, which automatically populates the table with 65536 entires. Each entry is a 16-bit unsigned integer (at least it is on a 32-bit OS) stored inside a list item object that is part of a doubly linked list. Both process and thread IDs come from the PspCidTable pool.
Source for above: Stuff you (probably) didn't know about Windows
The PspCidTable still exists in Windows XP and empirical observations in Windows 7 lead me to believe the above is still true.
debugging - Outlookアドインのハングを解決するための推奨されるアプローチは何ですか?
かなり安定しており、何年も使用されている Outlook アドインがあります。Citrix マシン環境では、アドインを開いたままにしておくと Outlook がハングします。ログはあまり役に立ちません。ネイティブ デバッグを実行できる場合、どのように問題にアプローチできますか?
windows - Default Desktop レジストリ キーを開くときに BGInfo エラーが発生しました
非常に優れた BGInfo ツールを実行して、さまざまなコンピューターを一意に識別します。ただし、Windows 2008 Server R2 で実行しようとすると、次のエラーが発生します。
「デフォルト デスクトップ レジストリ キーを開くときにエラーが発生しました。現在のユーザーがログオン デスクトップ設定を変更する権限を持っていることを確認してください: アクセスが拒否されました。」
プログラムは、「C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup」に配置されたショートカットを介して開始され、そのショートカットは .BGI 構成ファイルを指定しています (レジストリからの設定の読み取りに対して)。管理者以外のユーザーでエラーが発生する理由について考えてみませんか?
より詳細なレベルでは、BGInfo が「デフォルトのデスクトップ レジストリ キー」を開く必要がある理由と、「ログオン デスクトップ設定」で何を更新しているのか (元のエラー メッセージから引用符で囲まれたフレーズ) を誰かが知っているかどうか知りたいです。
c# - 別のアカウントを指定/偽装して Process.GetProcesses を呼び出しますか?
を使用Process.GetProcesses
すると、リモート コンピューターで実行中のプロセスを一覧表示できます。
ただし、これは私のアカウントの許可に依存しているようです。「リモート マシンに接続できませんでした」という例外がスローされます。実行中のユーザーがリモート マシンにアクセスできない場合。PsList-u
のおよび-p
スイッチと同様に、プロセスをチェックするときに .NET で使用される別のアカウントを指定できますか?
java - Java での dbgview の使用
私は Java コードを書いており、dbgview (および可能であれば log4j) を使用したいと考えています。log4j のドキュメントを検索すると、log4net とは異なり、log4j はOutputDebugStringAppender
出力を dbgview がリッスンするものにリダイレクトすることをサポートしていないようです。
dbgview が解析できるログ ファイルを作成するにはどうすればよいですか? Javaからデバッグストリームに文字列を送信するにはどうすればよいですか? Javaのデバッグビューの代替手段はありますか?
私はEclipse、Windows 7、および最新のlog4j jarを使用しています。
windows - AutoHotKeyを使用してPSLoggedOnを実行し、ストリームの出力を編集して結果を返すことは可能ですか?
AutoHotKeyを使用して、SysinternalsツールPSLoggedOnを使用する単純なGUIツールを構築しています。まず、使用する
run psloggedon.exe -l -x \\computername
と出力がまったく得られません。
だから私は試してみrun %ComSpec% /C psloggedon.exe -l -x 1> %Temp%\psloggedon.txt
ました、そしてそれは私にログインした各ユーザーのドメイン\ユーザー名形式の出力を与えます。
最初の例のように、最初にコマンドプロンプトを開くのではなく、psloggedonを実行して出力を取得したいと思います。それはどういうわけか可能ですか?
いずれにせよ、出力を取得してファイルへの書き込みを避けたいのですが、代わりに出力ストリームからの出力を編集して「ドメイン」の部分を削除し、ユーザー名を返します。サードパーティのソフトウェアなしでこれを行うにはどうすればよいですか?
c++ - OutputDebugString メッセージをキャプチャする方法
OutputDebugString() ( Win32 API) を使用してメッセージをログに記録するVisual C++で記述されたアプリケーションがあります。出力は DLL ファイルです。これらのメッセージをキャプチャできる方法またはユーティリティはありますか?
c# - procdump が StackOverflow 例外のダンプを作成しない
.Net C# アプリケーションのクラッシュ ダンプを作成しようとしています。このために、Stack Overflow 例外でアプリケーションをクラッシュさせるコードを書きました。
私が使用しているprocdumpコマンド:
アプリケーションは予想どおりクラッシュしており、procdump もそれをキャッチしています。procdump 監視コンソールの出力で確認できます。しかし、ダンプは作成されません。
正しい procdump コマンドを使用していないと思います。誰か助けてくれませんか?
c# - PsExec はリモート マシン プロセスを開きますが、アプリケーションが起動しませんでした
このコードを使用して、リモート マシンでプロセスを開きます。
リモートマシンでは、プロセスが開始されていることがわかりますが、自分のApplication GUI
.
exeをダブルクリックすると、GUIが開きます