다음을 통해 공유


NDF 기능 사용

Microsoft는 공용 API를 통해 NDF 기능에 대한 액세스를 제공합니다. 문제가 발생하면 애플리케이션은 이 API를 사용하여 특정 애플리케이션의 컨텍스트 내에서 이 기능을 활용할 수 있습니다.

NDF를 사용하여 진단을 수행하는 단계는 인시던트 만들기, 진단 및 수리 실행, 인시던트 종료의 세 가지 단계입니다. 이 개요는 특정 시나리오와 관련이 있을 수 있는 NDF 함수를 나타냅니다. 각 함수에 대한 자세한 내용은 NDF 참조 섹션에서 찾을 수 있습니다.

인시던트 만들기

NDF 진단 세션에는 진단할 특정 인시던트가 필요합니다. 인시던트를 만드는 데 사용할 수 있는 몇 가지 함수가 있습니다. 오류가 발생했을 때 애플리케이션이 수행하려고 했던 작업과 가장 일치하는 함수를 선택합니다.

진단 및 복구 실행

진단 및 복구 기능을 시작하는 방법에는 두 가지가 있습니다.

  • Windows 사용자 인터페이스 사용(권장)

    표준 Windows 사용자 인터페이스에서 실행하는 경우 NdfExecuteDiagnosis 함수를 호출하기만 하면 됩니다. NDF 마법사는 사용자가 문제를 식별하고(가능하면) 해결하는 데 도움을 줍니다. 이 프로세스가 완료된 후 함수가 반환됩니다. 사용자 인터페이스는 필요에 따라 애플리케이션에 모달입니다.

  • 사용자 지정 사용자 인터페이스 사용(Windows 7 이상만 해당)

    사용자 인터페이스가 표시되지 않거나 표준 Windows 환경(예: Media Center, 포함된 애플리케이션 및 명령 프롬프트)이 사용되지 않는 시나리오에서 다양한 함수를 사용할 수 있습니다. 이 옵션은 NDF 마법사에 제공된 사용자 환경 기능을 무시합니다. 여기에는 결과를 완전히 지원되는 근본 원인으로 제한하고 권장 순서대로 사용자에게 복구를 제공하는 추론이 포함됩니다. 이러한 함수를 사용하는 경우 이러한 기능을 직접 제공해야 합니다. 또한 진단 결과에 사용되는 메모리를 해제해야 합니다.

    진단을 시작하려면 NdfDiagnoseIncident 함수를 호출합니다. 발견된 모든 문제는 식별된 근본 원인 및 가능한 복구를 설명하는 RootCauseInfo 구조의 컬렉션으로 애플리케이션에 반환됩니다.

    복구를 선택하거나 사용자에게 복구를 선택하도록 요청한 후 NdfRepairIncident 를 호출하여 복구를 시도하고 문제가 해결되었는지 여부를 확인해야 합니다.

    경우에 따라 복구가 성공적으로 수행될 수 있지만 문제를 resolve 않습니다. 이러한 경우 기존 인시던트가 닫히고 새 인시던트가 열리는 것이 좋습니다. 이렇게 하면 초기 복구에서 마스크를 해제한 새 문제가 식별됩니다. 예를 들어 무선 네트워크가 표시되지 않았다고 가정합니다. 어댑터를 다시 설정하면 무선 네트워크가 표시되지만 기본 설정 목록에는 없습니다. 이것은 식별하기 위해 새로운 진단이 필요한 새로운 문제입니다. 이러한 두 번째 진단 시도가 추가 문제를 식별하지 못하는 경우 원래 문제를 resolve 다른 복구를 시도하거나 문제를 해결할 수 없음을 사용자에게 알릴 수 있습니다.

    NdfDiagnoseIncidentNdfRepairIncident 는 동기 API입니다. 이러한 함수에서 시작된 활동을 취소하려면 다른 스레드에서 NdfCancelIncident 를 호출합니다. 함수는 진단 또는 복구 프로세스에서 사용 가능한 다음 중지 지점에서 반환됩니다.

    언제든지 필요에 따라 NdfGetTraceFile 을 호출하여 현재 진단 세션에 대한 NDF 로그의 복사본을 검색하고 애플리케이션 로그에 포함할 수 있습니다. 로그가 검색되면 플러시되고 후속 호출은 이 함수에 대한 마지막 호출 후에 발생한 이벤트만 검색합니다.

인시던트 닫기

인시던트 진단이 완료되면 NdfCloseIncident를 호출하여 해당 인시던트에 대한 진단 수행하는 것과 관련된 시스템 리소스를 해제합니다. NdfDiagnoseIncident에서 만든 개체는 해제되지 않습니다.