Windows get usb vid pid

Все способы:

  • Как узнать VID и PID флешки
    • Способ 1: ChipGenius
    • Способ 2: USBDeview
    • Способ 3: ChipEasy
    • Способ 4: CheckUDisk
    • Способ 5: Изучение платы
    • Способ 6: Свойства устройства
  • Вопросы и ответы: 1

USB-флешки – устройства надежные, но риск поломки есть всегда. Причиной тому может быть некорректная работа, сбой микропрограммы, неудачное форматирование и так далее. В любом случае, если это не физическое повреждение, можно попытаться ее восстановить программными средствами.

Проблема в том, что не каждый инструмент подходит для восстановления конкретной флешки, и использование неправильной утилиты может окончательно вывести ее из строя. Но зная VID и PID накопителя, можно определить тип его контроллера и подобрать подходящую программу.

Как узнать VID и PID флешки

VID служит для идентификации производителя, PID – идентификатор самого устройства. Соответственно, каждый контроллер на съемном накопителе помечен этими значениями. Правда, некоторые недобросовестные производители могут пренебрегать платной регистрацией ID-номеров и присваивать их просто наугад. Но в основном это касается дешевой китайской продукции.

Для начала убедитесь, что флешка хоть как-то определяется компьютером: слышен характерный звук при подключении, она видна в списке подключенных устройств, отображается в «Диспетчере задач» (возможно, как неизвестное устройство) и прочее. В противном случае шансов мало не только на определение VID и PID, но и на восстановление носителя.

ID-номера можно быстро определить с помощью специализированных программ. Как вариант, можно использовать «Диспетчер устройств» или просто разобрать флешку и найти информацию на ее «внутренностях».

Обратите внимание, что карты MMC, SD, MicroSD не имеют значений VID и PID. Применяя к ним один из способов, Вы получите только идентификаторы кардридера.

Способ 1: ChipGenius

Прекрасно считывает основную техническую информацию не только с флешек, но и со многих других устройств. Интересно, что ChipGenius имеет собственную базу VID и PID, чтобы выдать предположительную информацию об устройстве, когда по какой-то причине не удается опросить контроллер.

Скачать ChipGenius бесплатно

Чтобы воспользоваться данной программой, сделайте следующее:

  1. Запустите ее. В верхней части окна выберите флешку.
  2. Снизу напротив значения «USB Device ID» Вы увидите VID и PID.

Определение VID и PID через ChipGenius

Обратите внимание: старые версии программы могут работать некорректно – скачивайте последние (по ссылке выше можно найти именно такую). Также в некоторых случаях она отказывается работать с портами USB 3.0.

Способ 2: USBDeview

Основная функция этой программы – отображение списка всех устройств когда-либо подключаемых к данному ПК. Дополнительно можно получить подробную информацию о них.

Скачать USBDeview для 32-битных операционных систем

Скачать USBDeview для 64-битных операционных систем

Инструкция по использованию заключается в следующем:

  1. Запустите программу.
  2. Для того, чтобы быстрее найти подключенный накопитель, нажмите «Опции» и уберите галочку с пункта «Показывать отключенные устройства».
  3. Настройка отображения списка устройств в USBDeview

  4. Когда круг поиска сузился, дважды кликните по флешке. В открывшейся таблице обратите внимание на «VendorID» и «ProductID» – это и есть VID и PID. Их значения можно выделить и скопировать («CTRL» + «C»).

Определение VID и PID через USBDeview

Способ 3: ChipEasy

Интуитивно понятная утилита, которая позволяет получить исчерпывающую информацию о флешке.

Скачать ChipEasy бесплатно

После скачивания сделайте вот что:

  1. Запустите программу.
  2. В верхнем поле выберите нужный накопитель.
  3. Ниже Вы увидите все его технические данные. VID и PID находятся во второй строке. Можно их выделить и скопировать («CTRL+C»).

Определение VID и PID через ChipEasy

Способ 4: CheckUDisk

Простая утилита, которая выводит основную информацию о накопителе.

