Все современные компьютерные устройства имеют уникальные аппаратные идентификаторы ( PnP ID или просто ID ), в которых указываются производитель ( Vendor ID) ,
тип и класс устройства (Device ID). Идентификатор устройства может быть считан программно и является исходной информацией для привязки соответствующего драйвера к
данному устройству. Идентификатор устройства можно посмотреть в диспетчере устройств, выбрав ”Свойства” – ”Сведения” – ”ИД оборудования”. Например, для стандартного контроллера AHCI :
Символ точки с запятой (;), в inf-файлах используется в качестве признака начала поля комментария.
Строка символов, заключенная в квадратные скобки указывает на секцию inf-файла, которая может содержать один или несколько параметров. Как минимум,
в inf-файлах присутствуют параметры, определяющие операционную систему, для установки в которую предназначен драйвер, класс устройств, который
должен обслуживать данный драйвер, имена файлов драйвера и аппаратные идентификаторы устройств (ИД оборудования), которые обслуживаются данным драйвером.
Перечень GUID классов стандартных устройств Windows
Существующий в конкретной операционной системе, набор драйверов, определяется содержимым
каталога C:Windows System32 DriverStore FileRepository. Так, например, файлы необходимые для установки стандартного дискового контроллера Microsoft,
хранятся в папке, имя которой начинается с mshdc.inf_. Примерный список файлов для Windows 7:
Примерный список файлов для Windows 8-10:
atapi.sys
ataport.sys
intelide.sys
mshdc.inf
pciide.sys
pciidex.sys
storahci.sys
Стандартный контроллер SATA от Microsoft в Windows 8-10 использует драйвер storahci.sys, в Windows 7 – msahci.sys.
Полный набор INF-файлов, существующих в операционной системе Windows, хранится в каталоге C:Windowsinf.
GUID stands for Global Unique Identifier. A GUID is a 128-bit integer (16 bytes) that you can use across all computers and networks wherever a unique identifier is required.
Here are some frequently asked questions about GUIDs.
How many GUIDs in Microsoft Windows can one computer generate without rolling over or running out?
Without getting into detail, let me tell you there are 2^122 or 5,316,911,983,139,663,491,615,228,241,121,400,000 possible combination.
Reason is beyond the scope of this article.
Which class in. N ET Framework is used to generate Guid?
System. GUID class represents a GUID in . NET Framework.
How can we generate GUID with SQL Server?
We can generate GUID in Sql Server with the help of NEWID() function
Which namespace must be referenced to utilize the GUID attribute?
System. Runtime. InteropServices namespace must be referenced to utilize the GUID attribute.
Generating GUID in. N ET Framework using C#
Note that in above code we have used the NewGuid Method which will create new GUID.
A common mistake done by C# developers is to create an object of GUID and trying to print that.
The output of above console program will always be 16 byte with all 0. Everytime same thing will come. So while generating GUID use NewGuid Method. Also note that Guid only contains alphanumeric characters and none of non-alphanumeric character will be seen in GUID except “-“;
Hope it helps.
What is GUID?
Earlier GUID was known as UUID. U UID stands for Universally Unique Identifier. We use GUID for unique identifier. Now a question arise if we already have primary key than why we use Globally Unique Identifier(GUID). we use GUID because it have very low probability of being duplicated as it is 128-bit integer(16 bytes) which allow to use GUID across all databse and computer without data collision.
Why do we use GUID?
We use GUID to create a unique Id. A GUID makes a great primary key in the back-end database. While each generated GUID is not guaranteed to be unique, the total number of unique keys (3.40282366×1038) is so large that the probability of the same number being generated twice is very small. For an application using 10 billion random GUIDs, the probability of a coincidence is approximately 1 in a quintillion.
Advantage of GUID
Cheers to coding!!!
Thus, anyone can create a UUID and use it to identify something with near certainty that the identifier does not duplicate one that has already been, or will be, created to identify something else. Таким образом, информация, помеченная UUID независимыми сторонами, впоследствии может быть объединена в единую базу данных или передана по тому же каналу с незначительной вероятностью дублирования.
Использование UUID широко распространено, и многие вычислительные платформы поддерживают их создание и анализ их текстового представления.
Двоичный формат провода
Устаревший UUID Apollo NCS имеет формат, описанный в предыдущей таблице. Вариант OSF DCE UUID описан в RFC 4122. Вариант Microsoft COM/DCOM UUID описан в документации Microsoft.
Вариант OSF DCE определяет в стандарте пять «версий», и каждая версия может быть более подходящей, чем другие, в конкретных случаях использования. Версия указывается старшим полубайтом (4 бита) 7-го байта UUID.
Версия 1 (дата-время и MAC-адрес)
Идентификатор пространства имен сам по себе является UUID. Спецификация предоставляет UUID для представления пространств имен для URL-адресов, полных доменных имен, идентификаторов объектов и отличительных имен X.500; но любой желаемый UUID может использоваться в качестве обозначения пространства имен.
Чтобы определить UUID версии 3, соответствующий заданному пространству имен и имени, UUID пространства имен преобразуется в строку байтов, объединяется с входным именем, затем хэшируется с помощью MD5, что дает 128 бит. Затем 6 или 7 бит заменяются фиксированными значениями, 4-битной версией (например, 00112 для версии 3) и 2- или 3-битным «вариантом» UUID (например, 102, указывающим RFC 4122 UUID, или 1102, указывающим на устаревший UUID). GUID Майкрософт). Поскольку таким образом предопределены 6 или 7 битов, только 121 или 122 бита способствуют уникальности UUID.
UUID версии 5 аналогичны, но вместо MD5 используется SHA-1. Поскольку SHA-1 генерирует 160-битные дайджесты, дайджест усекается до 128 бит перед заменой битов версии и варианта.
Версия 4 (случайно)
UUID версии 4 генерируется случайным образом. Как и в других UUID, 4 бита используются для указания версии 4 и 2 или 3 бита для указания варианта (102 или 1102 для вариантов 1 и 2 соответственно). Таким образом, для варианта 1 (то есть для большинства UUID) случайный UUID версии-4 будет иметь 6 заранее определенных битов варианта и версии, оставляя 122 бита для случайно сгенерированной части, всего 2122 или 5,310 (5,3 ундециллиона) возможных версий. -4 варианта-1 UUID. Существует вдвое меньше возможных UUID версии 4 варианта 2 (устаревшие GUID), поскольку доступно на один случайный бит меньше, а для варианта используется 3 бита.
UUID “Max”, особый случай, это UUID FFFFFFFF-FFFF-FFFF-FFFF-FFFFFFFFFFFF; то есть все биты установлены в единицу.
Поскольку UUID представляет собой 128-битную метку, он может быть представлен в различных форматах.
UUID может быть представлен как 128-битное целое число. Например, UUID 550e8400-e29b-41d4-a716-446655440000 также может быть представлен как 113059749145936325402354257176981405696. Обратите внимание, что могут быть значения как со знаком, так и без знака, если первый бит UUID установлен в 1.
UUID может быть представлен как 128-битное двоичное число. Например, UUID 550e8400-e29b-41d4-a716-446655440000 также может быть представлен как 010101010000111010000100000000001110001010011011010000011101010010100111 00010110010001000110011001010101010001000000000000000000.
RFC 4122 зарегистрировал пространство имен “uuid”. Это позволяет создавать URN из UUID, например urn:uuid:550e8400-e29b-41d4-a716-446655440000. Для этого используется обычный формат 8-4-4-4-12. Также можно создать OID URN из UUID, например urn:oid:2.25.113059749145936325402354257176981405696. В этом случае используется беззнаковый десятичный формат. URN “uuid” рекомендуется вместо URN “oid”.
Коллизия возникает, когда один и тот же UUID генерируется более одного раза и присваивается разным референтам. В случае стандартных UUID версии 1 и версии 2, использующих уникальные MAC-адреса сетевых карт, коллизии маловероятны, с повышенной вероятностью только в том случае, если реализация отличается от стандартов либо непреднамеренно, либо преднамеренно.
Это число эквивалентно генерации 1 миллиарда UUID в секунду в течение примерно 86 лет. Файл, содержащий такое количество UUID, по 16 байтов на UUID, будет занимать около 45 экзабайт.
Наименьшее количество UUID версии 4, которое должно быть сгенерировано, чтобы вероятность обнаружения коллизии равнялась p, аппроксимируется формулой
Таким образом, вероятность найти дубликат среди 103 триллионов UUID версии 4 составляет один к миллиарду.



