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
가능한 값은 다음과 같습니다.
값 | 의미 |
---|---|
|
진단 중에 네트워크 추적을 켭니다. 진단 결과는 NdfGetTraceFile에서 반환된 ETL(이벤트 추적 로그) 파일에 포함됩니다. |
|
기본 스크립팅된 진단 동작과 일치하도록 반환된 근본 원인에 필터링을 적용합니다. 이 플래그가 없으면 근본 원인이 필터링되지 않습니다. 이 플래그는 호출자가 설정해야 하므로 기존 호출자는 이 플래그를 명시적으로 지정하지 않는 한 동작이 변경되지 않습니다.
참고 Windows 8 및 Windows Server 2012만 사용할 수 있습니다.
|
반환 값
형식: HRESULT
가능한 반환 값은 다음을 포함하지만 이에 국한되지 않습니다.
반환 코드 | Description |
---|---|
|
작업에 성공했습니다. |
|
NDF 인시던트 핸들이 잘못되었습니다. |
|
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 |