8

私たちのアプリケーションは、DCOM ( 0x80010100) から System Call Failed RPC エラーを受け取りました。ターゲット スレッドのメッセージ キューがいっぱいであると思われます (ただし、これが完全であるとは確信していません)。キューがメッセージに限定されて10,000いることはわかっており、一般的なケースでこの数に近いかどうかを確認したいと考えています。スレッドのメッセージ キューのサイズを監視する方法はありますか?

私が見つけた最も有望なオプションはこれでしGetQueueStatusたが、これにはキュー内のメッセージの数は含まれず、そのタイプのみが含まれます。

4

1 に答える 1

5

キューのサイズを監視する方法を知りません (カーネル デバッガーを使用し、TIB+[0x40] で内部の Win32Thread データ構造にアクセスする以外はお勧めしません)。

デバッグの目的で、エラーが発生したときにキューがいっぱいかどうかを確認するには、PostThreadMessage を実行してみてください。いっぱいの場合、呼び出しは GetLastError() == 0x718 で失敗するはずです。(このコマンドを処理するのに十分なクォータがありません。)

于 2009-02-12T08:07:06.717 に答える