Скачать CheckUDisk

Дальнейшая инструкция:

  1. Запустите программу.
  2. Сверху выберите флешку.
  3. Снизу ознакомьтесь с данными. VID и PID расположены на второй строке.

Определение VID и PID через CheckUDisk

Способ 5: Изучение платы

Когда ни один из способов не помогает, то можно пойти на радикальные меры и вскрыть корпус флешки, если это возможно. VID и PID Вы, может, там и не обнаружите, но маркировка на контроллере имеет такую же ценность. Контроллер – важнейшая часть USB-накопителя, имеет черный цвет и квадратную форму.

Модель контроллера флешки

Что делать с этими значениями?

Теперь можно заняться применением полученной информации и найти эффективную утилиту для работы с Вашей флешкой. Для этого следует использовать онлайн-сервис iFlash, где пользователи сами формируют базу данных таких программ.

  1. Введите VID и PID в соответствующие поля. Нажмите кнопку «Search».
  2. Ввод идентификаторов на iFlash

  3. В результатах Вы увидите общую информацию о флешке и ссылки на подходящие утилиты.

Результаты поиска на iFlash

Способ 6: Свойства устройства

Не такой практичный метод, но зато можно обойтись без стороннего софта. Он подразумевает следующие действия:

  1. Перейдите в список устройств, нажмите правой кнопкой по флешке и выберите «Свойства».
  2. Переход в свойства флешки в Windows

  3. Перейдите во вкладку «Оборудование» и дважды кликните по названию носителя.
  4. Переход в свойства устройства в Windows

  5. Перейдите во вкладку «Сведения». В выпадающем списке «Свойство» выберите «ИД оборудования» или «Родитель». В поле «Значение» можно будет разобрать VID и PID.

Определение VID и PID через свойства устройства в Windows

То же самое можно сделать через «Диспетчер устройств»:

  1. Для его вызова введите devmgmt.msc в окне «Выполнить» («WIN» + «R»).
  2. Вызов Диспетчера устройств на Windows

  3. Найдите флешку, кликните по ней правой кнопкой и выберите «Свойства», а дальше все по приведенной выше инструкции.

Переход в свойства устройства в Диспетчере устройств

Обратите внимание, что неработающая флешка может отображаться как «Неизвестное USB-устройство».

Быстрее всего, конечно же, будет использовать одну из рассмотренных утилит. Если обходиться без них, то придется покопаться в свойствах запоминающего устройства. На крайний случай VID и PID всегда можно найти на плате внутри флешки.

Напоследок скажем, что определение этих параметров будет полезным для выполнения восстановления съемных накопителей. На нашем сайте можно найти подробные инструкции для представителей самых популярных брендов: A-Data, Verbatim, SanDisk, Silicon Power, Kingston, Transcend.

Наша группа в TelegramПолезные советы и помощь

Зачем это нужно?
VID и PID — это уникальные идентификаторы USB устройств. VID — идентификатор производителя, PID — идентификатор устройства.
По значением VID и PID можно предположительно определить тип контроллера установленного во флэш и производителя устройства.

Так как регистрация VID и PID для USB устройств стоит денег, некоторые производители указывают их по своему усмотрению. В этом случае может случиться так, что две одинаковые на вид флэшки могут иметь одинаковые VID и PID но их контроллеры могут быть разных производителей и восстанавливать их нужно будут разными утилитами. По этому, если вы подобрали утилиту по VID и PID а она не подошла, то лучше всего вскрыть корпус флешки и по модели контроллера подбирать сервисную утилиту для восстановления.

Здесь можно скачать утилиты для определения VID и PID.

Внимание!
Для карт памяти MMC, SD, MicroSD и прочих VID и PID определить нельзя, у них нет этих значений. Если даже попытаться их прочесть с помощью утилит то виден будет VID и PID карт-ридера.

