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 的调用方必须是管理员组的成员。

注意 只有类安装程序应调用 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)
Library Setupapi.lib
DLL Setupapi.dll
API 集 Windows 10版本 10.0.1439 (3 中引入的 ext-ms-win-setupapi-classinstallers-l1-1-2)

另请参阅

DIF_PROPERTYCHANGE

SP_PROPCHANGE_PARAMS

SetupDiCallClassInstaller