共用方式為


SetupDiChangeState 函式 (setupapi.h)

SetupDiChangeState 函式是安裝要求DIF_PROPERTYCHANGE的默認處理程式。

語法

WINSETUPAPI BOOL SetupDiChangeState(
  [in]      HDEVINFO         DeviceInfoSet,
  [in, out] PSP_DEVINFO_DATA DeviceInfoData
);

參數

[in] DeviceInfoSet

本機電腦 裝置資訊集 的句柄。 此集合包含裝置信息專案,表示要變更其狀態的裝置。

[in, out] DeviceInfoData

SP_DEVINFO_DATA 結構的指標,指定 DeviceInfoSet 中的裝置信息專案。 這是 IN-OUT 參數,因為 DeviceInfoData。DevInst 可能會在傳回時使用新的句柄值來更新。

傳回值

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

備註

SetupDiChangeState 會變更已安裝裝置的狀態。

SetupDiChangeState 的呼叫端必須是 Administrators 群組的成員。

注意 只有類別安裝程式應該呼叫 SetupDiChangeState ,而且只有在類別安裝程式必須在 SetupDiChangeState 完成預設屬性變更作業之後執行屬性變更作業的情況。 在這種情況下,當安裝程式處理DIF_PROPERTYCHANGE要求時,類別安裝程序必須直接呼叫 SetupDiChangeState 。 如需呼叫預設處理程式的詳細資訊,請參閱呼叫預設 DIF 程式代碼處理程式式。
 
SetupDiChangeState 的呼叫端必須在裝置專案的SP_PROPCHANGE_PARAMS中指定DICS_XXX 旗標,指出裝置上要執行的狀態變更類型。 此函式的呼叫端必須在SP_PROPCHANGE_PARAMS中設定適當的欄位,並在呼叫此函式之前呼叫 SetupDiSetClassInstallParams

如果您在SP_PROPCHANGE_PARAMS中指定DICS_FLAG_CONFIGSPECIFIC旗標,則必須填入 HwProfile 字段。 HwProfile 的值為零表示目前的配置檔。

若要在目前的硬體配置檔中啟用/停用裝置,請在SP_PROPCHANGE_PARAMS中設定DICS_FLAG_CONFIGSPECIFIC旗標。 若要全域啟用/停用裝置,例如停駐和未停駐硬體配置檔中的裝置,請設定DICS_FLAG_GLOBAL旗標。

此函式會執行下列動作:

此函式的呼叫端不應該在SP_PROPCHANGE_PARAMS中指定DICS_STOP或DICS_START。 使用DICS_PROPCHANGE停止並重新啟動裝置,使裝置的設定變更生效。

如果為裝置設定DI_DONOTCALLCONFIGMG,您就不應該呼叫裝置的 SetupDiChangeState ,而是應該改為設定DI_NEEDREBOOT旗標。

規格需求

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

另請參閱

DIF_PROPERTYCHANGE

SP_PROPCHANGE_PARAMS

SetupDiCallClassInstaller