Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
A Microsoft fornece acesso à funcionalidade NDF por meio de uma API pública. Quando ocorre um problema, o aplicativo pode usar essa API para aproveitar essa funcionalidade dentro do contexto de um aplicativo específico.
Existem três etapas para realizar o diagnóstico com NDF: criar um incidente, executar o diagnóstico e os reparos, e fechar o incidente. Esta visão geral indica quais funções NDF podem ser relevantes para um cenário específico. Informações detalhadas sobre cada função podem ser encontradas na secção de referência NDF.
Criando um incidente
Uma sessão de diagnóstico de NDF requer um incidente específico para ser analisado. Existem várias funções que podem ser usadas para criar um incidente. Escolha a função que mais se aproxima do que o aplicativo estava tentando fazer quando a falha ocorreu.
- NdfCreateConnectivityIncident: Problemas gerais de conectividade com a Internet que não precisam de informações adicionais.
- NdfCreateWebIncident/NdfCreateWebIncidentEx: Conectando-se a uma URL HTTP ou HTTPS.
- NdfCreateSharingIncident: Acessando um caminho UNC ou compartilhamento de arquivos.
- NdfCreateDNSIncident: Resolvendo um nome de host DNS.
- NdfCreatePnrpIncident: Resolvendo um nome de par PNRP.
- NdfCreateGroupingIncident: Ingressar num grupo peer-to-peer.
- NdfCreateWinSockIncident: Conectando-se a um destino usando um soquete (quando nenhuma das outras funções se aplica especificamente).
- NdfCreateIncident: Usado quando nenhum outro cenário é apropriado e a classe auxiliar NDF específica a ser invocada é conhecida (juntamente com os argumentos necessários). Usado principalmente para fins de teste por desenvolvedores de aplicativos que escreveram sua própria classe auxiliar.
Execução de diagnóstico e reparações
Há duas maneiras de iniciar a funcionalidade de diagnóstico e reparo.
Usando a interface do usuário do Windows (recomendado)
Ao executar na interface de usuário padrão do Windows, você pode simplesmente chamar o função NdfExecuteDiagnosis. O Assistente NDF iniciará e ajudará o usuário a identificar (e, se possível, e resolver) o problema. A função retornará após a conclusão deste processo. A interface do usuário é opcionalmente modal para o seu aplicativo.
Usando uma interface de usuário personalizada (somente Windows 7 e posterior)
Diferentes funções estão disponíveis para uso em cenários onde nenhuma interface do usuário está sendo mostrada ou onde a experiência padrão do Windows não está sendo usada (como Media Center, aplicativos incorporados e o prompt de comando). Esta opção ignora a funcionalidade de interação com o utilizador fornecida pelo Assistente de NDF, que inclui limitar os resultados às causas principais totalmente suportadas, bem como heurísticas para apresentar ao utilizador as reparações na ordem recomendada. Ao utilizar estas funções, deve-se providenciar a funcionalidade necessária por conta própria. Você também deve se certificar de liberar a memória usada pelos resultados do diagnóstico.
Para iniciar o diagnóstico, execute a função NdfDiagnoseIncident. Quaisquer problemas encontrados serão devolvidos à aplicação como uma coleção de estruturas RootCauseInfo que descrevem as causas principais identificadas e as reparações possíveis.
Depois de selecionar um reparo (ou pedir ao usuário para selecionar um reparo), NdfRepairIncident deve ser chamado para tentar o reparo e determinar se o problema foi resolvido.
Em alguns casos, um reparo pode ser executado com êxito, mas não resolverá o problema. Nesses casos, recomenda-se fechar o incidente existente e, em seguida, abrir um novo. Isso garantirá que quaisquer novos problemas desmascarados pelo reparo inicial sejam identificados. Por exemplo, suponha que nenhuma rede sem fio tenha sido visível. Depois de redefinir o adaptador, as redes sem fio ficam visíveis, mas nenhuma delas está na lista de preferências. Este é um novo problema que exigiria um novo diagnóstico para ser identificado. Se essa segunda tentativa de diagnóstico não identificar problemas adicionais, um reparo diferente pode ser tentado para resolver o problema original, ou o usuário pode ser informado de que o problema não pôde ser resolvido.
NdfDiagnoseIncident e NdfRepairIncident são APIs síncronas. Se desejar cancelar a atividade iniciada por essas funções, chame NdfCancelIncident de outro thread. A função retornará no próximo ponto de parada disponível no processo de diagnóstico ou reparo.
A qualquer momento, você pode, opcionalmente, chamar NdfGetTraceFile para recuperar uma cópia do log NDF para a sessão de diagnóstico atual e incluí-la nos logs do aplicativo. O log é esvaziado assim que é recuperado, e as chamadas subsequentes só recuperarão eventos que ocorreram após a última chamada para esta função.
Encerramento de um incidente
Quando terminar de diagnosticar um incidente, ligue NdfCloseIncident para liberar recursos do sistema associados à execução de diagnósticos nesse incidente. (Observe que isso não libera objetos criados por NdfDiagnoseIncident.