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

可能的值:

含义
NDF_ADD_CAPTURE_TRACE
0x0001
在诊断期间启用网络跟踪。 诊断结果将包含在 NdfGetTraceFile 返回的事件跟踪日志 (ETL) 文件中。
NDF_APPLY_INCLUSION_LIST_FILTER
0x0002
对返回的根本原因应用筛选,使其与内置脚本诊断行为保持一致。 如果没有此标志,则不会筛选根本原因。 此标志必须由调用方设置,因此现有调用方除非显式指定此标志,否则不会看到行为更改。
注意仅适用于 Windows 8 和 Windows Server 2012。
 

返回值

类型: HRESULT

可能的返回值包括但不限于以下内容。

返回代码 说明
S_OK
操作成功。
E_HANDLE
NDF 事件句柄无效。
WAIT_TIMEOUT
诊断例程已终止,因为它所花费的时间长于 dwWait 中指定的超时时间。

注解

此函数适用于未显示用户界面或未使用标准 Windows 体验的方案, (与媒体中心和嵌入式应用程序) 一样。 NdfExecuteDiagnosis 将启动诊断用户界面,应在使用标准 Windows 体验的方案中使用。 可以调用 NdfExecuteDiagnosisNdfDiagnoseIncident,但不能同时调用 NdfExecuteDiagnoseIncident

在使用此 API 之前,应用程序必须调用事件创建函数(例如 NdfCreateWebIncident)来启动 NDF 诊断过程。 然后,应用程序调用 NdfDiagnoseIncident 来诊断问题。 如果诊断进程识别出一些可能的修复,应用程序可以调用 NdfRepairIncident 来修复问题,而无需显示用户界面。 如果应用程序想要取消正在进行的 NdfDiagnoseIncident 调用,可以选择从单独的线程调用 NdfCancelIncident。 最后,应用程序调用 NdfCloseIncident

下表显示了一些根本原因及其相应修复的示例。

根本原因 GUID 修复 GUID 根本原因说明 修复说明
{4DA030B8-86E5-4b6a-A879-2FFF8443B527} {1296DFF0-D04E-4be1-A512-90F04DDFA3E6} 网络电缆未正确插入或可能损坏。 将以太网电缆插入此计算机。\n以太网电缆看起来像电话电缆,但两端有较大的连接器。 将此电缆插入计算机背面或一侧的开口。\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%”“适配器。\n这有时可以解决间歇性问题。

要求

要求
最低受支持的客户端 Windows 7 [仅限桌面应用]
最低受支持的服务器 Windows Server 2008 R2 [仅限桌面应用]
目标平台 Windows
标头 ndfapi.h
Library Ndfapi.lib
DLL Ndfapi.dll

另请参阅

NdfExecuteDiagnosis

NdfGetTraceFile

RootCauseInfo