DIF_TROUBLESHOOTER

DIF_TROUBLESHOOTER要求可讓安裝程式啟動裝置的疑難排解員,或傳回 CHM 和 HTM 疑難排解員檔案,讓 Windows 啟動。

注意 只有 Windows Server 2003、Windows XP 和 Microsoft Windows 2000 才支援此 DIF 程式碼。

傳送時

當使用者在 裝置管理員 中按一下裝置的 [疑難排解員] 按鈕時。

誰處理

類別共同安裝程式

可以處理

裝置共同安裝程式

可以處理

類別安裝程式

可以處理

安裝程式輸入

DeviceInfoSet
提供包含 裝置之裝置資訊集 的控制碼。

DeviceInfoData
提供 SP_DEVINFO_DATA 結構的指標,以識別裝置資訊集中的裝置。

裝置安裝參數
DeviceInfoData相關聯的裝置安裝參數 (SP_DEVINSTALL_PARAMS)

類別安裝參數
SP_TROUBLESHOOTER_PARAMS結構與DeviceInfoData相關聯。

安裝程式輸出

類別安裝參數
安裝程式可能會修改 SP_TROUBLESHOOTER_PARAMS、設定 CHM 或 HTML 檔案。

安裝程式傳回值

如果共同安裝程式未處理此要求,它會從前置處理階段傳回NO_ERROR。

如果共同安裝程式處理此要求,則會在其後處理階段中執行此動作。 如果共同安裝程式提供 CHM 和 HTML 檔案,則會傳播收到的狀態 (可能ERROR_DI_DO_DEFAULT) 。 如果共同安裝程式執行疑難排解員並修正問題,共同安裝程式會傳回NO_ERROR。 如果共同安裝程式執行疑難排解員,但無法修正問題,則會傳播收到的狀態 (ERROR_DI_DO_DEFAULT) 。

如果類別安裝程式提供 CHM 檔案和 HTML 檔案,或類別安裝程式會執行疑難排解員,但無法修正問題,則類別安裝程式會傳回ERROR_DI_DO_DEFAULT。 Windows 後續會呼叫預設處理常式。

如果類別安裝程式啟動自己的疑難排解員並修正問題,則類別安裝程式會傳回NO_ERROR。 Windows 後續不會呼叫預設處理常式。

如果類別安裝程式發生錯誤,安裝程式會傳回適當的 Win32 錯誤碼。 Windows 後續不會呼叫預設處理常式。

預設 DIF 程式碼處理常式

DIF_TROUBLESHOOTER沒有預設處理常式,但作業系統會提供預設疑難排解員,可在沒有安裝程式提供的疑難排解員時嘗試解決裝置問題。

安裝程式作業

安裝程式 會呼叫 CM_Get_DevNode_Status ,以取得裝置狀態和 CM 問題碼。 視問題而定,安裝程式可能會提供疑難排解員、說明檔或沒有任何專案。 疑難排解員可能會解決裝置的問題。 如果疑難排解員解決問題,它應該呼叫 SetupDiCallClassInstaller 來傳送類型為 DICS_PROPCHANGE 的DIF_PROPERTYCHANGE要求。 如果安裝程式未提供裝置的疑難排解員,它可能會為使用者提供問題解決建議的說明檔。

如果沒有安裝程式執行自己的疑難排解員,Windows 會執行 HTML 說明,向使用者顯示資訊。 如果安裝程式在類別安裝參數中提供了 CHM 檔案,Windows 會顯示該檔案。 否則,Windows 會顯示系統提供的疑難排解資訊。

類別安裝參數最多包含一個 ChmFileHtmlTroubleShooter 配對。 如果有多個安裝程式指定這些值,Windows 會使用最後一個處理 DIF 要求的安裝程式所設定的值。

如需 DIF 程式碼的詳細資訊,請參閱 處理 DIF 程式碼

規格需求

版本

Windows Server 2003、Windows XP 和 Microsoft Windows 2000 中支援。

標頭

Setupapi.h (包括 Setupapi.h)

另請參閱

CM_Get_DevNode_Status

SP_DEVINFO_DATA

SP_DEVINSTALL_PARAMS

SP_TROUBLESHOOTER_PARAMS