VID – идентифицирует производителя, а PID – непосредственно устройство. У флешек, которые производят крупные фирмы, взяты определенные значения каждого параметра и присвоены всем USB-накопителям. Например, у всех флешек Transcend VID – 8564, а PID – 1000. Некоторые производители оставляют для USB-накопителя VID и PID такие же, как и у установленного в нем контроллера. Ну а если у Вас дешевая китайская флешка, тогда VID и PID – это просто случайные, ничего не значащие, цифры.

Самый простой способ узнать VID и PID – это посмотреть данные значения, открыв Диспетчер устройств.

В Windows 7 нажмите по кнопке «Пуск» и выберите в списке справа «Панель управления». Если такого пункта у Вас нет, наберите «панель управления» в строке поиска и нажмите на подходящий результат.

Если у Вас установлена Windows 10, тогда нажмите правой кнопкой мышки по кнопке «Пуск» и выберите из меню «Панель управления».Дальше выставляем «Просмотр» – «Крупные значки», находим в списке «Диспетчер устройств» и кликаем по нему.Затем два раза нажмите мышкой по пункту «Контроллеры USB». В развернувшемся списке нужно выбрать «Запоминающие устройство для USB» и нажать на него правой кнопкой мышки. Если Ваша флешка не определилась, тогда у Вас будет пункт вроде «Неопределенное устройство USB». Дальше из контекстного меню выберите «Свойства».В следующем окне перейдите на вкладку «Сведения». В верхнем поле «Свойство» из выпадающего списка выберите «ИД оборудования». Чуть ниже в поле «Значение» будет указаны VID и PID.

Появившись на рынке в 2000-х годах, флеш-накопители оказались настолько востребованными, что очень даже скоро вытеснили традиционные оптические диски. Современные флешки компактнее и объёмнее, быстрее, надёжнее и долговечнее CD и DVD, хотя и они тоже подвержены износу и поломкам. Так, повреждённой может оказаться файловая система накопителя или ещё хуже того микропрограмма контроллера, из-за чего устройство перестанет опознаваться компьютером. Многие из встречающихся неполадок вполне устранимы, но для этого пользователю может понадобиться техническая информация о накопителе — идентификаторы PID и VID, название фирмы-производителя, тип памяти и так далее, и так далее.

Некоторые из этих сведений может предоставить операционная система, например, вы можете зайти в Диспетчер устройств, найти там свою флешку, открыть её свойства и посмотреть те же PID и VID. Но это при условии, что накопитель определяется системой и доступен в Диспетчере устройств. Но даже при самых благоприятных обстоятельствах объем считываемой Windows метаинформации о флешки будет неполной, чтобы получить максимально возможный объем технических сведений, понадобится помощь специализированных утилит, с некоторыми из которых мы сегодня предлагаем познакомиться.  

Отечественная утилита, разработанная малоизвестной софтверной компанией ANTSpec Software. Простая в использовании, не требующая установки утилита Flash Drive Information Extractor позволяет извлечь из подпрограммы контроллера флешки максимум технических сведений. Вот некоторые данные, которые показывает утилита:

• Буква диска.

• Модель контроллера. 

• Варианты установленных во флешке чипов памяти.

• Тип памяти.

• Идентификатор чипа памяти (Flash ID).

• Количество каналов выборки (Flash CE).

• Идентификатор модели контроллера.

• Группа контроллеров, к которой принадлежит модель флешки.

• Версия файла прошивки, который использовался при прошивке флешки.

• Идентификаторы VID и PID.

• Название компании-производителя.

• Версия флешки по классификации производителя.

• Физический объем флешки в байтах и объем, доступный для использования.

• Тип файловой системы.

• Максимально потребляемый ток.

• Идентификатор измерения (ContMeas ID).

• Используемая версия операционной системы.

• Стандарт USB. Если флешка и порт имеют разные стандарты, информация выводится в формате «стандарт-флешки in стандарт-порта port», например, USB Version: 3.00 in 2.00 port.

Набор предоставляемых данных при анализе разных флешек может немного отличаться, всё зависит от того, добавил ли производитель сведения в подпрограмму контроллера или нет.

