IDebugFailureAnalysis::GetNext メソッド (extsfns.h)
GetNext メソッドは、指定された FA エントリの後に、Tag パラメーターと TagMask パラメーターで指定された条件を満たす次の FA エントリを DebugFailureAnalysis オブジェクトで検索します。
構文
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 == タグ
タグは、 DEBUG_FLR_PARAM_TYPE 列挙型の値として extsfns.h で定義されます。これは 、FA_TAG 列挙とも呼ばれます。 タグは、 TagMask を使用して特定のグループ内で検索できるように、グループに配置されます。 たとえば、プール エラーに関連するタグのグループがあります。 このグループ内のタグに割り当てられた数値は、0x401 0x400範囲内にあります。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と等しいタグを持つすべてのエラー分析 エントリを検索する方法を示しています。 が IDebugFailureAnalysis2 インターフェイスへのポインターであるとしますpAnalysis
。
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 エントリを検索する方法を示しています。 [プール] グループのタグの値が、0x401 0x400範囲内にあることを思い出してください。0x406。 が IDebugFailureAnalysis2 インターフェイスへのポインターであるとしますpAnalysis
。
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
0xAFFFFFFFを使用して、0xA0000001範囲内に独自のカスタム タグを作成できます。
次の例は、カスタム タグを持つすべてのエラー分析エントリを検索する方法を示しています。 言い換えると、コードは、この条件を満たすタグを持つすべてのエントリを検索します。
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);
}
要件
要件 | 値 |
---|---|
対象プラットフォーム | デスクトップ |
Header | extsfns.h |