Compartilhar via


Função NdfDiagnoseIncident (ndfapi.h)

A função NdfDiagnoseIncident diagnostica a causa raiz de um incidente sem exibir uma interface do usuário.

Sintaxe

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

Parâmetros

[in] Handle

Tipo: NDFHANDLE

Um identificador para o incidente da Estrutura de Diagnóstico de Rede.

[out] RootCauseCount

Tipo: ULONG*

O número de causas raiz que poderiam ter causado esse incidente. Se o diagnóstico não for bem-sucedido, o conteúdo desse parâmetro deverá ser ignorado.

[out] RootCauses

Tipo: RootCauseInfo**

Uma coleção de estruturas RootCauseInfo que contêm uma descrição detalhada da causa raiz. Se o diagnóstico for bem-sucedido, esse parâmetro conterá as causas raiz folha identificadas na sessão de diagnóstico e quaisquer causas raiz não folha que tenham um reparo disponível. Se o diagnóstico não for bem-sucedido, o conteúdo desse parâmetro deverá ser ignorado.

A memória alocada para essas estruturas deve ser liberada posteriormente. Para obter um exemplo de como fazer isso, consulte Os Exemplos de Diagnóstico de Rede do Microsoft Windows.

dwWait

Tipo: DWORD

O período de tempo, em milissegundos, para aguardar antes de encerrar a rotina de diagnóstico. INFINITE poderá ser passado para esse parâmetro se nenhum tempo limite for desejado.

dwFlags

Tipo: DWORD

Valores possíveis:

Valor Significado
NDF_ADD_CAPTURE_TRACE
0x0001
Ativa o rastreamento de rede durante o diagnóstico. Os resultados do diagnóstico serão incluídos no arquivo ETL (Log de Rastreamento de Eventos) retornado por NdfGetTraceFile.
NDF_APPLY_INCLUSION_LIST_FILTER
0x0002
Aplica a filtragem às causas raiz retornadas para que elas sejam consistentes com o comportamento de diagnóstico com script in-box. Sem esse sinalizador, as causas raiz não serão filtradas. Esse sinalizador deve ser definido pelo chamador, portanto, os chamadores existentes não verão uma alteração no comportamento, a menos que especifiquem explicitamente esse sinalizador.
Nota Disponível somente em Windows 8 e Windows Server 2012.
 

Retornar valor

Tipo: HRESULT

Os possíveis valores retornados incluem, mas não se limitam a, o seguinte.

Código de retorno Descrição
S_OK
A operação foi realizada com êxito.
E_HANDLE
O identificador de incidente NDF não é válido.
WAIT_TIMEOUT
A rotina de diagnóstico foi encerrada porque demorou mais do que o tempo limite especificado em dwWait.

Comentários

Essa função destina-se a ser usada com cenários em que nenhuma interface do usuário é mostrada ou onde a experiência padrão do Windows não está sendo usada (como com o Centro de Mídia e aplicativos inseridos). O NdfExecuteDiagnosis iniciará o diagnóstico interface do usuário e deverá ser usado em cenários usando a experiência padrão do Windows. Você pode chamar NdfExecuteDiagnosis ou NdfDiagnoseIncident, mas não ambos.

Antes de usar essa API, um aplicativo deve chamar uma função de criação de incidentes, como NdfCreateWebIncident, para iniciar o processo de diagnóstico do NDF. Em seguida, o aplicativo chama NdfDiagnoseIncident para diagnosticar o problema. Se o processo de diagnóstico identificar alguns reparos possíveis, o aplicativo poderá chamar NdfRepairIncident para reparar o problema sem exibir uma interface do usuário. NdfCancelIncident pode, opcionalmente, ser chamado de um thread separado se o aplicativo quiser cancelar uma chamada NdfDiagnoseIncident em andamento . Por fim, o aplicativo chama NdfCloseIncident.

A tabela a seguir mostra alguns exemplos de causas raiz e seus reparos correspondentes.

GUID de causa raiz Reparar GUID Descrição da causa raiz Descrição do reparo
{4DA030B8-86E5-4b6a-A879-2FFF8443B527} {1296DFF0-D04E-4be1-A512-90F04DDFA3E6} Um cabo de rede não está conectado corretamente ou pode estar quebrado. Conecte um cabo Ethernet a este computador.\nUm cabo Ethernet parece um cabo de telefone, mas com conectores maiores nas extremidades. Conecte esse cabo à abertura na parte traseira ou lateral do computador.\nVerifique se a outra extremidade do cabo está conectada ao roteador. Se isso não ajudar, tente usar um cabo diferente.
{60372FD2-AD60-45c2-BD83-6B827FC438DF} {07d37f7b-fa5e-4443-bda7-ab107b29afb6} O adaptador %InterfaceName% está desabilitado. Habilite o adaptador %FriendlyInterfaceName%.
{245A9D66-AE9C-4518-A5B4-655752B0A5BD} {07d37f7b-fa5e-4443-bda7-ab107b29afb9} %InterfaceName%"" não tem uma configuração de IP válida. Redefina o adaptador "%InterfaceName%"". \nÀs vezes, isso pode resolve um problema intermitente.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 7 [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2008 R2 [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho ndfapi.h
Biblioteca Ndfapi.lib
DLL Ndfapi.dll

Confira também

NdfExecuteDiagnosis

NdfGetTraceFile

RootCauseInfo