SetupDiRestartDevices 函数 (setupapi.h)

SetupDiRestartDevices 函数重启指定的设备,或者,如有必要,重启由同一函数操作的所有设备,并筛选运行指定设备的驱动程序。

语法

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

参数

[in] DeviceInfoSet

设备信息集的句柄,其中包含表示要重启的设备的设备信息元素。

[in, out] DeviceInfoData

指向表示要重启的设备的设备信息成员 的SP_DEVINFO_DATA 结构的指针。 此参数也是输出参数,因为 SetupDiRestartDevices 更新此设备信息成员的设备安装参数以及相应设备实例的状态和问题代码。 有关这些更新的详细信息,请参阅以下 “备注 ”部分。

返回值

如果操作成功, SetupDiRestartDevices 返回 TRUE;否则,函数返回 FALSE ,并且可以通过调用 GetLastError 来检索记录的错误。

注解

仅当类安装程序处理DIF_INSTALLDEVICE请求时,并且仅在类安装程序必须在所有默认安装操作(启动设备除外)完成后执行操作的极少数情况下,类安装程序才应调用 SetupDiRestartDevices。 有关在这些情况下调用 SetupDiRestartDevices 的详细信息,请参阅 DIF_INSTALLDEVICE

如果可以执行重启,SetupDiRestartDevices 仅重启指定的设备,而不会影响由运行该设备的相同功能驱动程序或筛选器驱动程序操作的其他设备的安装。 具体而言,如果重启指定设备不会复制新文件或修改以前为设备安装的任何文件, 则 SetupDiRestartDevices 仅重启指定的设备。 否则,函数将重启由同一函数操作的所有设备,并筛选运行指定设备的驱动程序。

SetupDiRestartDevices 更新设备安装参数和设备状态,以反映尝试重启操作的结果。 例如:

  • 如果设备已启动, SetupDiRestartDevices 会将设备状态设置为DN_STARTED。
  • 如果必须重启系统才能启动设备, SetupDiRestartDevices 将在与设备信息元素关联的 SP_DEVINSTALL_PARAMETER 结构的 Flags 成员中设置DI_NEEDREBOOT标志,并将设备的问题代码设置为CM_PROB_NEED_RESTART。
CM_Get_DevNode_Status 函数检索设备实例的状态和问题代码,SetupDiGetDeviceInstallParams 函数检索表示设备实例的设备信息元素的设备安装参数。

要求

要求
最低受支持的客户端 在 Windows Server 2003 及更高版本的 Windows 中可用。
目标平台 桌面
标头 setupapi.h (包括 Setupapi.h)
Library Setupapi.lib
DLL Setupapi.dll

另请参阅

CM_Get_DevNode_Status

DIF_INSTALLDEVICE

SP_DEVINFO_DATA

SetupDiGetDeviceInstallParams