ExpertGetFrame 函式
ExpertGetFrame函式會從載入的擷取傳回要求的框架。
語法
DWORD WINAPI ExpertGetFrame(
_In_ HEXPERTKEY hExpertKey,
_In_ DWORD Direction,
_In_ DWORD RequestFlags,
_In_ DWORD RequestedFrameNumber,
_In_ HFILTER hFilter,
_Out_ LPEXPERTFRAMEDESCRIPTOR pEFrameDescriptor
);
參數
-
hExpertKey [in]
-
唯一專家識別碼。 網路監視器會在呼叫Run函式時,將hExpertKey識別碼傳遞給專家。
-
方向 [in]
-
值,識別網路監視器搜尋框架的方式。
值 意義 - GET_SPECIFIED_FRAME
傳回要求的框架。 - GET_FRAME_NEXT_FORWARD
傳回下一個框架。 - GET_FRAME_NEXT_BACKWARD
傳回上一個框架。 -
RequestFlags [in]
-
指定網路監視器如何處理要求的旗標。 指定下列一或多個旗標。
值 意義 - FLAGS_DEFER_TO_UI_FILTER
在套用 hFilter中所指定專家的顯示篩選參數之前,請先套用網路監視器在專家啟動時所使用的顯示篩選。 - FLAGS_ATTACH_PROPERTIES
所有通訊協定剖析器都以此框架宣告區段尋找的屬性會附加至框架。 如果未設定旗標,pEFrameDescript) or所傳回之 EXPERTFRAMEDESCRIPTOR (結構的lpPropertyTable欄位會設定為Null。 -
RequestedFrameNumber [in]
-
要求框架的數目。
-
hFilter [in]
-
專家顯示篩選的控制碼。 如果專家沒有顯示篩選準則,請將 參數設定為 Null。
-
pEFrameDescriptor [out]
-
傳回的 EXPERTFRAMEDESCRIPTOR結構描述框架。 專家必須配置並釋放這個結構所使用的記憶體。
傳回值
如果函式成功,傳回值會NMERR_SUCCESS。
如果函式失敗,傳回值會指出失敗的原因。 如果傳回值NMERR_EXPERT_TERMINATE,專家必須立即清除並傳回;使用者已中止專家執行。
備註
如果您設定FLAGS_ATTACH_PROPERTIES,則呼叫需要比未設定旗標更多的資源。 如果未設定旗標,指標會指向原始框架和框架的相關資料。 如果設定此旗標,網路監視器會呼叫宣告框架部分的每個剖析器,將所有屬性附加至框架。 這可以是緩慢的程式。
除非專家需要剖析器附加至框架的屬性,否則專家不應該設定FLAGS_ATTACH_PROPERTIES旗標。 可能的話,專家應該在沒有旗標的情況下呼叫 ExpertGetFrame 函式,然後直接從框架擷取所需的資料。
如果專家在沒有FLAGS_ATTACH_PROPERTIES旗標的情況下呼叫 ExpertGetFrame ,而且需要與該框架相關聯的屬性 (事件,例如) ,專家會呼叫 ExpertGetFrame ,但下列參數除外:
Direction = EXPERT_GET_SPECIFIED_FRAME;
RequestFlags &= (~EXPERT_DEFER_TO_UI_FILTER) | EXPERT_ATTACH_PROPERTIES;
RequestedFrameNumber= (The actual frame number you want);
hFilter = NULL;
pEFrameDescriptor = (The same one as last time);
使用上述程式碼可確保專家取得必要的框架,而不需要再次呼叫篩選程式代碼。
您可以將 hFilter 參數設定為 LPVOID。 如果存在,則傳回的框架會傳遞此篩選。 如果專家沒有要傳遞至函式的顯示篩選, (如果 hFilter 為 Null ) ,則不會篩選傳回的框架。
ExpertGetFrame函式只能由實作執行或設定匯出函式的專家呼叫。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 |
Windows 2000 專業版 [僅限傳統型應用程式] |
最低支援的伺服器 |
Windows 2000 Server [僅限傳統型應用程式] |
標頭 |
|
程式庫 |
|
DLL |
|