Ещё один популярный инструмент для получения сведений о флешках, хотя и менее информативный, чем Flash Drive Information Extractor. Утилита ChipGenius показывает такие данные как тип и серийный номер устройства, режим порта, в котором работает устройство, максимально потребляемый ток, VID и PID, ревизию и название компании-производителя, модель и номер контроллера, идентификатор, тип flash-памяти, режим и размер страницы, а также фактический объем физической памяти. Если USB-версия флешки отличается от USB-версии порта, например, флешка USB 3.0 вставлена в порт USB 2.0, режим порта будет отображаться как 2.10.

В использовании утилита очень проста. Установки ChipGenius не требует, чтобы получить интересующие вас сведения, запустите утилиту и выберите в блоке «The USB controllers and USB devices list» подключенную флешку.

Примечание: объем сведений, получаемый при опросе флешек некоторых моделей версии через порт USB 3.0 и выше в ChipGenius может быть неполным.

ChipEasy — аналог ChipGenius, служит для получения технических характеристик флешке методом опроса контроллера. В настоящее время утилита считается морально устаревшей, как и ChipGenius она не поддерживает некоторые современные модели накопителей стандарта USB 3.0, объем выводимой ею информации также относительно невелик. Последняя версия ChipEasy позволяет получать следующие сведения: 

• Буква диска и фактический объем физической памяти.

• Идентификаторы PID и VID.

• Серийный номер устройства (SN).

• Название производителя устройства и используемой микросхемы памяти.

• Максимальное потребление тока устройством.

• Версия используемого протокола.

• Тип файловой системы.

• Тип памяти, размер страницы и технологический процесс flash-памяти.

• Используемая версия операционной системы.

Как и ChipGenius, ChipEasy может выдать меньший объем сведений при опросе флешек, подключенных по USB версии 3.0 и выше. Получается, что для получения максимально полного списка технических характеристик флешки лучше всего использовать Flash Drive Information Extractor. Эта утилита не только выдаёт больший объем сведений, но и представляет их в более понятном виде.

In my one project, I need to create an application to upgrade the firmware of the device. Here comport is using for the communication. We cannot fix the COM ID of the USB device in the application because the device could be enumerated with different com id on a different machine as per the availability.

So the solution is that displays the list of all known com ports and users select the correct com port. But it is not a good idea to show all com port, I want that application to identify the com id itself.

Every USB device has a unique hardware id (the combination of VID and PID), so to accomplish the above task my approach is to get COM PORT of USB Serial Device on the basis of VID/PID. The registry of the windows kept the information of the device, so simple logic here to open the windows registry and get the com id.

You can See this Article, Read & Write Windows Registry

How to find the VID and PID numbers

To find the vid (Vendor ID) and PID (Product ID) of a serial USB device first you need to attach the device with your PC. Now you need to follow the below steps to get the vid and PID.

1. Go to Control Panel > Device Manager > Ports.

port class

2. Select the desire com port and double click on it or right-click and select Properties.

Get COM PORT of USB Serial Device

3. Go to the Details tab and select Hardware ID to view its PID and VID.

Get COM PORT of USB Serial Device

If you want to learn about windows internal, here 10 Free days windows internal course for you.

C language video course

See the below code to get COM PORT of USB Serial Device (Arduino ) in the Windows machine.

#include "stdafx.h"
#include <initguid.h>
#include <windows.h>
#include <Setupapi.h>

//Buffer length
#define BUFF_LEN 20


void GetComPort(TCHAR *pszComePort, TCHAR * vid, TCHAR * pid)
{

    HDEVINFO DeviceInfoSet;
    DWORD DeviceIndex =0;
    SP_DEVINFO_DATA DeviceInfoData;
    PCWSTR DevEnum = L"USB";
    TCHAR ExpectedDeviceId[80] = {0}; //Store hardware id
    BYTE szBuffer[1024] = {0};
    DEVPROPTYPE ulPropertyType;
    DWORD dwSize = 0;
    DWORD Error = 0;


    //create device hardware id
    wcscpy_s(ExpectedDeviceId,L"vid_");
    wcscat_s(ExpectedDeviceId,vid);
    wcscat_s(ExpectedDeviceId,L"&pid_");
    wcscat_s(ExpectedDeviceId,pid);



    //SetupDiGetClassDevs returns a handle to a device information set
    DeviceInfoSet = SetupDiGetClassDevs(
                        NULL,
                        DevEnum,
                        NULL,
                        DIGCF_ALLCLASSES | DIGCF_PRESENT);

    if (DeviceInfoSet == INVALID_HANDLE_VALUE)
        return;


    //Fills a block of memory with zeros
    ZeroMemory(&DeviceInfoData, sizeof(SP_DEVINFO_DATA));
    DeviceInfoData.cbSize = sizeof(SP_DEVINFO_DATA);



    //Receive information about an enumerated device
    while (SetupDiEnumDeviceInfo(
                DeviceInfoSet,
                DeviceIndex,
                &DeviceInfoData))
    {
        DeviceIndex++;


        //Retrieves a specified Plug and Play device property
        if (SetupDiGetDeviceRegistryProperty (DeviceInfoSet, &DeviceInfoData, SPDRP_HARDWAREID,
                                              &ulPropertyType, (BYTE*)szBuffer,
                                              sizeof(szBuffer),   // The size, in bytes
                                              &dwSize))
        {
            HKEY hDeviceRegistryKey;



            //Get the key
            hDeviceRegistryKey = SetupDiOpenDevRegKey(DeviceInfoSet, &DeviceInfoData,DICS_FLAG_GLOBAL, 0,DIREG_DEV, KEY_READ);
            if (hDeviceRegistryKey == INVALID_HANDLE_VALUE)
            {
                Error = GetLastError();

                break; //Not able to open registry
            }
            else
            {
                // Read in the name of the port
                wchar_t pszPortName[BUFF_LEN];
                DWORD dwSize = sizeof(pszPortName);
                DWORD dwType = 0;


                if( (RegQueryValueEx(hDeviceRegistryKey,L"PortName", NULL, &dwType, (LPBYTE) pszPortName, &dwSize) == ERROR_SUCCESS) && (dwType == REG_SZ))
                {
                    // Check if it really is a com port
                    if( _tcsnicmp( pszPortName, _T("COM"), 3) == 0)
                    {

                        int nPortNr = _ttoi( pszPortName + 3 );
                        if( nPortNr != 0 )
                        {
                            _tcscpy_s(pszComePort,BUFF_LEN,pszPortName);

                        }

                    }
                }

                // Close the key now that we are finished with it
                RegCloseKey(hDeviceRegistryKey);
            }
        }

    }

    if (DeviceInfoSet)
    {
        SetupDiDestroyDeviceInfoList(DeviceInfoSet);
    }

}

int _tmain(int argc, _TCHAR* argv[])
{
    //Store com port information
    TCHAR pszPortName[BUFF_LEN] = {0};

    //function to get com id
    GetComPort(pszPortName,L"2341",L"0042");

    //Print available com port
    wprintf (L"\n\n COM Port ID = %s\n",pszPortName);

    return 0;
}

Recommended Posts for you:

  • Best 5 C Books.
  • Serial port programming using Win32 API (Windows).
  • Reading And Writing Windows Registry Using WinAPI
  • Install the port monitor silently without user interaction.
  • C++ Interview Questions with Answers.
  • C-Sharp Interview Questions.
  • Python Interview Questions with Answer.
  • Memory Layout in C.
  • 100 C interview questions, your interviewer might ask.
  • C Interview Questions for the experience.
  • 10 questions about dynamic memory allocation
  • File handling in C, in few hours.

Reference: MSDN

Понравилась статья? Поделить с друзьями:
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
  • Смета ру на windows 10 пишет что запуск программы не возможен hlvdd dll
  • Как очистить папку softwaredistribution windows 10
  • Установка windows 7 на intel nuc
  • Программа для активации windows 10 home
  • Рейдж 2 не запускается на windows 10