Vendor ID
Регистры Vendor ID и Device ID идентифицируют устройство и обычно называются PCI ID. Шестнадцатиразрядный регистр Vendor ID выдаётся организацией PCI SIG. Шестнадцатиразрядный регистр Device ID назначается изготовителем устройства. Существует проект создания базы данных всех известных значений регистров Vendor ID и Device ID. (Смотри #Ссылки.)
Первые 64 байта конфигурационного адресного пространства (в соответствии с PCI Local Bus Specification 2.2):
| Адрес | 31 . 24 | 23 . 16 | 15 . 8 | 7 . 0 |
|---|---|---|---|---|
| 0x00 | DeviceID | VendorID | ||
| 0x04 | Status | Command | ||
| 0x08 | Class Code | Revision ID | ||
| 0x0C | BIST | Header Type | Latency Timer | Cache Line Size |
| 0x10 | Base Address Register 0 | |||
| 0x14 | Base Address Register 1 | |||
| 0x18 | Base Address Register 2 | |||
| 0x1C | Base Address Register 3 | |||
| 0x20 | Base Address Register 4 | |||
| 0x24 | Base Address Register 5 | |||
| 0x28 | Cardbus CIS pointer | |||
| 0x2C | SubsystemID | Subsystem Vendor ID | ||
| 0x30 | Expansion ROM Base Address | |||
| 0x34 | Reserved | Capabilities pointer |
||
| 0x38 | Reserved | |||
| 0x3C | Max_Lat | Min_Gnt | Interrupt Pin | Interrupt Line |
Регистры DeviceID, VendorID, Status, Command, Class Code, Revision ID, Header Type являются обязательными для всех PCI-устройств (для многих типов устройств обязательными являются также регистры Subsystem ID и Subsystem Vendor ID).
Все остальные регистры являются опциональными.
Автоматическая инициализация аппаратуры с помощью конфигурационного пространства
Для того, чтобы обращаться к устройству через адресное пространство памяти или ввода-вывода, системное программное обеспечение или ОС программирует базовые адресные регистры (англ. Base Address Registers , также называемые BAR’ами), посылая конфигурационные команды PCI-контроллеру. В начале загрузки системы все PCI устройства находятся в неактивном состоянии, им не назначены адреса, по которым драйвера устройств могут взаимодействовать с ними. Либо ISA, базовые адреса устройств, подключамых к которой, приходилось настраивать перемычками или переключателями).
Любое PCI-устройство, не являющееся мостом (см. PCI-to-PCI Bridge Architecture Specification. Revision 1.1) может иметь до шести BAR’ов, каждый из которых отвечает за определённый диапазон адресов в адресном пространстве памяти или ввода-вывода. Кроме того, устройство может иметь firmware).
Доступ к PCI через порты I/O
Для работы с шиной PCI в PC-AT и совместимых машинах выделено два основных порта.
0CF8h -W порт адреса Address
0CFCh RW порт данных Data
Оба порта являются 32 битными.
Порт адреса представляет из себя следующую 32 битную структуру
+—+———+——-+———-+———+—————+-+-+
|31 |30 24|23 16|15 11|10 8|7 2|1|0|
+—+———+——-+———-+———+—————+-+-+
| с | резерв |шина |устройство| функция|Индекс регистра|0|0|
+—+———+——-+———-+———+—————+-+-+
Порт адреса задает шину, устройства, и адрес регистра в конфигурационном пространстве устройства. Грубо говоря, устройство — это физически присутствующее устройство. А функция — это логическое устройство.
С — флаг доступа к устройству.
Первые два бита в порту адреса всегда 0.
По окончании работы с устройством следует сбросить адрес в 0.
Если в ответ на запрос нулевого регистра возвращается 0FFFFh, то устройства не существует. Vendor ID (ID производителя) — для Intel это 8086h, но не может принимать значение 0FFFFh.
Device ID (ID устройства) — принимает различные значения
Revision ID (ID модификации) — обозначает номер модификации устройства, назначается производителем.
Base Class Code — базовый класс, сокращенно BCC.
Sub Class Code — подкласс, сокращенно SCC.
Programming Interface — интерфейс, сокращенно PI.
Header Type (тип заголовка) — если бит 7 равен 1, то устройство содержит несколько функций.
Если бит 6 равен 0, то заголовок стандартный. Стандартные заголовки:
00 — стандартный смотри выше.
01 — стандартный для моста PCI-to-PCI
02 — стандартный для моста CardBus.
См. также
Ссылки
- The Linux PCI ID Repository, база данных ID PCI-устройств
- PCI Vendor and Device Lists
Wikimedia Foundation . 2010 .
Vendor Identifier — что это за программа на Андроид?
Приветствую друзья, сегодня у нас тема — приложение Vendor Identifier на Android. Моя задача — узнать что это за прога.. для чего нужна.. может это вообще вирус? Такс ребята, не будем гадать, а начинаем разбираться!

