다음을 통해 공유


NdfDiagnoseIncident 함수(ndfapi.h)

NdfDiagnoseIncident 함수는 사용자 인터페이스를 표시하지 않고 인시던트의 근본 원인을 진단합니다.

구문

void NdfDiagnoseIncident(
  [in]  NDFHANDLE     Handle,
  [out] ULONG         *RootCauseCount,
  [out] RootCauseInfo **RootCauses,
        DWORD         dwWait,
        DWORD         dwFlags
);

매개 변수

[in] Handle

형식: NDFHANDLE

네트워크 진단 프레임워크 인시던트에 대한 핸들입니다.

[out] RootCauseCount

형식: ULONG*

이 인시던트가 발생할 수 있는 근본 원인의 수입니다. 진단에 성공하지 못하면 이 매개 변수의 내용을 무시해야 합니다.

[out] RootCauses

형식: RootCauseInfo**

근본 원인에 대한 자세한 설명을 포함하는 RootCauseInfo 구조체의 컬렉션입니다. 진단에 성공하면 이 매개 변수에는 진단 세션에서 식별된 리프 루트 원인과 사용 가능한 복구가 있는 리프가 아닌 근본 원인이 모두 포함됩니다. 진단에 성공하지 못하면 이 매개 변수의 내용을 무시해야 합니다.

이러한 구조체에 할당된 메모리는 나중에 해제되어야 합니다. 이 작업을 수행하는 방법에 대한 예제는 Microsoft Windows 네트워크 진단 샘플을 참조하세요.

dwWait

형식:DWORD

진단 루틴을 종료하기 전에 대기할 시간(밀리초)입니다. 제한 시간이 필요하지 않은 경우 INFINITE가 이 매개 변수에 전달될 수 있습니다.

dwFlags

형식:DWORD

가능한 값은 다음과 같습니다.

의미
NDF_ADD_CAPTURE_TRACE
0x0001
진단 중에 네트워크 추적을 켭니다. 진단 결과는 NdfGetTraceFile에서 반환된 ETL(이벤트 추적 로그) 파일에 포함됩니다.
NDF_APPLY_INCLUSION_LIST_FILTER
0x0002
기본 스크립팅된 진단 동작과 일치하도록 반환된 근본 원인에 필터링을 적용합니다. 이 플래그가 없으면 근본 원인이 필터링되지 않습니다. 이 플래그는 호출자가 설정해야 하므로 기존 호출자는 이 플래그를 명시적으로 지정하지 않는 한 동작이 변경되지 않습니다.
참고 Windows 8 및 Windows Server 2012만 사용할 수 있습니다.
 

반환 값

형식: HRESULT

가능한 반환 값은 다음을 포함하지만 이에 국한되지 않습니다.

반환 코드 Description
S_OK
작업에 성공했습니다.
E_HANDLE
NDF 인시던트 핸들이 잘못되었습니다.
WAIT_TIMEOUT
dwWait에 지정된 제한 시간보다 오래 걸리기 때문에 진단 루틴이 종료되었습니다.

설명

이 함수는 사용자 인터페이스가 표시되지 않거나 표준 Windows 환경이 사용되지 않는 시나리오(Media Center 및 포함된 애플리케이션과 마찬가지로)에서 사용하기 위한 것입니다. NdfExecuteDiagnosis는 진단 사용자 인터페이스를 시작하며 표준 Windows 환경을 사용하는 시나리오에서 사용해야 합니다. NdfExecuteDiagnosis 또는 NdfDiagnoseIncident를 호출할 수 있지만 둘 다 호출할 수는 없습니다.

이 API를 사용하기 전에 애플리케이션은 NdfCreateWebIncident와 같은 인시던트 생성 함수를 호출하여 NDF 진단 프로세스를 시작해야 합니다. 그런 다음, 애플리케이션은 NdfDiagnoseIncident 를 호출하여 문제를 진단합니다. 진단 프로세스에서 몇 가지 가능한 복구를 식별하는 경우 애플리케이션은 NdfRepairIncident를 호출하여 사용자 인터페이스를 표시하지 않고 문제를 복구할 수 있습니다. 애플리케이션이 진행 중인 NdfDiagnoseIncident 호출을 취소하려는 경우 필요에 따라 별도의 스레드에서 NdfCancelIncident를 호출할 수 있습니다. 마지막으로 애플리케이션은 NdfCloseIncident를 호출합니다.

다음 표에서는 근본 원인 및 해당 복구의 몇 가지 예를 보여 줍니다.

근본 원인 GUID GUID 복구 근본 원인 설명 복구 설명
{4DA030B8-86E5-4b6a-A879-2FFF8443B527} {1296DFF0-D04E-4be1-A512-90F04DDFA3E6} 네트워크 케이블이 제대로 연결되어 있지 않거나 끊어질 수 있습니다. 이더넷 케이블을 이 컴퓨터에 연결합니다.\n이더넷 케이블은 전화 케이블처럼 보이지만 끝에 더 큰 커넥터가 있습니다. 이 케이블을 computer의 뒷면이나 측면의 여는 부분에 연결합니다.\n케이블의 다른 쪽 끝이 라우터에 연결되어 있는지 확인합니다. 도움이 되지 않는 경우 다른 케이블을 사용해 보세요.
{60372FD2-AD60-45c2-BD83-6B827FC438DF} {07d37f7b-fa5e-4443-bda7-ab107b29afb6} %InterfaceName% 어댑터가 비활성화되었습니다. %FriendlyInterfaceName% 어댑터를 사용하도록 설정합니다.
{245A9D66-AE9C-4518-A5B4-655752B0A5BD} {07d37f7b-fa5e-4443-bda7-ab107b29afb9} %InterfaceName%"""에 유효한 IP 구성이 없습니다. "%InterfaceName%"" adapter.\n다시 설정하면 간헐적인 문제가 resolve 수 있습니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 7 [데스크톱 앱만 해당]
지원되는 최소 서버 Windows Server 2008 R2 [데스크톱 앱만 해당]
대상 플랫폼 Windows
헤더 ndfapi.h
라이브러리 Ndfapi.lib
DLL Ndfapi.dll

추가 정보

NdfExecuteDiagnosis

NdfGetTraceFile

RootCauseInfo