The SetupDiRemoveDeviceInterface function removes a registered device interface from the system.
BOOL SetupDiRemoveDeviceInterface( _In_ HDEVINFO DeviceInfoSet, _Inout_ PSP_DEVICE_INTERFACE_DATA DeviceInterfaceData );
- DeviceInfoSet [in]
A pointer to the device information set that contains the device interface to remove. This handle is typically returned by SetupDiGetClassDevs.
- DeviceInterfaceData [in, out]
After the interface is removed, this function sets the SPINT_REMOVED flag in DeviceInterfaceData.Flags. It also clears the SPINT_ACTIVE flag, but be aware that this flag should have already been cleared before this function was called.
SetupDiRemoveDeviceInterface returns TRUE if the function completed without error. If the function completed with an error, it returns FALSE and the error code for the failure can be retrieved by calling GetLastError.
The caller of this function must be a member of the Administrators group.
SetupDiRemoveDeviceInterface removes the specified device interface from the system. This includes deleting the associated registry key.
Call SetupDiDeleteDeviceInterfaceData to delete the interface from a device information list.
A device interface must be disabled to be removed. If the interface is enabled, this function fails and GetLastError returns ERROR_DEVICE_INTERFACE_ACTIVE. Disable an interface by using whatever interface-specific mechanism is provided (for example, an IOCTL). If the caller has no way to disable an interface and the interface must be removed, the caller must stop the underlying device by using SetupDiChangeState. Stopping the device disables all the interfaces exposed by the device.
|Available in Microsoft Windows 2000 and later versions of Windows.|
Build date: 2/13/2014