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
可能的值:
值 | 意義 |
---|---|
|
在診斷期間開啟網路追蹤。 診斷結果會包含在 NdfGetTraceFile 所傳回的事件追蹤記錄檔 (ETL) 檔案中。 |
|
將篩選套用至傳回的根本原因,使其與內建腳本診斷行為一致。 如果沒有此旗標,將不會篩選根本原因。 此旗標必須由呼叫端設定,因此除非現有呼叫端明確指定此旗標,否則不會看到行為變更。
注意僅適用於 Windows 8和 Windows Server 2012。
|
傳回值
類型: HRESULT
可能的傳回值包括但不限於下列各項。
傳回碼 | 描述 |
---|---|
|
作業成功。 |
|
NDF 事件句柄無效。 |
|
診斷例程已終止,因為它所花費的時間超過 dwWait 中指定的逾時時間。 |
備註
此函式適用於未顯示任何使用者介面的情況,或未 (使用標準 Windows 體驗的情況,如同媒體中心和內嵌應用程式) 。 NdfExecuteDiagn, 將會啟動診斷使用者介面,且應該用於使用標準 Windows 體驗的案例中。 您可以呼叫 NdfExecuteDiagn, 或 NdfDiagnoseIncident,但不能同時呼叫這兩者。
使用此 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 |
程式庫 | Ndfapi.lib |
Dll | Ndfapi.dll |