Замечания по декорированию имен
Начинающие разработчики inf-файлов в большинстве своем испытывают значительные затруднения при работе с ними. Между тем, при определенном взгляде на данное "странное явление", каковым является inf-файл, трудности можно существенно уменьшить.
Прежде всего, маркер, который является идентификатором, взятым в два знака процента, есть не что иное, как формальная переменная ('икс' в школьной задаче). Его внешнее сходство с чем-либо еще в записях inf-файла обманчиво. Во всех тех местах, где встречается маркер, следует подставлять его значение, соотнесенное с ним в секции [Strings]. Причем, это значение, может быть не обязательно текстовым, например:
[Example.Service] DisplayName = %Example.ServiceName% ServiceType = %SERVICE_KERNEL_DRIVER% StartType = %SERVICE_DEMAND_START%
[Strings] Example.ServiceName="Example NTDDK driver (V.001)" SERVICE_KERNEL_DRIVER=1 SERVICE_DEMAND_START=3
Здесь с маркером %Example.ServiceName% соотнесено строковое значение "Example NTDDK driver (V.001)", а с маркером %SERVICE_KERNEL_DRIVER% соотнесено значение 1. Текстовые значения (здесь Example.ServiceName) называются локализуемыми значениями (их можно задавать разными для разных языковых версий операционной системы, локализаций). Нетекстовые значения считаются нелокализуемыми.
В том случае, если значение маркера не раскрывается, то будет полагаться, что поле, в котором введен маркер, просто имеет текстовое значение, совпадающее с маркером, например, "%Example.ServiceName%" в примере выше.
Во-вторых, двусмысленна роль точки в формировании имен секций и маркеров.
Если точка встречается в написании маркера, то следует считать ее обычным символом, который разработчик употребил ради большей выразительности.
В случае если точка встретилась в имени секции (или в ссылке на имя секции), то возможно два варианта:
свойств секции. В частности, секция [ModelList.NT.5.1] будет приниматься к рассмотрению только в операционной системе Windows XP.