Some devices cannot be easily uninstalled from the device management console. Pretty often this is the network cards and related hidden devices, such as WAN Miniport or Packet Scheduler. Windows does not allow to delete these devices. The following message appears:
In order to change the Windows opinion regarding this device you need to edit the registry. Open it up and search for the device name. We are looking for some registry keys located under HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\
There are several keys named with just short numbers like 0001, 0002, etc. They contain the device parameters. Confirm that the driver description (DriverDesc) is the name of the device you want to uninstall. Take a look at the Characteristics value. 0x20 means that this device cannot be removed by the user. Just subtract 0x20 from the number you have over there and put the new number instead. In this case you would replace 0x29 with just 0x9.
You even do not need to restart the computer. Go back to the device manager and uninstall the device.
This is the list of all possible values for Characteristics
|0x1||NCF_VIRTUAL||Component is a virtual adapter.|
|0x2||NCF_SOFTWARE_ENUMERATED||Component is a software-enumerated adapter.|
|0x4||NCF_PHYSICAL||Component is a physical adapter.|
|0x8||NCF_HIDDEN||Component should not be shown in any user interface.|
|0x10||NCF_NO_SERVICE||Component does not have an associated service (device driver).|
|0x20||NCF_NOT_USER_ REMOVABLE||Component cannot be removed by the user (for example, through Control Panel or Device Manager).|
|0x40||NCF_MULTIPORT_INSTANCED_ ADAPTER||Component has multiple ports, each of which is installed as a separate device. Each port has its own hw-id (component ID) and can be individually installed. This is applicable only to EISA adapters. Windows XP and later operating systems do not support EISA adapters.|
|0x80||NCF_HAS_UI||Component supports a user interface (for example, the Advanced Page or a custom properties sheet).|
|0x400||NCF_FILTER||Component is a filter.|
|0x4000||NCF_NDIS_PROTOCOL||Component requires the unload event that is provided by the binding engine to the NetTrans device setup class (typically used by filter Intermediate drivers which use the NetService device setup class).|