SetupDiRemoveDeviceInterface 函数 (setupapi.h)

SetupDiRemoveDeviceInterface 函数从系统中删除已注册的设备接口。

语法

WINSETUPAPI BOOL SetupDiRemoveDeviceInterface(
  [in]      HDEVINFO                  DeviceInfoSet,
  [in, out] PSP_DEVICE_INTERFACE_DATA DeviceInterfaceData
);

参数

[in] DeviceInfoSet

指向包含要删除 的设备接口的设备信息集 的指针。 此句柄通常由 SetupDiGetClassDevs 返回。

[in, out] DeviceInterfaceData

指向 SP_DEVICE_INTERFACE_DATA 结构的指针,该结构指定要删除 的 DeviceInfoSet 中的设备接口。 此指针通常由 SetupDiEnumDeviceInterfaces 返回。

删除接口后,此函数在 DeviceInterfaceData 中设置SPINT_REMOVED标志。标志。 它还会清除SPINT_ACTIVE标志,但请注意,在调用此函数之前,应该已经清除了此标志。

返回值

如果函数完成且未出错,SetupDiRemoveDeviceInterface 将返回 TRUE。 如果函数完成时出现错误,它将返回 FALSE ,并且可以通过调用 GetLastError 来检索失败的错误代码。

注解

此函数的调用方必须是管理员组的成员。

SetupDiRemoveDeviceInterface 从系统中删除指定的设备接口。 这包括删除关联的注册表项。

调用 SetupDiDeleteDeviceInterfaceData 从设备信息列表中删除接口。

必须禁用设备接口才能删除。 如果接口已启用,则此函数将失败, GetLastError 将返回ERROR_DEVICE_INTERFACE_ACTIVE。 通过使用提供的任何特定于接口的机制来禁用接口, (例如 IOCTL) 。 如果调用方无法禁用接口,并且必须删除接口,则调用方必须使用 SetupDiChangeState 停止基础设备。 停止设备会禁用设备公开的所有接口。

要求

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

另请参阅

SetupDiChangeState

SetupDiCreateDeviceInterface

SetupDiDeleteDeviceInterfaceData

SetupDiEnumDeviceInterfaces

SetupDiGetClassDevs