Поиск расширенных ключей regedit - PullRequest
0 голосов
/ 26 января 2019

Ключ, который я сейчас хочу получить, - это ключ DeviceDesc графического процессора, но, похоже, каждый путь к ключу regedit уникален, например:

Computer\HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum\PCI\VEN_10DE&DEV_1C03&SUBSYS_85B61043&REV_A1\4&1c3d25bb&0&0019

Что не похоже на путь, по которому все идут.

image

1 Ответ

0 голосов
/ 26 января 2019

Согласно документации Microsoft:

Дерево реестра HKLM \ SYSTEM \ CurrentControlSet \ Enum содержит информацию об устройствах в системе. PnP-менеджер создает подраздел для каждого устройства с именем в виде HKLM \ SYSTEM \ CurrentControlSet \ Enum \ Enumerator \ deviceID. Под каждым из этих ключей есть подраздел для каждого экземпляра устройства, присутствующего в системе. Этот подраздел содержит такую ​​информацию, как описание устройства, идентификаторы оборудования, совместимые идентификаторы и требования к ресурсам.

Дерево Enum зарезервировано для использования компонентами операционной системы, и его расположение может быть изменено. Драйверы и компоненты установки устройства в пользовательском режиме должны использовать предоставляемые системой функции, такие как IoGetDeviceProperty и SetupDiGetDeviceRegistryProperty, извлечь информацию из этого дерева. Драйверы и приложения Windows не должны иметь прямого доступа к дереву Enum. При отладке драйверов вы можете просматривать дерево Enum напрямую, используя редактор реестра.

Источник: https://docs.microsoft.com/en-us/windows-hardware/drivers/install/hklm-system-currentcontrolset-enum-registry-tree

Вы можете искать ключи следующим образом:

RegistryKey OurKey = Registry.LocalMachine;
OurKey = OurKey.OpenSubKey(@"HKLM\SYSTEM\CurrentControlSet\Enum", true);

foreach (string Keyname in OurKey.GetSubKeyNames())
{
    RegistryKey key = OurKey.OpenSubKey(Keyname);

    MessageBox.Show(key.GetValue("KEY_NAME").ToString()); // Replace KEY_NAME with what you're looking for
} 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...