|
|
View previous topic :: View next topic |
Author |
Message |
spilz
Joined: 30 Jan 2012 Posts: 219
|
How to change USB device name ? |
Posted: Sat Mar 13, 2021 3:51 pm |
|
|
Hello
To start, I already try to find the answer but finally never find it in all subjects about it.
I want to change the name of the device in "device manager" of WIN10.
I tried to USB_STRING_DESC[] but the name appear in wizard installation but then never find a way to get it again. (That was explain in some USB files).
So if I understand well the name in "device manager" comes from driver.
I tried to change the name in "cdc_NTXPVista_7_8_10.inf".
CCS_CDC2 = "CCS USB to UART" to CCS_CDC2 = "CCS USB to UART 2"
For test, but driver seems to be changed by default Windows driver after the change :(
Do I understand well that the solution to change the name is in driver ?
How can I change the driver for this ?
Thanks for your help |
|
|
Ttelmah
Joined: 11 Mar 2010 Posts: 19518
|
|
Posted: Sun Mar 14, 2021 4:30 am |
|
|
Multiple parts to this.
Windows 10, will now only run 'registered' drivers. When you tried
to change the name in the driver, it said 'not registered', and puts back the
standard driver. To actually change this like this, you would have to have a
registered driver for your device...
The full driver as well as the .inf file, has to have a matching .cat file.
There are tools to build this, but you are talking having to use the full
driver development kit.
However, you can change the device 'name' that is associated with a
specific driver. This thread shows how:
https://www.avoiderrors.com/rename-devices-device-manager/
This is probably by far the easiest way to do this. Remember also that
you can export this registry entry and have this added as part of your install
to support the new name on other machines. |
|
|
spilz
Joined: 30 Jan 2012 Posts: 219
|
|
Posted: Sun Mar 14, 2021 4:40 am |
|
|
Thanks for your reply Ttelmah
So if I understand well USB_STRING_DESC[] is no more really used by Win10 :(
With the .inf can i directly build a .cat (what ever how) ?
or other files are needed ?
My goal was to change the name of serial port to make difference between devices and so a software in C# will directly identify the right device and run a specific program
What I understand, it’s no more possible. Right ?
If they use the same driver they will have the same name, aren’t they ?
No other magic solution for my need ? ^^
Thanks again |
|
|
Ttelmah
Joined: 11 Mar 2010 Posts: 19518
|
|
|
spilz
Joined: 30 Jan 2012 Posts: 219
|
|
Posted: Sun Mar 14, 2021 7:43 am |
|
|
Ok :(
No other way to make difference between 2 devices which use same driver ? |
|
|
Ttelmah
Joined: 11 Mar 2010 Posts: 19518
|
|
Posted: Sun Mar 14, 2021 11:05 am |
|
|
If you give the devices a unique serial number, then the name allocation
(done by the method shown), will be permanently assigned to the specific
device.
You have to assign a new string descriptor for the serial number. It is
normally blank. |
|
|
spilz
Joined: 30 Jan 2012 Posts: 219
|
|
Posted: Sun Mar 14, 2021 3:29 pm |
|
|
Which method ?
Where can I change the serial number ? In CCS ? What is the name of variable ? |
|
|
Ttelmah
Joined: 11 Mar 2010 Posts: 19518
|
|
Posted: Mon Mar 15, 2021 12:24 am |
|
|
CCS leaves the serial number blank. You have to create a new string
descriptor containing the serial number, and link this into the device
descriptor. The Windows driver doesn't look at the serial number for
purposes of identifying the device, so the existing Windows driver will
still happily run with a serial number added to the device. |
|
|
spilz
Joined: 30 Jan 2012 Posts: 219
|
|
Posted: Tue Mar 16, 2021 12:42 pm |
|
|
hello
I tested the method and i'm able to change the name of the driver, but I can't make différence between two device
I changed :
Code: | const char USB_DEVICE_DESC[USB_DESC_DEVICE_LEN] ={
//starts of with device configuration. only one possible
USB_DESC_DEVICE_LEN, //the length of this report ==0
0x01, //the constant DEVICE (DEVICE 0x01) ==1
0x10,0x01, //usb version in bcd ==2,3
0x02, //class code. 0x02=Communication Device Class ==4
0x00, //subclass code ==5
0x00, //protocol code ==6
USB_MAX_EP0_PACKET_LENGTH, //max packet size for endpoint 0. (SLOW SPEED SPECIFIES 8) ==7
USB_CONFIG_VID & 0xFF, ((USB_CONFIG_VID >> 8) & 0xFF), //vendor id ==9, 10
USB_CONFIG_PID & 0xFF, ((USB_CONFIG_PID >> 8) & 0xFF), //product id, don't use 0xffff ==11, 12
USB_CONFIG_VERSION & 0xFF, ((USB_CONFIG_VERSION >> 8) & 0xFF), //device release number ==13,14
0x01, //index of string description of manufacturer. therefore we point to string_1 array (see below) ==14
0x02, //index of string descriptor of the product ==15
0x03, //index of string descriptor of serial number ==16
USB_NUM_CONFIGURATIONS //number of possible configurations ==17
}; | to link to 4th position string
and
Code: | #define USB_STRINGS_OVERWRITTEN
// Here is where the "CCS" Manufacturer string and "SERIAL DEMO" are stored.
// Strings are saved as unicode.
// These strings are mostly only displayed during the add hardware wizard.
// Once the operating system drivers have been installed it will usually display
// the name from the drivers .INF.
char const USB_STRING_DESC[]={
//string 0
4, //length of string index
0x03, // USB_DESC_STRING_TYPE, //descriptor type 0x03 (STRING)
0x09,0x04, //Microsoft Defined for US-English
//string 1 - manufacturer
8, //length of string index
0x03, // USB_DESC_STRING_TYPE, //descriptor type 0x03 (STRING)
'C',0,
'C',0,
'S',0,
//string 2 - product
28, //length of string index
0x03, //USB_DESC_STRING_TYPE, //descriptor type 0x03 (STRING)
'A',0,
'B',0,
'C',0,
'D',0,
'E',0,
'F',0,
'G',0,
'H',0,
'I',0,
'J',0,
'K',0,
'L',0,
'M',0,
//string 3 - serial
10, //length of string index
0x03, // USB_DESC_STRING_TYPE, //descriptor type 0x03 (STRING)
'1',0,
'0',0,
'0',0,
'4',0
};
|
where I change the end of the last string
but I don't find the way differentiate them :( |
|
|
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
Powered by phpBB © 2001, 2005 phpBB Group
|