Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Многие каталоги, отображаемые в INF-файлах, могут быть выражены с помощью идентификаторов каталогов (диридов), которые являются числами, определяющими определенные каталоги. Приложения могут использовать, но не могут переназначить системные каталоги, связанные с диридами , значения которых — от -1 до 32767.
Чтобы создать дириды с пользовательскими значениями от 32768 до 65534 или 65536 и выше, используйте функцию SetupSetDirectoryId (описанную в документации по пакету SDK Для Microsoft Windows).
Помните, что дирид со значением 65535 считается синонимом дирида со значением -1, хотя последний (dirid -1) предпочтителен.
Если вы планируете использовать дириды в INF-файле, рассмотрите следующие два правила:
Если синтаксис для записи INF-файла четко указывает значение dirid (например, в разделе INF DestinationDirs), выразите это значение в виде числа.
В следующем примере показан этот синтаксис:
[DestinationDirs] DefaultDestDir = 11 ; \system32 directory on Windows 2000 and later versionsЕсли синтаксис для записи INF-файла указывает путь к файлу, можно использовать подстановку строки, предоставленной системой, для представления части или всего этого пути. Эта подстановка имеет следующую форму:
% dirid%
Эта форма состоит из символа процента (%), за которым следует идентификатор каталога, который вы хотите указать, а затем следует еще один символ процента (%). Завершающий символ обратной косой черты () отделяет это выражение от следующего имени файла или дополнительных каталогов в пути.
В следующем примере показан этот синтаксис:
[aic78xx_Service_Inst] ServiceBinary = %12%\aic78xx.sysПри полном развертывании путь, показанный в предыдущем примере, становится c:\windows\system32\drivers\aic78xx.sys (если Windows установлен в каталоге c:\windows). Помните, что подстановку строки в виде %dirid% можно использовать в любом месте, где ожидается строка, за исключением раздела INF Strings инфо-файла.
В двух следующих примерах показано, как не следует использовать подстановку строк.
[DestinationDirs] DefaultDestDir = %11% ; Error! - number expected [aic78xx_Service_Inst] ServiceBinary = 12\aic78xx.sys ; Error! - unknown directory nameВ первом примере синтаксис записи DefaultDestDir требует, чтобы его значение было числом. Однако выражение %11% расширяется в строку. Во втором примере средство записи INF, по-видимому, предназначено для задания значения для записи ServiceBinary в файле в каталоге, который содержит драйверы (дополнительные сведения см. в следующей таблице). Ошибка возникает из-за того, что Windows ищет указанный файл в каталоге с именем "12", который, вероятно, не существует на компьютере.
В следующей таблице показаны несколько часто используемых диридов и каталогов, которые они представляют. Значения, наиболее часто указанные в INF-файлах устройства и INF-файлах драйвера, перечислены в верхней части таблицы.
В рамках требований к изоляции пакетов драйверов драйвер должен запускаться из хранилища драйверов и использовать DIRID 13 для указания расположения файлов пакетов драйверов при установке. Начиная с Windows 11, версии 24H2, некоторые часто используемые dirids устарели при подаче вашего INF для получения подписи WHQL. Дополнительные сведения см. в разделе InfVerif /h.
| Ценность | Каталог назначения | Выпуск не рекомендуется |
|---|---|---|
01 |
SourceDrive:\pathname (каталог, из которого был установлен INF-файл) |
Windows 11 24H2 |
10 |
Каталог Windows. Это эквивалентно %SystemRoot%. |
|
11 |
Системный каталог. Это эквивалентно %SystemRoot%\system32 для Windows 2000 и более поздних версий Windows.. |
|
12 |
Каталог драйверов. Это эквивалентно %SystemRoot%\драйверамsystem32\ для Windows 2000 и более поздних версий Windows. |
|
13 |
Каталог Driver Store пакета драйверов. Для Windows 8.1 и более поздних версий Windows указывает путь к каталогу Магазина драйверов, в котором был импортирован пакет драйвера. Не используйте DelFiles для файла, если DestinationDirs содержит dirid 13. Необязательный подкаталог в разделе SourceDiskFiles для файла должен соответствовать подкаталогу в разделе DestinationDirs для записи, которая применяется к этому файлу. Не используйте CopyFiles для переименования файла, для которого DestinationDirs включает dirid 13. Дополнительные сведения об использовании dirid 13 см. в разделе "Запуск из хранилища драйверов". |
|
17 |
Каталог INF-файла |
Windows 11 24H2 |
18 |
Каталог справки |
Windows 11 24H2 |
20 |
Каталог шрифтов |
Windows 11 24H2 |
21 |
Каталог средств просмотра |
Windows 11 24H2 |
23 |
Каталог цветов (ICM) (не используется для установки драйверов принтера) |
|
24 |
Корневой каталог диска системы. Это корневой каталог диска, на котором установлены файлы Windows. Например, если значение dirid 10 равно C:\winnt, то значение 24 — C:\. |
Windows 11 24H2 |
25 |
Общий каталог |
Windows 11 24H2 |
30 |
Корневой каталог загрузочного диска, также известный как "системный раздел ARC". (Это может быть или не совпадать с каталогом, представленным dirid 24.) |
Windows 11 24H2 |
50 |
Системный каталог Это эквивалентно системе \%SystemRoot%. |
Windows 11 24H2 |
51 |
Каталог Spool (не используется для установки драйверов принтера — см. Printer Dirids) |
|
52 |
Каталог драйверов Spool (не используется для установки драйверов принтера) |
|
53 |
Каталог профилей пользователей |
Windows 11 24H2 |
54 |
Каталог, где находятся Ntldr.exe и Osloader.exe |
Windows 11 24H2 |
55 |
Каталог процессоров печати (не используется для установки драйверов принтера) |
|
-1 |
Абсолютный путь |
Windows 11 24H2 |
Значения dirid от 16384 до 32767 зарезервированы для специальных папок оболочки. В следующей таблице показаны значения dirid для этих папок.
| Ценность | Специальная папка оболочки | Выпуск не рекомендуется |
|---|---|---|
16406 |
Все пользователи\Меню "Пуск" |
Windows 11 24H2 |
16407 |
Все пользователи\Меню "Пуск"\Программы |
Windows 11 24H2 |
16408 |
Все пользователи\Меню "Пуск"\"Программы\Запуск" |
Windows 11 24H2 |
16409 |
Все пользователи\Desktop |
Windows 11 24H2 |
16415 |
Все пользователи\Избранное |
Windows 11 24H2 |
16419 |
Все пользователи\Данные приложения |
Windows 11 24H2 |
16422 |
Файлы программы |
|
16425 |
%SystemRoot%\SysWOW64 |
|
16426 |
%ProgramFiles(x86)% |
|
16427 |
Program Files\Common |
|
16428 |
%ProgramFiles(x86)%\Common |
|
16429 |
Все пользователи\Шаблоны |
Windows 11 24H2 |
16430 |
Все пользователи\Документы |
Windows 11 24H2 |
Помимо значений в этой таблице, определенных в Setupapi.h, можно использовать любое из значений CSIDL_Xxx, определенных в Shlobj.h. Чтобы задать значение dirid для папки, не перечисленной в этой таблице, добавьте 16384 (0x4000) к значению CSIDL_Xxx. Дополнительные сведения о значениях CSIDL_Xxx см. в документации по пакету SDK для Windows.