2008-11-02 48 views
8

我們的應用程序正在從DCOM(0x80010100)中獲取系統調用失敗的RPC錯誤,我們懷疑目標線程的消息隊列已滿(儘管我不相信這是真的)。我知道隊列是limited to 10,000 messages,我想看看在常見情況下我們是否接近這個數字。有沒有辦法監視線程的消息隊列的大小?我可以監視線程的消息隊列的大小嗎?

我發現的最有希望的選項是GetQueueStatus但這不包括隊列中只有它們的類型的消息的數量。

回答

5

我不知道有任何監視隊列大小的方法(在TIB + [0x40]處使用內核調試器和內部Win32Thread數據結構中的groveling,這是我不太推薦的)。

出於調試的目的,要在出現錯誤時檢查隊列是否已滿,請嘗試執行PostThreadMessage。如果已滿,調用將失敗,GetLastError()== 0x718。 (沒有足夠的配額可用於處理此命令。)

相關問題