Share via


RPC 狀態資訊內部

本節提供 RPC 執行時間所收集之狀態資訊內部結構的詳細資料。

所有 RPC 執行時間狀態資訊都包含在資料格中。 儲存格是可個別檢視和更新的最小資訊單位。

RPC Run-Time中的每個索引鍵物件都會維護其狀態相關資訊的一或多個資料格。 每個儲存格都有一個儲存格識別碼。 當物件參考另一個物件時,它會藉由指定該物件的儲存格識別碼來執行此動作。 RPC Run-Time可維護的索引鍵物件包括端點、執行緒、連線物件、伺服器呼叫 (SCALL) 物件,以及用戶端呼叫 (CCALL) 物件。

當 RPC 伺服器執行時,RPC Run-Time會使用一或多個背景工作執行緒接聽一組端點。 每當資料傳輸至伺服器時,執行緒就會挑選資料,並判斷傳入要求是什麼。 如果要求是建立連接,則會建立 Connection 物件,然後這個物件會服務連接上的所有呼叫。 在連線上進行 RPC 呼叫時,Connection 物件會具現化伺服器呼叫 (SCALL) 物件,該物件對應至用戶端呼叫 (CCALL) 物件。 接著,此伺服器呼叫物件會處理這個特定的呼叫。

當 RPC 用戶端執行時,RPC Run-Time每次呼叫時都會建立用戶端呼叫物件。 這個用戶端呼叫物件包含這個特定呼叫的相關資訊。

端點資料格

從 RPC 執行時間的觀點來看,端點是可連絡特定伺服器的進入點。 端點一律與指定的 RPC 傳輸相關聯。 端點狀態資訊可用來將用戶端呼叫與伺服器上的特定進程產生關聯。

端點資料格中的欄位如下:

ProtseqType
此端點的通訊協定順序。

地位
狀態值: 已配置作用中或 非作用中。 大部分的端點都處於作用中狀態。 建立程式啟動時,端點已 配置 狀態,但尚未完成。 例如,當通訊協定已卸載) 時,當端點不再使用 (時,則端點為 作用中。

EndpointName
端點名稱的前 28 個字元。

執行緒儲存格

伺服器執行緒是背景工作執行緒, (標準 Win32 執行緒供 RPC) 使用。

執行緒儲存格中的欄位如下:

地位
狀態值: 處理分派配置閒置處理執行緒是Run-Time內且正在處理資訊的執行緒。 已分派執行緒已將 (呼叫) 分派至伺服器提供的管理員常式 (,通常只會呼叫伺服器常式) 。 已快取 配置的 執行緒。 閒置執行緒可供服務要求使用。

LastUpdateTime
開機) 上次更新資訊的時間 (以毫秒為單位。

TID
此執行緒的執行緒識別碼。 這在嘗試與偵錯工具中的執行緒清單相互關聯時很有用。

Connection 物件儲存格

連線物件儲存格中的欄位如下:

標誌
旗標值包括獨佔非獨佔/ 、驗證層級驗證服務

LastTransmitFragmentSize
透過連線傳輸的最後一個片段大小。

端點
從中挑選此連線之端點的資料格識別碼。

LastSendTime
上次在連線上傳送資料的時間。

LastReceiveTime
上次在連線上收到資料的時間。

伺服器呼叫物件儲存格

伺服器呼叫 (SCALL) 物件資料格中的欄位如下:

地位
狀態值: 已配置作用中或 分派配置的呼叫為非作用中且已快取。 當 呼叫作用中時,RPC Run-Time正在處理與這個呼叫相關的資訊。 分派呼叫時,管理員常式 (已呼叫伺服器常式) 且尚未傳回。

ProcNum
此呼叫) netmon 擷取檔案中的程式號碼 (作業編號。 RPC Run-Time會藉由在 IDL 檔案中的位置編號個別常式,從介面識別個別常式。 介面中的第一個常式將是數位零、第二個數字等等。

InterfaceUUIDStart
介面 UUID 的第一個 DWORD。

服務TID
維護此呼叫之執行緒的資料格識別碼。 如果呼叫不是 使用 中或 分派,則這包含過時的資訊。

CallFlags
這些旗標值會指出這是獨佔連線中的快取呼叫、這是非同步呼叫、這是否為管道呼叫,以及這是否為 LRPC 或 OSF 呼叫。

LastUpdateTime
上次更新呼叫物件狀態資訊時,開機後) 毫秒的時間 (。

Pid
呼叫端的進程識別碼。 僅適用于 LRPC 呼叫。

TID
呼叫端的執行緒識別碼。 僅適用于 LRPC 呼叫。

用戶端呼叫物件儲存格

用戶端呼叫 (CCALL) 物件分成兩個數據格,因為用戶端呼叫的相關資訊太大而無法放入一個資料格中。 第一個資料格稱為 「用戶端通話資訊」,第二個數據格稱為 「呼叫目標資訊」。 大部分的工具都會一起顯示資訊,因此您不需要區分它們。

除非您收集完整狀態資訊,否則不會維護用戶端呼叫的相關資訊。 此規則有一個例外狀況:即使只收集伺服器狀態資訊,仍會維護伺服器呼叫內用戶端呼叫的相關資訊。 這可讓您追蹤跨越多個躍點的呼叫。

[用戶端呼叫資訊] 儲存格中的欄位如下:

ProcNum
netmon 擷取檔案中的程式編號 (作業編號,) 所呼叫的方法。 RPC Run-Time會藉由在 IDL 檔案中的位置編號個別常式,從介面識別個別常式。 介面中的第一個常式將是數位零、第二個數字等等。

ServicingThread
執行此呼叫之執行緒的資料格識別碼。

IfStart
呼叫所在介面 UUID 的第一個 DWORD。

端點
進行呼叫之伺服器上的端點的前 12 個字元。

[呼叫目標資訊] 儲存格中的欄位如下:

ProtocolSequence
這個呼叫的通訊協定序列。

LastUpdateTime
開機後的時間 (以毫秒為單位,) 用戶端呼叫或呼叫目標的相關資訊已更新。

TargetServer
呼叫所在伺服器名稱的前 24 個字元。