IDebugFailureAnalysis::GetNext 方法 (extsfns.h)
GetNext 方法會搜尋 DebugFailureAnalysis 物件中下一個 FA 專案,在指定的 FA 項目之後,符合 Tag 和 TagMask 參數所指定的條件。
語法
PFA_ENTRY GetNext(
[in] PFA_ENTRY Entry,
[in] FA_TAG Tag,
[in] FA_TAG TagMask
);
參數
[in] Entry
FA_ENTRY 結構的指標。 搜尋會在此 FA 項目之後開始,。 如果此參數 NULL,則會從FA專案的集合開頭開始。
[in] Tag
FA_TAG 列舉中的值。
[in] TagMask
遮罩,可將搜尋限制為所有可能捲標的子集。 請參閱。 若要搜尋所有可能的標籤,請將此參數設定為 DEBUG_FLR_MASK_ALL。
傳回值
如果 DebugFailureAnalysis 物件具有 FA 專案,在符合條件的指定專案之後,這個方法會傳回 FA_ENTRY 結構的指標。 否則,此方法會傳回NULL 。
言論
此方法會搜尋符合此條件的 FA_ENTRY 結構:
entry->Tag & TagMask == Tag
標記會在 extsfns.h 中定義為 DEBUG_FLR_PARAM_TYPE 列舉的值,也稱為 FA_TAG 列舉。 標記會以群組方式排列,讓您可以使用 TagMask 在特定群組內搜尋。 例如,有一組與集區錯誤相關的標記。 指派給此群組中標籤的數值位於範圍中0x400,0x401 ...0x406。 此群組中具有標籤的每個 FA_ENTRY 都符合下列條件:
entry->Tag & 0xFFFFFF00 == 0x400
下列代碼段顯示 FA_TAG 列舉的一部分。
...
// Pool
DEBUG_FLR_POOL_ADDRESS = 0x400,
DEBUG_FLR_SPECIAL_POOL_CORRUPTION_TYPE,
DEBUG_FLR_CORRUPTING_POOL_ADDRESS,
DEBUG_FLR_CORRUPTING_POOL_TAG,
DEBUG_FLR_FREED_POOL_TAG,
DEBUG_FLR_LEAKED_SESSION_POOL_TAG,
DEBUG_FLR_CLIENT_DRIVER,
// Filesystem
DEBUG_FLR_FILE_ID = 0x500,
DEBUG_FLR_FILE_LINE,
...
例子
範例 1
下列範例示範如何尋找標籤等於 DEBUG_FLR_MANAGED_EXCEPTION_OBJECT的所有失敗分析專案。 假設 pAnalysis
是 IDebugFailureAnalysis2 介面的指標。
FA_ENTRY entry = pAnalysis->Get(DEBUG_FLR_MANAGED_EXCEPTION_OBJECT);
while(NULL != entry)
{
// Do something with the entry.
entry = pAnalysis->GetNext(DEBUG_FLR_MANAGED_EXCEPTION_OBJECT, DEBUG_FLR_MASK_ALL);
}
範例 2
下列範例示範如何尋找集區群組中具有標籤的所有FA專案。 回想一下,集區群組中的卷標在範圍0x400、0x401...0x406。 假設 pAnalysis
是 IDebugFailureAnalysis2 介面的指標。
FA_ENTRY entry = pAnalysis->GetNext(NULL, (FA_TAG)0x400, (FA_TAG)0xFFFFFF00);
while(NULL != entry)
{
// Do something with the entry.
entry = pAnalysis->GetNext(entry, (FA_TAG)0x400, (FA_TAG)0xFFFFFF00);
}
範例 3
您可以在範圍中建立自己的自定義標籤,0xA0000001到0xAFFFFFFF。
下列範例示範如何尋找具有自定義標籤的所有失敗分析專案。 換句話說,程式代碼會尋找具有符合此條件之標籤的所有專案:
entry->Tag & 0xF0000000 == 0xA0000000
具有標籤的專案0xA0000001,0xA0000002...0xAFFFFFF滿足條件。
FA_ENTRY entry = pAnalysis->GetNext(NULL, (FA_TAG)0xA0000000, (FA_TAG)0xF0000000);
while(NULL != entry)
{
// Do something with the Entry
entry = pAnalysis->GetNext(entry, (FA_TAG)0xA0000000, (FA_TAG)0xF0000000);
}
要求
要求 | 價值 |
---|---|
目標平臺 | 桌面 |
標頭 | extsfns.h |