Программирование драйверов Windows

       

Значения HKR


Аббревиатурой HKR в inf-файлах обозначаются подходящие по контексту подразделы Системного Реестра, применимые для данной операции.

Число типов приемлемых подразделов, на которые мог бы указывать контекстный параметр HKR, невелико, среди которых разработчику драйверов могут понадобиться следующие:

  • Подраздел экземпляра аппаратуры, Hardware Instance Key. Такие подразделы описывают экземпляр устройства в процессе перечисления и видны в разделе HKLM\System\CurrentControlSet\Enum, например, HKLM\System\CurrentControlSet\Enum\USB\Vid_0458&Pid_000e\5&1e1f5333&0&1, мышь "Genius".
  • Подраздел класса, Class Key, описывает зарегистрированный класс драйвера. Его можно найти в разделе Системного Реестра HKLM\System\CurrentControlSet\Control\Class (обязательно с добавлением GUID класса), например, для описанной выше мышки это будет ...\Class\{745A17A0-74D3-11D0-B6FE-00A0C90F57DA}, то есть HIDClass.
  • Драйверный подраздел, Driver Key, описывает установленный драйвер в подразделе для всех устройств данного класса (подразделе класса), например, .. .\Class\{745A17A0-74D3-11D0-B6FE-00A0C90F57DA}\0000.
  • Сервисный подраздел, Service Кеу (или Software Кеу), описывает, где находится загружаемый файл драйвера, когда его следует загружать, как обрабатывать ошибки и т.п. Такие подразделы видны в разделе HKLM\System\CurrentControlSet\Services, для примера с USB мышкой это будет HKLM\System\CurrentControlSet\Services\HidUsb.
  • Теперь можно перечислить, куда указывает HKR в записях конкретной секции типа [AddReg], в зависимости от того, какая секция сослалась на данную секцию типа [AddReg], см. таблицу 12.9.

    Таблица 12.9. Значение параметра HKR

    в секциях [AddReg]

    Откуда исходит ссылка на [AddReg] Куда указывает HKR
    Секция [DDInstall], директива AddReg Драйверный подраздел
    Секция [DDInstall.Xxx.Hw], директива AddReg Подраздел экземпляра аппаратуры
    Директива AddReg в секции [ServiceInstall], на которую указывает директива AddService

    секции [DDInstall.Xxx.Services]

    Сервисный подраздел
    Секция [ClassInstall32] или [ClassInstall], директива AddReg Подраздел класса
    Секция [DDInstall.Xxx.Coinstallers], директива AddReg Драйверный подраздел



    Содержание раздела