Объекты раздела реестра

Системный драйвер PortCls реализует интерфейс IRegistryKey для преимущества драйверов минипорта. Объект IRegistryKey представляет раздел реестра. Драйверы минипорта используют объекты ключей реестра для выполнения следующих действий:

  • Создание и удаление разделов реестра

  • Перечисление разделов реестра

  • Запрос и установка ключей реестра

При запросе объекта ключа реестра для получения сведений о записи реестра в указанном ключе запрос может выводить информацию в одном из трех форматов, причем каждый из них использует различную структуру запроса ключа. В следующей таблице показаны значения перечисления KEY_INFORMATION_CLASS , указывающие, какая из трех структур key-query выводится запросом.

значение класса информации KEY_INFORMATION_CLASS Структура Key-Query

KeyBasicInformation

KEY_BASIC_INFORMATION

KeyFullInformation

KEY_FULL_INFORMATION

KeyNodeInformation

KEY_NODE_INFORMATION

Чтобы открыть существующий раздел реестра или создать новый раздел реестра, драйвер адаптера может вызвать функцию PcNewRegistryKey, а минипорт-драйвер может вызвать метод IPort::NewRegistryKey драйвера порта. Два вызова похожи, за исключением того, что функция PcNewRegistryKey требует двух дополнительных параметров, DeviceObject и SubDevice. Дополнительные сведения см. в разделе PcNewRegistryKey.

Когда драйвер минипорта создает новый объект IRegistryKey , объект либо открывает существующий подраздел, либо создает новый подраздел реестра, если он отсутствует. В любом случае объект ключа реестра сохраняет дескриптор ключа. При последующем освобождении этого объекта и уменьшении его счетчика ссылок до нуля, объект автоматически закрывает свой дескриптор для ключа.

Интерфейс IRegistryKey поддерживает следующие методы:

IRegistryKey::DeleteKey

IRegistryKey::EnumerateKey

IRegistryKey::EnumerateValueKey

IRegistryKey::NewSubKey

IRegistryKey::QueryKey

IRegistryKey::QueryRegistryValues

IRegistryKey::QueryValueKey

IRegistryKey::SetValueKey