DIF_INSTALLDEVICEFILES
DIF_INSTALLDEVICEFILES要求可讓安裝程式參與複製檔案以支援裝置,或建立裝置的檔案清單。 裝置檔案包含所選驅動程式的檔案、任何裝置介面,以及任何共同安裝程式。
傳送時
系統提供的裝置安裝元件會基於各種原因傳送此 DIF 要求。 某些裝置安裝元件會在DIF_REGISTER_COINSTALLERS、DIF_INSTALLINTERFACES和DIF_INSTALL_DEVICE之前傳送此 DIF 要求,以確保可以複製所有相關檔案,再繼續進行安裝。 某些裝置安裝元件省略此 DIF 要求,並預期在處理這三個 DIF 要求期間複製檔案。 此外,某些裝置安裝元件會傳送此 DIF 要求,以擷取與裝置相關聯的檔案清單。
誰處理
類別共同安裝程式 |
可以處理 |
裝置共同安裝程式 |
不處理 |
類別安裝程式 |
可以處理 |
安裝程式輸入
DeviceInfoSet
提供裝置 資訊的 控制碼,其中包含要複製其支援檔案的裝置。
DeviceInfoData
提供 SP_DEVINFO_DATA結構的指標 ,以識別裝置資訊集中的裝置。
裝置安裝參數
與DeviceInfoData相關聯的裝置安裝參數 (SP_DEVINSTALL_PARAMS) 。
如果已設定DI_NOVCP旗標,裝置安裝參數會包含有效的 FileQueue 控制碼和安裝程式,可處理此 DIF 要求將其檔案作業新增至此佇列,而不會認可佇列。
安裝程式輸出
裝置安裝參數
如果有 FileQueue,安裝程式可以修改 FileQueue。
安裝程式傳回值
共同安裝程式可以傳回NO_ERROR、ERROR_DI_POSTPROCESSING_REQUIRED或 Win32 錯誤碼。
如果類別安裝程式成功處理此要求, 且 SetupDiCallClassInstaller 後續應該呼叫預設處理常式,類別安裝程式會傳回ERROR_DI_DO_DEFAULT。
如果類別安裝程式成功處理此要求,包括直接呼叫預設處理常式,類別安裝程式應該會傳回NO_ERROR, 而 SetupDiCallClassInstaller 不會接著再次呼叫預設處理常式。
注意 類別安裝程式可以直接呼叫預設處理常式,但類別安裝程式不應嘗試取代預設處理常式的作業。
如需呼叫預設處理常式的詳細資訊,請參閱 呼叫預設 DIF 程式碼處理常式。
如果類別安裝程式發生錯誤,安裝程式應該會傳回適當的 Win32 錯誤碼, 而且 SetupDiCallClassInstaller 後續不會呼叫預設處理常式。
預設 DIF 程式碼處理常式
安裝程式作業
為了回應DIF_INSTALLDEVICEFILES要求,安裝程式會指定任何必要的檔案作業。 例如,安裝程式可以指定要複製裝置安裝所需的其他檔案。 如果已設定DI_NOVCP旗標,安裝程式會將其新增至裝置安裝參數中的 FileQueue 來指定檔案作業。 如需如何使用檔案佇列和檔案佇列函式上的參考頁面的相關資訊,請參閱Microsoft Windows SDK,例如SetupInstallFilesFromInfSection。
如果在裝置安裝期間傳送此 DIF 要求,而且安裝程式會傳回 Microsoft Win32 錯誤碼,Windows 會停止安裝。
如果 系統提供的裝置安裝元件 傳送此 DIF 要求來擷取與裝置相關聯的檔案清單,元件會擷取檔案佇列,但不會認可佇列。
如需 DIF 程式碼的詳細資訊,請參閱 處理 DIF 程式碼。
規格需求
版本 |
Microsoft Windows 2000 和更新版本的 Windows 支援。 |
標頭 |
Setupapi.h (包含 Setupapi.h) |