共用方式為


SetupDiCallClassInstaller 函式 (setupapi.h)

SetupDiCallClassInstaller 函式會呼叫適當的類別安裝程式,以及任何已註冊的共同安裝程式,以及指定的安裝要求 (DIF 程式代碼) 。

語法

WINSETUPAPI BOOL SetupDiCallClassInstaller(
  [in]           DI_FUNCTION      InstallFunction,
  [in]           HDEVINFO         DeviceInfoSet,
  [in, optional] PSP_DEVINFO_DATA DeviceInfoData
);

參數

[in] InstallFunction

裝置安裝要求 (DIF 要求) 傳遞至共同安裝程式和類別安裝程式。 DIF 程式代碼的格式 為 DIF_XXX ,且定義於 Setupapi.h 中。 如需詳細資訊,請參閱 裝置安裝函式代碼

注意 對於特定 DIF 要求,呼叫端必須是 Administrators 群組的成員。 針對這類 DIF 要求,此需求會列在相關聯默認處理程式的參考頁面上。
 

[in] DeviceInfoSet

本機電腦的 裝置資訊集 句柄。 此集合包含裝置安裝專案,表示執行指定安裝函式的裝置。

[in, optional] DeviceInfoData

SP_DEVINFO_DATA 結構的指標,指定 DeviceInfoSet 中的裝置資訊專案,代表要為其執行指定安裝函式的裝置。 此參數是選擇性的,而且可以設定為 NULL。 如果指定此參數, SetupDiCallClassInstaller 會在 DeviceInfoData 元素上執行指定的函式。 如果 DeviceInfoDataNULL,SetupDiCallClassInstaller 會呼叫與 DeviceInfoSet 相關聯之安裝程式類別的安裝程式。

傳回值

如果函式成功,函式會傳回 TRUE 。 否則,它會傳回 FALSE ,而且可以藉由呼叫 GetLastError 來擷取記錄的錯誤。

當 GetLastError 傳回 ERROR_IN_WOW64時,這表示呼叫的應用程式是嘗試在 64 位環境中執行的 32 位應用程式,但不允許。

備註

SetupDiCallClassInstaller 會呼叫類別安裝程式,以及針對裝置或 裝置安裝類別註冊的任何共同安裝程式。 如果尚未載入安裝程式,此函式會載入安裝程式。 如果有默認處理程式,而且安裝程式傳回狀態,表示應該呼叫默認處理程式,函式也會呼叫 DIF 要求的默認處理程式。

裝置安裝應用程式 會使用各種 裝置安裝函式代碼 呼叫此函式, (DIF 程式代碼) 。 函式可確保針對指定的 DIF 要求呼叫所有適當的安裝程式和預設處理程式。 如需詳細資訊,請參閱 處理 DIF 程式代碼

SetupDiCallClassInstaller 傳回 TRUE 之後,裝置安裝應用程式必須呼叫 SetupDiGetDeviceInstallParams 以取得SP_DEVINSTALL_PARAMS結構。 如果已設定結構的 DI_NEEDREBOOTDI_NEEDRESTART 旗標,呼叫端必須提示使用者重新啟動系統。 例如,呼叫端可以藉由呼叫 SetupPromptReboot 來執行此動作。

不過,請注意,裝置安裝應用程式應該最多要求系統重新啟動一次。 因此,任何建立 SetupDiCallClassInstallerSetupDiGetDeviceInstallParams 呼叫的裝置安裝應用程式,都應該在每個呼叫之後儲存 DI_NEEDREBOOTDI_NEEDRESTART 旗標。 不過,只有在最後一次呼叫傳回之後,才會提示使用者。

為了回應 SetupDiCallClassInstaller 所提供的 DIF 程式代碼,類別安裝程式和共同安裝程式可能會執行需要重新啟動系統的作業。 在這種情況下,安裝程式或共同安裝程式應該執行下列動作:

  1. 呼叫 SetupDiGetDeviceInstallParams 以取得 SP_DEVINSTALL_PARAMS 結構。
  2. 在結構的 Flags 成員中設定DI_NEEDREBOOTDI_NEEDRESTART旗標。
  3. 呼叫 SetupDiSetDeviceInstallParams,並提供更新 的 SP_DEVINSTALL_PARAMS 結構,以儲存修訂 的 Flags 成員。
SetupDiCallClassInstaller 傳回之後,呼叫它的裝置安裝應用程式應該呼叫 SetupDiGetDeviceInstallParams、檢查旗標,並在必要時要求重新啟動。

DeviceInfoSet 所指定的裝置信息必須只包含本機電腦上的裝置元素。

如需共同安裝程式設計和作業的相關信息,請參閱 撰寫共同安裝程式

規格需求

需求
最低支援的用戶端 可在 Microsoft Windows 2000 和更新版本的 Windows 中使用。
目標平台 桌面
標頭 setupapi.h (包括 Setupapi.h)
程式庫 Setupapi.lib
Dll Setupapi.dll
API 集合 ext-ms-win-setupapi-classinstallers-l1-1-0 (於 Windows 8)

另請參閱

SP_DEVINFO_DATA