Vendor Identifier — что это такое?
Начал копаться в интернете. Инфы ребята не так уж и много.. но кое что все таки выяснил:
Vendor Identifier — непонятное приложение, предположительно показывает рекламу. Кроме этого может быть еще одно — Incartech, скорее всего также рекламное.
Один пользователь удалил Vendor Identifier, пишет что проблем нет, реклама пропала. Однако он также удалил и Incartech. Что самое интересное.. чел пробовал все — чистить систему антивирусами, всякими чистилками, но эффекта ноль. Также пробовал.. перепрошивать телефон. Но в итоге реклама все равно была. Да, такое спокойно может быть — рекламное приложение идет встроенным в прошивку, особенно часто явление встречается на китайских телефонах.
Вообще.. Vendor Identifier или Vendor ID — это означает идентификатор вендора. Ну а вендор это ..что-то вроде компании, производителя. Еще есть такое как Product Identifier — это почти тоже самое, только идентификатор уже не производителя, а именно модели.
То есть можно сделать вывод, что название спецом сделано так, чтобы вводить нас в заблуждение. Чтобы подумали что норм приложение и опасности не представляет.. ну и не думали удалять..
Ребята, инфы нет вообще больше. Я прочесал интернет — ничего не нашел.
Что делать?
Я вижу два варианта:
- Заморозить приложение при помощи Titanium Backup. Но нужны рут права. После заморозки стоит протестировать телефон пару дней, если все будет норм, то можно и удалить приложение.
- Проверка телефона антивирусами. Возможно что сейчас, когда вы уже читаете, то антивирусы находят это нежелательное ПО. Все таки ведь это не вирус, это просто стоковое приложение, которое показывает рекламу.
В титаниуме просто выбираете приложение, например cLock 2.2.5, нажимаете по нему:

И потом уже будет кнопка заморозки приложения:

