0 / 0 / 0
Регистрация: 21.09.2017
Сообщений: 6
|
|
1 | |
Определить в какой физический USB разъём подключена флешка19.11.2019, 13:09. Показов 6109. Ответов 5
Здравствуйте.
Подскажите, пожалуйста, какими методами в Windows возможно определить в каком физическом разъёме находится подключенная флешка и как это можно соотнести со структурами информации о томах на ней. Пробовал SetupAPI и WMI, но получить смог только точку монтирования и несколько ID устройства, которые никак не изменяются, при смене разъёма.
0
|
19.11.2019, 13:09 | |
Ответы с готовыми решениями:
5
какой USB и HDMI разъём подойдет для fujitsu lifebook AH531 и где можно купить? Подключена флешка или нет Коротит разъём под наушники и USB-разъём, что делать? Как узнать, что флешка подключена? |
19.11.2019, 16:47 | 2 |
что это значит?
номер usb порта нужно определить? может здесь найдёте что-нибудь Как получить номер USB-порта, на котором "сидит" подключенное устройство https://www.sql.ru/forum/10979... ustroystvo
1
|
4001 / 2548 / 428
Регистрация: 09.09.2017
Сообщений: 11,296
|
|
19.11.2019, 17:24 | 3 |
USB штука динамическая, кто раньше подключился, тому и первый номер на шине достанется, то есть нумерация устройств в принципе может произвольно гулять.
Конечно, это можно обойти, привязав каждый хаб и каждый его порт по какому-нибудь уникальному идентификатору, но не уверен, что в распространенных операционных системах это будет. Лучше расскажите зачем это вообще надо, какую задачу вы решаете таким странным способом. "структуры информации и тома на ней" это таблица разделов что ли? Если так, то они не связаны абсолютно никак. . С ходу придумывается только две задачи, где бы такое могло пригодиться: монтирование конкретного раздела в конкретную точку файловой системы (но это решается монтированием по UUID, и уж точно не по номеру порта). Либо примитивная защита вроде авторизации юзера, только когда он воткнет нужную флешку в нужный порт, но очень сомневаюсь что угадывание порта хоть немного повысит безопасность.
0
|
0 / 0 / 0
Регистрация: 21.09.2017
Сообщений: 6
|
|
19.11.2019, 18:07 [ТС] | 4 |
Таким способом решаю задачу определения сообщения юзеру какую из подключенных флешек необходимо извлечь после записи данных, которая происходит параллельно на несколько устройств и на каждый записывается различная информация.
Вы почти угадали, требуется соответствие флешки и логических дисков системы, чтобы правильно определить на какой логический диск записывать данные. Получается для Windows невозможно однозначно идентифицировать USB порт?
0
|
6770 / 4564 / 1843
Регистрация: 07.05.2019
Сообщений: 13,726
|
|
19.11.2019, 21:57 | 5 |
WMI: Win32_DiskDrive.PNPDeviceID -> Win32_USBControllerDevice, CIM_LogicalDevice
Кликните здесь для просмотра всего текста
instance of Win32_DiskDrive { BytesPerSector = 512; Capabilities = {3, 4, 7}; CapabilityDescriptions = {"Random Access", "Supports Writing", "Supports Removable Media"}; Caption = "Kingston DataTraveler 2.0 USB Device"; ConfigManagerErrorCode = 0; ConfigManagerUserConfig = FALSE; CreationClassName = "Win32_DiskDrive"; Description = "Дисковый накопитель"; DeviceID = "\\\\.\\PHYSICALDRIVE2"; FirmwareRevision = "PMAP"; Index = 2; InterfaceType = "USB"; Manufacturer = "(Стандартные дисковые накопители)"; MediaLoaded = TRUE; MediaType = "Removable Media"; Model = "Kingston DataTraveler 2.0 USB Device"; Name = "\\\\.\\PHYSICALDRIVE2"; Partitions = 1; PNPDeviceID = "USBSTOR\\DISK&VEN_KINGSTON&PROD_DATATRAVELER_2.0&REV_PMAP\\001A928EED05ED602949 009F&0"; SCSIBus = 0; SCSILogicalUnit = 0; SCSIPort = 0; SCSITargetId = 0; SectorsPerTrack = 63; SerialNumber = "0E0D16A09229"; Signature = 3585464809; Size = "15603356160"; Status = "OK"; SystemCreationClassName = "Win32_ComputerSystem"; SystemName = "OLEG-M"; TotalCylinders = "1897"; TotalHeads = 255; TotalSectors = "30475305"; TotalTracks = "483735"; TracksPerCylinder = 255; }; instance of Win32_USBControllerDevice { Antecedent = "\\\\OLEG-M\\root\\cimv2:Win32_USBController.DeviceID="PCI\\\\VEN_8086&DEV_8C31&SUBSYS_10E E1462&REV_05\\\\3&11583659&0&A0""; Dependent = "\\\\OLEG-M\\root\\cimv2:Win32_PnPEntity.DeviceID="USBSTOR\\\\DISK&VEN_KINGSTON&PROD_DATAT RAVELER_2.0&REV_PMAP\\\\001A928EED05ED602949009F&0""; }; Добавлено через 11 минут А как их вообще идентифицировать, маркером подписывать? А если внешний хаб? Win32_USBController и есть идентификатор
0
|
4001 / 2548 / 428
Регистрация: 09.09.2017
Сообщений: 11,296
|
|
20.11.2019, 10:34 | 6 |
Для этого есть уникальные UUID разделов или в крайнем случае метки, хотя метки реже бывают уникальными и не всегда срабатывают.
А вот тут лучше меток вряд ли что можно придумать. Просто при форматировании флешки даете ей осмысленное название вместо дефолтного, а уж в назначении флешек юзер авось не запутается. Да хоть по цвету и форме назовите. Плюс в том, что это будет работать на любой системе без всяких усилий с вашей стороны. Не знаю. Как-то через хитрое место может и можно, если пропинать все хабы и выяснить цепочку портов. Но сама адресация USB как одномерной "шины" этому мешает.
0
|
20.11.2019, 10:34 | |
20.11.2019, 10:34 | |
Помогаю со студенческими работами здесь
6
Как определить какой у меня разъем на метеринке AGP или PCI? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |