共用方式為


DIF_DETECT

DIF_DETECT要求會指示安裝程式偵測特定類別的非 PnP 裝置,並將裝置新增至裝置資訊集。 此要求用於非 PnP 裝置。

傳送時

[新增硬體精靈 ] 偵測到非 PnP 裝置時。

誰處理

類別共同安裝程式

可以處理

裝置共同安裝程式

未處理

類別安裝程式

可以處理

安裝程式輸入

DeviceInfoSet
提供 裝置資訊集的控制碼。 有一個與DeviceInfoSet相關聯的裝置安裝類別

DeviceInfoData

裝置安裝參數
有與 DeviceInfoSet 相關聯的裝置安裝參數。

類別安裝參數
SP_DETECTDEVICE_PARAMS結構與DeviceInfoSet相關聯。 參數包含類別安裝程式呼叫的回呼常式,以指出偵測作業的進度。

安裝程式輸出

DeviceInfoSet
安裝程式會針對它偵測到的每個裝置,將裝置資訊元素新增至 DeviceInfoSet ,而不論先前是否偵測到並安裝裝置。

裝置安裝參數
安裝程式可以修改 DeviceInfoSet 的裝置 安裝參數,或針對它所建立的新裝置資訊元素。

安裝程式傳回值

如果共同安裝程式未偵測到裝置,它會從前置處理階段傳回NO_ERROR。 如果共同安裝程式偵測到裝置,可以在前置處理或後置處理期間執行此動作,並傳回NO_ERROR或 Win32 錯誤碼。

如果類別安裝程式偵測到裝置,它會傳回NO_ERROR或適當的 Win32 錯誤碼。 如果類別安裝程式未處理此 DIF 要求,則會傳回ERROR_DI_DO_DEFAULT。

預設 DIF 程式碼處理常式

安裝程式作業

為了回應DIF_DETECT要求,安裝程式可以偵測其安裝類別的裝置。

如果安裝程式偵測到裝置,應該至少執行下列動作:

  • 如果偵測可能會花費很長的時間,請在SP_DETECTDEVICE_PARAMS類別安裝參數中呼叫DetectProgressNotify 回呼常式。

  • 針對安裝程式偵測到的每個裝置,它應該:

    • (SetupDiCreateDeviceInfo) 建立裝置資訊元素。

    • 提供驅動程式選取的資訊。

      安裝程式可以手動選取裝置的驅動程式,或者安裝程式可以設定 Windows 用來尋找裝置 INF 的硬體識別碼。 安裝程式會呼叫 SetupDiSetDeviceRegistryProperty屬性值 為 SPDRP_HARDWAREID 來設定硬體識別碼。

    • 可能設定一些裝置安裝參數。

  • 傳回成功偵測的NO_ERROR,或傳回 Win32 錯誤碼。

如果一或多個安裝程式偵測到裝置 () 以回應此 DIF 程式碼,Windows 會將偵測到的裝置清單與其目前的裝置清單進行比較。 如果安裝程式偵測到新的裝置,Windows 會嘗試安裝裝置。 如果安裝程式省略了安裝程式清單中出現的裝置,Windows 通常會移除裝置。

若要在 GUI 模式設定期間偵測非 PnP 裝置,安裝程式必須處理 DIF_FIRSTTIMESETUP 要求。 GUI 模式安裝程式不會將DIF_DETECT要求傳送至安裝程式。

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

規格需求

版本

Microsoft Windows 2000 和更新版本的 Windows 支援。

標頭

Setupapi.h (包括 Setupapi.h)

另請參閱

DIF_DETECT

DIF_FIRSTTIMESETUP

SetupDiCreateDeviceInfo

SP_DETECTDEVICE_PARAMS

SP_DEVINSTALL_PARAMS