IDebugFailureAnalysis::GetNext 메서드(extsfns.h)
GetNext 메서드는 Tag 및 TagMask 매개 변수로 지정된 조건을 충족하는 지정된 FA 항목 후 다음 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 == 태그
태그는 extsfns.h에서 FA_TAG 열거형이라고도 하는 DEBUG_FLR_PARAM_TYPE 열거형의 값으로 정의됩니다. 태그는 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 동일한 모든 실패 분석 항목을 찾는 방법을 보여 줍니다. 가 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 항목을 찾는 방법을 보여 줍니다. 풀 그룹의 태그에는 범위 0x400 0x401 값이 있습니다. 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);
}
요구 사항
요구 사항 | 값 |
---|---|
대상 플랫폼 | 데스크톱 |
머리글 | extsfns.h |