Если будете проверять антивирусом, то советую использовать известный, например Касперский, Доктор Веб, Нод.
Также оч советую обратится на форум 4PDA. Если вы там найдете свою модель телефона — то напишите в теме, просто опишите свою проблему. Если вашей модели нет — напишите в теме похожей. Могут помочь, не вы одни с этой проблемой.
Хотя вот пишут что лучший антивирус это Antiy AVL, он обнаруживает до 99.7% угроз в реальном времени. Насколько правда — не знаю, но название антивируса не особо известное.. по крайней мере мне..
Так, стоп, вот узнал что есть такое приложение как AirPush Detector, которое сканирует все приложения на наличие рекламы. Стоит попробовать.
Заключение
К сожалению толком ничего узнать не получилось, потому что инфы тупо нет. Но вывод можно сделать такой:
- Vendor Identifier — скорее всего рекламное приложение. Название специально такое, чтобы вводить в заблуждение, типа это важная системная прога.
- С удалением могут быть проблемы. Если рут права есть — оч хорошо, тогда морозьте титаниумом или сразу удаляйте. Если рута нет — сканируйте телефон популярными антивирусами, например Касперский, Доктор Веб, Нод. Может какой-то уже способен определить это приложение и удалить его.
- Стоп. Важно. Приложение может само восстанавливаться. Поэтому при наличии рут прав — не удаляйте его, а именно морозьте титаниумом. Тогда оно теоритически не сможет восстановиться.
- Дополнительно можете просканировать телефон такими прогами как AirPush Detector, Malwarebytes.
В общем ребята, на этом все. Сори, что мало написал, но в интернете реально инфы оч мало. Удачи вам и добра!
Vendor id что это
Разбираемся с драйверами.
Урок 1. Установка драйверов. Возможные нештатные ситуации.
Давайте попробуем на любительском уровне разобраться в драйверах для видеоадаптеров Radeon и начнем этот разговор с их установки. Это вдвойне актуально из-за того, что последнее время на рынок широкой волной хлынули видеокарты на чипах ATi от сторонних производителей, причем как партнеров канадской компании, так и просто перекупщиков чипов (да, да — в западных форумах уже проскакивают сообщения даже об этом). С одной стороны, такое разнообразие выбора не может не радовать, с другой — вызывает массу вопросов у пользователей, связанных с БИОСами таких карт и проблемами, возникающими при установке драйверов к ним. Вопрос с БИОСами мы оставим до лучших времен, единственное, что мне хочется сказать по этому поводу, так это что в 95% не стоит искать приключений на свою многострадальную . карту (а вы что подумали? 🙂 и пытаться прошить в нее «чужой» БИОС, — чаще всего вы ничего от этого не выиграете. Тем более это не стоит делать сейчас, когда появился прекрасный инструмент для редактирования БИОСов — RadEdit.
Давайте для начала рассмотрим, как операционная система определяет, какие же драйверы требует то или иное устройство, и можно ли или нет, и если можно, то как «обмануть» операционку. Начнем с того, что каждое устройство имеет несколько идентификаторов — индивидуальных кодов, которые определяют производителя, модель и модификацию устройства. Первый — это Vendor ID, который содержит информацию о производителе нашей видеокарты. До недавних пор у всех видеоадаптеров на чипах ATi это значение было равным 1002, что соответствовало, естественно, самой ATi, но сейчас уже встречаются карты с другими значениями, например, мне на днях прислали БИОС карточки Radeon 7000 неизвестного производителя с Vendor ID 1569. Сразу оговорюсь, что производитель «неизвестен», потому что я просто поленился его выяснять. На самом деле по известному идентификатору не составит особого труда его определить. Кстати, это что-то вроде фирменного клейма и то, что он отличается от ATi-шного, может быть даже плюс, потому что это значит, что производитель не прячется за спиной ATi и не стесняется заявить, что данная карта произведена именно им. Наверняка Gigabyte и Hercules на своих картах будут иметь собственные Vendor ID.
Второй идентификатор — Device ID. Он определяет модель устройства, а в большинстве случаев чип, на основе которого оно изготовлено. Это самый важный для нас идентификатор и он в принципе не должен отличаться от того, какой был назначен чипу при рождении. Сейчас я для более подготовленных технически читателей скажу несколько «заумных» вещей, которые все остальные могут пропустить.
Есть два независимых источника, где хранятся Device ID. Один в Video bios в PCI Data Structure, где по Offset 4 находится Vendor ID, а по Offset 6 — Device ID. Указатель на него находится по Offset 18h ROM bios. Второй источник — в регистрах 2-3 PCI Configuration Space. Туда он в свою очередь попадает так, как задумано разработчиками чипа и/или карты. Он может быть жестко запрограммирован в каком-то Read Only регистре чипа, может просто рисоваться резисторами-перемычками на плате (как у Nvidia, например), может задаваться какими-то байтами в ROM BIOS, а оттуда зеркалироваться на шину, может быть в отдельном config ROM, есть и другие варианты. Поэтому теоретически существует множество возможностей для производителя наплодить кучу фантомных разновидностей по сути одного устройства.
Третий идентификатор — SubSystem ID определяет модификацию устройства. Ну, например, Radeon VE с SDR или с DDR памятью будут иметь разные SubSystem ID. Более того, разные SubSystem ID могут иметь даже абсолютно одинаковые карты, но с разными рабочими частотами. По большому счету SubSystem ID чаще всего особой роли не играет.
Есть еще и четвертый — Subsystem Vendor ID, но он нас вообще не интересует.
Теперь вернемся к тому, как устанавливаются драйверы.
Операционная система считывает все три идентификатора устройства и сравнивает их с теми, которые есть в ее базе драйверов (надеюсь, что все помнят, что для наиболее распространенных устройств драйверы есть в составе инсталляционного пакета самой операционки). Для Radeon-ов драйверы есть только в составе Windows XP, но и для нее все же лучше устанавливать «свежие» драйверы по той простой причине, что MS поступила следующим образом — для драйверов, входящих в ее состав, встроенная поддержка API OpenGL отсутствует. Для видеокарт всех производителей, а не только для ATi, насколько мне известно. И если вы собираетесь играть в игры, базирующиеся на этом API (Quake, Serious Sam, например), то имеет смысл устанавливать драйверы производителя, которые идут отдельным пакетом (самые последние версии всегда можно скачать с нашего сайта).
Что представляет собой инсталляционный пакет драйверов? Это набор файлов, через которые после их распаковки и установки операционная система работает с видеокартой. Очень часто в инсталляционном пакете драйверов присутствуют файлы для нескольких родственных, но не одинаковых устройств и какие из этих файлов будут использоваться картой, а какие нет, определяет специальный конфигурационный файл, имеющий расширение *.inf. Именно в нем находится список устройств, для которых эти драйверы предназначены, именно с ним сверяет операционная система идентификаторы устройства, определенные аппаратно. Строки этого списка устройств имеют вид:
«RADEON 7000/VE» = RV100_ENU, PCI\VEN_1002&DEV_5159&SUBSYS_000A1002
Что значат эти строки? «RADEON 7000/VE» — это имя, которое ваша видеокарта будет иметь в закладке «Система» => «Оборудование» в списке установленных устройств. RV100_ENU — это раздел в inf-файле, точнее даже несколько разделов, в которых описано, какие файлы из инсталляционного пакета и как именно надо устанавливать, с какими настройками должна работать видеокарта, какие изменения необходимо внести в системный реестр. VEN_1002 — это Vendor ID, DEV_5159 — Device ID и SUBSYS_000A1002 — SubSystem ID. Если все три ID совпадают с теми, которые зашиты в вашей видеокарте, операционная система делает вывод, что данные драйверы подходят к устройству, иначе выдается сообщение, что нужные драйверы не найдены.
Давайте рассмотрим внимательнее список устройств в inf-файле.
Что мы видим? А то что, например, все видеокарты на чипе RV100 (Radeon 7000/VE в различных модификациях), несмотря на различные SubSystem ID, имеют одно и тоже наименование установочного раздела — RV100_ENU. Карты на чипах R100 — R6_ENU_default. (Небольшое дополнение по просьбе читателей: В Windows XP и 2000 эти разделы имеют другие имена — например, ati2mtag_RV100, ati2mtag_default). Это те самые разделы, которые отвечают за установку и конфигурирование видеокарты. Более того, наименование этого раздела не зависит и от Vendor ID и определяется только Device ID, т.е. чипом, на котором сделан видеоадаптер. Какие из этого следуют практические выводы? А такие, что нам не нужно знать, кто производитель нашего видеоадаптера и какая на нем установлена память (точнее это надо знать, но для других целей, например, чтоб прикинуть его производительность). Но надо обязательно знать, на базе какого чипа изготовлена видеокарта. Зная это, вы абсолютно безбоязненно сможете принудительно установить драйверы от аналогичной карточки.
Уже предвижу вопрос: «А как это сделать?» Рассказываю. Откройте Панель управления => Система => Видеоадаптеры, выделите ваш Radeon, который виден в системе как «Стандартный VGA видеоадаптер» и нажмите кнопку «Свойства». Откроется новое окно, в котором надо открыть закладку «Драйвер» и нажать «Обновить драйвер». В появившемся окне выделите «Отобразить список всех драйверов, чтобы выбрать наиболее подходящий». Откроется еще одно окно, в нем ставим галку напротив «Отобразить полный список устройств», затем нажимаем «Установить с диска» и указываем путь к папке, в которую распаковали драйверы. Нажимаем «Далее» и в открывшемся списке выбираем родственное устройство на аналогичном чипе. Все остальное Windows сделает сама. Для вступления изменений в силу потребуется перезагрузка.
Второй способ посложнее, но позволит вам отредактировать inf-файл таким образом, что Windows самостоятельно определит вашу карту. Для этого открываем реестр и ищем ветку
• Для Win9x/ME:
HKLM\Config\000х\Display\Settings\PCI_VEN_****&DEV_****&SUBSYS_********
• Для Win XP:
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Control Panel\Settings\Video\PCI:VEN_****&DEV_****&SUBSYS_********
Где вместо * будут ID вашей карты. Причем обратите внимание, что Device ID у Radeon могут быть следующие:
• R100 (Radeon SDR, Radeon DDR, Radeon LE, Radeon VIVO, Radeon 7200) — 5144 ;
• RV100 (Radeon VE, Radeon 7000) — 5159 ;
• RV200 (Radeon 7500) — 5157 ;
• R200 (Radeon 8500/8500 LE) — 514C .
Можно открыть редактор реестра, ввести в строке поиска Device ID вашей карты и быстро получить искомую строчку, которая присутствует еще в нескольких ветвях реестра. Дальше распаковываем инсталляционный пакет драйверов в какую-либо папку и находим там один из следующих файлов:
• atii9xag.inf для Win9x/ME;
• atiixpag.inf для Win XP;
• atii2kag.inf для W2k.
Открываем его в тестовом редакторе, лучше в Блокноте, и вставляем в список устройств дополнительную строку, в которой заменяем присутствующие там Vendor ID и SubSystem ID на те, которые зашиты в вашей карте и которые только что были найдены в системном реестре. При установке подредактированных драйверов Windows найдет вашу карту самостоятельно.
Существует и третий метод — редактирование БИОСа видеокарты, но его мы благоразумно пропустим вообще. Пока. Возможно в дальнейшем мы расскажем и об этом.
Еще одно замечание. Драйверы могут не устанавливаться также по причине того, что у вас просто сильно замусорена или некорректно установлена система, отсутствуют или повреждены системные файлы. Поэтому столкнувшись с проблемой, не спешите делать вывод о том, что у вас нестандартная видеокарта.
Удачи!
| 9 февраля 2002 г. | Дмитрий aka Viller |
Реестр кодов USB PID для проектов open source

Рекомендуем почитать:
Xakep #295. Приемы рыбалки
- Содержание выпуска
- Подписка на «Хакер» -60%
Каждое подключенное устройство USB идентифицирует себя комбинацией VID/PID. В этой паре VID — 16-битный идентификатор производителя (Vendor ID), а PID — 16-битный идентификатор изделия (Product ID). Персональный компьютер использует эту комбинацию, чтобы найти драйверы для устройства, если таковые существуют в природе.
Естественно, для корректной работы всей экосистемы у каждого устройства USB должна быть уникальная комбинация VID/PID, чтобы не происходило путаницы с драйверами.
Реестром идентификаторов управляет некоммерческая организация USB Implementers Forum, Inc. (USB.org). Есть только два способа зарегистрировать у них VID: стать членом USB.org, уплачивая ежегодные взносы, или купить идентификатор VID за $5000. Далее каждый владелец VID распределяет идентификаторы PID на своё усмотрение.
В таких условиях возникает вопрос: а что делать участникам некоммерческих Open Source проектов, у которых нет денег, чтобы оплатить членство или выкупить идентификатор, но им нужен VID для обеспечения нормальной дееспособности устройств?
Специально для решения этой проблемы запущен PID.codes — база бесплатных PID для всех желающих.
В качестве базового VID используется идентификатор 0x1209 одной компании, которая зарегистрировала его ещё до изменения правил, запрещающих передачу PID третьим лицам. Сама компания уже прекратила производство продукции, так что 16-битный диапазон её адресов передаётся во всеобщее достояние.