Share via


Función NdfDiagnoseIncident (ndfapi.h)

La función NdfDiagnoseIncident diagnostica la causa principal de un incidente sin mostrar una interfaz de usuario.

Sintaxis

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

Parámetros

[in] Handle

Tipo: NDFHANDLE

Identificador del incidente de Network Diagnostics Framework.

[out] RootCauseCount

Tipo: ULONG*

Número de causas principales que podrían haber causado este incidente. Si el diagnóstico no se realiza correctamente, se debe omitir el contenido de este parámetro.

[out] RootCauses

Tipo: RootCauseInfo**

Colección de estructuras RootCauseInfo que contienen una descripción detallada de la causa principal. Si el diagnóstico se realiza correctamente, este parámetro contiene las causas principales de la hoja identificadas en la sesión de diagnóstico y cualquier causa raíz no hoja que tenga una reparación disponible. Si el diagnóstico no se realiza correctamente, se debe omitir el contenido de este parámetro.

La memoria asignada a estas estructuras debe liberarse más adelante. Para obtener un ejemplo de cómo hacerlo, consulte Los ejemplos de diagnóstico de red de Microsoft Windows.

dwWait

Tipo: DWORD

El período de tiempo, en milisegundos, que se esperará antes de finalizar la rutina de diagnóstico. INFINITE se puede pasar a este parámetro si no se desea ningún tiempo de espera.

dwFlags

Tipo: DWORD

Valores posibles:

Valor Significado
NDF_ADD_CAPTURE_TRACE
0x0001
Activa el seguimiento de red durante el diagnóstico. Los resultados de diagnóstico se incluirán en el archivo de registro de seguimiento de eventos (ETL) devuelto por NdfGetTraceFile.
NDF_APPLY_INCLUSION_LIST_FILTER
0x0002
Aplica el filtrado a las causas raíz devueltas para que sean coherentes con el comportamiento de diagnóstico con scripts en el cuadro. Sin esta marca, las causas principales no se filtrarán. El autor de la llamada debe establecer esta marca, por lo que los autores de llamadas existentes no verán un cambio de comportamiento a menos que especifiquen explícitamente esta marca.
Nota Solo está disponible en Windows 8 y Windows Server 2012.
 

Valor devuelto

Tipo: HRESULT

Entre los valores devueltos posibles se incluyen, entre otros, los siguientes.

Código devuelto Descripción
S_OK
La operación se realizó correctamente.
E_HANDLE
El identificador de incidente de NDF no es válido.
WAIT_TIMEOUT
La rutina de diagnóstico ha finalizado porque ha tardado más tiempo que el tiempo de espera especificado en dwWait.

Comentarios

Esta función está pensada para su uso con escenarios en los que no se muestra ninguna interfaz de usuario o donde no se usa la experiencia estándar de Windows (como con Media Center y aplicaciones insertadas). NdfExecuteDia diagnostics iniciará la interfaz de usuario de diagnóstico y se debe usar en escenarios con la experiencia estándar de Windows. Puede llamar a NdfExecuteDia diagnostic o NdfDiagnoseIncident, pero no a ambos.

Antes de usar esta API, una aplicación debe llamar a una función de creación de incidentes como NdfCreateWebIncident para iniciar el proceso de diagnóstico de NDF. A continuación, la aplicación llama a NdfDiagnoseIncident para diagnosticar el problema. Si el proceso de diagnóstico identifica algunas reparaciones posibles, la aplicación puede llamar a NdfRepairIncident para reparar el problema sin mostrar una interfaz de usuario. Opcionalmente, se puede llamar a NdfCancelIncident desde un subproceso independiente si la aplicación quiere cancelar una llamada NdfDiagnoseIncident en curso. Por último, la aplicación llama a NdfCloseIncident.

En la tabla siguiente se muestran algunos ejemplos de causas principales y sus reparaciones correspondientes.

GUID de causa principal GUID de reparación Descripción de la causa principal Descripción de reparación
{4DA030B8-86E5-4b6a-A879-2FFF8443B527} {1296DFF0-D04E-4be1-A512-90F04DDFA3E6} Un cable de red no está conectado correctamente o puede estar roto. Conecte un cable Ethernet a este equipo.\nUn cable Ethernet se parece a un cable telefónico, pero con conectores más grandes en los extremos. Conecte este cable a la apertura en la parte posterior o lateral del equipo.\nAsegúrese de que el otro extremo del cable está conectado al router. Si eso no ayuda, intente usar un cable diferente.
{60372FD2-AD60-45c2-BD83-6B827FC438DF} {07d37f7b-fa5e-4443-bda7-ab107b29afb6} El adaptador %InterfaceName% está deshabilitado. Habilite el adaptador %FriendlyInterfaceName%.
{245A9D66-AE9C-4518-A5B4-655752B0A5BD} {07d37f7b-fa5e-4443-bda7-ab107b29afb9} %InterfaceName%"" no tiene una configuración IP válida. Restablezca el adaptador ""%InterfaceName%"" \nEsto a veces puede resolver un problema intermitente.

Requisitos

Requisito Value
Cliente mínimo compatible Windows 7 [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2008 R2 [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado ndfapi.h
Library Ndfapi.lib
Archivo DLL Ndfapi.dll

Consulte también

NdfExecuteDia diagnostic

NdfGetTraceFile

RootCauseInfo