DIF_FIRSTTIMESETUP

此 DIF 程式碼會保留供系統使用。 除非廠商提供安裝程式必須偵測到的非 PnP 裝置,否則廠商不得處理此要求。

DIF_FIRSTTIMESETUP要求會指示安裝程式執行在作業系統初始安裝期間必須完成的任何類別特定安裝工作。

傳送時

在 GUI 模式設定期間。

誰處理

類別共同安裝程式

可以處理

裝置共同安裝程式

不處理

類別安裝程式

可以處理

安裝程式輸入

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

DeviceInfoData

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

類別安裝參數

安裝程式輸出

DeviceInfoSet
安裝程式會將裝置資訊元素新增至 DeviceInfoSet ,以供其安裝的每個偵測到的裝置使用。 安裝程式也可能建置全域類別驅動程式清單。

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

安裝程式傳回值

類別共同安裝程式可以在前置處理或後置處理期間偵測裝置。 這類共同安裝程式會在偵測作業之後傳回) 和/或傳回NO_ERROR或 Win32 錯誤碼的ERROR_DI_POSTPROCESSING_REQUIRED (。 如果共同安裝程式未偵測到裝置,它會從其前置處理階段傳回NO_ERROR。

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

預設 DIF 程式碼處理常式

安裝程式作業

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

GUI 模式設定會以空的 DeviceInfoSet傳送DIF_FIRSTTIMESETUP要求。 安裝程式可以執行非 PnP 裝置的舊版偵測,並將其新增至 DeviceInfoSet。 從 Windows 9x/Me 或Windows NT移轉至 Microsoft Windows 2000 和更新版本的 Windows 時,系統提供的安裝程式也可以處理此 DIF 要求。

安裝程式會根據登錄資訊、呼叫核心模式偵測元件,或諮詢 unattend.txt在 作業系統升級期間執行移轉 DLL 時儲存的資訊,來偵測其安裝類別的新裝置。

如果安裝程式偵測到非 PnP 裝置,安裝程式應該選取裝置的驅動程式,如下所示:建立裝置資訊元素 (SetupDiCreateDeviceInfo) SPDRP_HARDWAREID、呼叫 SetupDiSetDeviceRegistryProperty、呼叫 SetupDiBuildDriverInfoList,然後呼叫 SetupDiCallClassInstaller 來傳送 DIF_SELECTBESTCOMPATDRV 要求。

如果一或多個安裝程式偵測到裝置 () 回應此 DIF 程式碼,GUI 模式安裝程式會嘗試安裝裝置 (s) 。 GUI 模式安裝程式會嘗試在清單中安裝所有裝置;如果安裝程式傳回先前設定的裝置,GUI 模式安裝程式將會安裝裝置兩次。

安裝程式必須以無訊息方式處理此 DIF 要求。 也就是說,不向使用者顯示 UI。

當安裝程式處理需要重新開機電腦的這個 DIF 要求時,安裝程式不應該執行工作。 例如,類別安裝程式不應該將驅動程式設定為在下一次啟動時載入,以便判斷重新開機後哪些驅動程式成功。

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

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

規格需求

版本

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

標頭

Setupapi.h (包含 Setupapi.h)

另請參閱

DIF_SELECTBESTCOMPATDRV

SetupDiBuildDriverInfoList

SetupDiCallClassInstaller

SetupDiCreateDeviceInfo

SetupDiSetDeviceRegistryProperty

SP_DEVINFO_DATA

SP_DEVINSTALL_PARAMS