setupDiRemoveDevice 函数 (setupapi.h)

SetupDiRemoveDevice 函数是DIF_REMOVE安装请求的默认处理程序。

语法

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

参数

[in] DeviceInfoSet

本地系统 的设备信息集 的句柄,其中包含表示要删除的设备的设备信息元素。

[in, out] DeviceInfoData

指向 SP_DEVINFO_DATA 结构的指针,该结构指定 DeviceInfoSet 中的设备信息元素。 这是一个 IN-OUT 参数,因为 DeviceInfoSet。返回时,DevInst 可能会使用新的句柄值进行更新。 如果这是全局删除或最后一个特定于硬件配置文件的删除,则会从注册表中删除设备实例的所有跟踪,并且句柄将为 NULL

返回值

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

注解

SetupDiRemoveDevice 从系统中删除设备。 它将删除设备的硬件和软件注册表项以及任何特定于硬件配置文件的注册表项, (配置特定的注册表项) 。 如果设备的 DevInst 处于活动状态,并且这是全局删除或最后一次特定于配置的删除,则此函数会动态停止设备。 如果设备无法动态停止,则会在设备信息集的“安装参数”块中设置标志,最终提示用户重新启动计算机。

设备删除对于所有硬件配置文件都是全局的,或者特定于一个硬件配置文件,由为DIF_REMOVE请求提供类安装参数的 SP_REMOVEDEVICE_PARAMS 结构的 Scope 成员指定。 特定于配置的删除仅适用于根枚举设备,并且只能由系统代码请求。

SetupDiRemoveDevice 的调用方必须是 Administrators 组的成员。

注意 只有 类安装程序 应调用 SetupDiRemoveDevice ,并且仅在类安装程序必须在 SetupDiRemoveDevice 完成默认设备删除操作后执行设备删除操作的情况下调用。 在这种情况下,当安装程序处理DIF_REMOVE请求时,类安装程序必须直接调用 SetupDiRemoveDevice 。 有关调用默认处理程序的详细信息,请参阅 调用默认 DIF 代码处理程序
 

要求

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

另请参阅

SP_DEVINFO_DATA

SP_REMOVEDEVICE_PARAMS