Udostępnij przez


Używanie Dirids

Wiele katalogów, które pojawiają się w plikach INF, można wyrazić przy użyciu identyfikatorów katalogu (dirids), które są liczbami identyfikującymi określone katalogi. Aplikacje mogą korzystać z katalogów zdefiniowanych przez system, które są skojarzone z dirids, z których wartości są od -1 do 32767, ale nie mogą ich ponownie przypisać.

Aby utworzyć diridy z wartościami zdefiniowanymi przez użytkownika w zakresie od 32768 do 65534 oraz od 65536 wzwyż, użyj funkcji SetupSetDirectoryId (opisanej w dokumentacji Microsoft Windows SDK).

Należy pamiętać, że dirid o wartości 65535 jest uważany za synonim z dirid z wartością -1, chociaż ten ostatni (dirid -1) jest preferowany.

Jeśli zamierzasz używać dirids w pliku INF, rozważ następujące dwie wskazówki:

  1. Gdy składnia wpisu pliku INF jawnie określa wartość (na przykład sekcja INF DestinationDirs, należy wyrazić ją jako liczbę.

    W poniższym przykładzie pokazano tę składnię:

    [DestinationDirs]
    DefaultDestDir = 11  ;  \system32 directory on Windows 2000 and later versions
    
  2. Gdy składnia wpisu pliku INF określa ścieżkę pliku, można użyć systemowego podstawiania ciągów do reprezentowania części lub całej tej ścieżki. Podstawienie ma następującą formę:

    % dirid%

    Ten formularz składa się ze znaku procentu (%), po którym następuje dla katalogu, który chcesz określić, a następnie kolejny znak procentu (%). Znak ukośnika odwrotnego () oddziela to wyrażenie od następującej nazwy pliku lub dodatkowych katalogów w ścieżce.

    W poniższym przykładzie pokazano tę składnię:

    [aic78xx_Service_Inst]
    ServiceBinary = %12%\aic78xx.sys
    

    Po pełnym rozwinięciu ścieżka wyświetlana w poprzednim przykładzie staje się c:\windows\system32\drivers\aic78xx.sys (zakładając, że system Windows został zainstalowany w katalogu c:\windows). Należy pamiętać, że podstawianie ciągów lub forma %dirid% mogą być używane w dowolnym miejscu, gdzie oczekiwany jest ciąg, z wyjątkiem sekcji INF Strings pliku INF.

    W dwóch poniższych przykładach pokazano, jak podstawianie ciągów powinno nie być używane.

    [DestinationDirs]
    DefaultDestDir = %11%  ; Error! - number expected
    
    [aic78xx_Service_Inst]
    ServiceBinary = 12\aic78xx.sys  ; Error! - unknown directory name
    

    W pierwszym przykładzie składnia dla wpisu DefaultDestDir wymaga, aby jego wartość była liczbą. Jednak wyrażenie %11% rozszerza się na ciąg. W drugim przykładzie autor INF najwyraźniej zamierzał ustawić wartość dla wpisu ServiceBinary na plik w katalogu zawierającym pliki sterowników (zobacz poniższą tabelę, aby uzyskać więcej informacji). Błąd występuje, ponieważ system Windows wyszukuje określony plik w katalogu o nazwie "12", który prawdopodobnie nie istnieje na komputerze.

Poniższa tabela zawiera kilka często używanych diridsoraz odpowiadające im katalogi. Wartości najczęściej określane przez pliki INF urządzenia i pliki INF sterownika są wyświetlane w górnej części tabeli.

W ramach wymagania izolacji pakietów sterowników należy uruchomić z magazynu sterowników i użyć DIRID 13, aby określić lokalizację plików pakietów sterowników podczas instalacji. Począwszy od systemu Windows 11, wersja 24H2 niektóre z powszechnie używanych zostały przestarzałe podczas przesyłania INF na podpis WHQL. Aby uzyskać więcej informacji, zobacz InfVerif /h.

Wartość Katalog docelowy Wersja przestarzała

01

SourceDrive:\nazwa_ścieżki (katalog, z którego zainstalowano plik INF)

Windows 11 24H2

10

Katalog systemu Windows.

Jest to odpowiednik %SystemRoot%.

11

Katalog systemowy.

Jest to odpowiednik %SystemRoot%\system32 dla systemu Windows 2000 i nowszych wersji systemu Windows.

12

Katalog sterowników.

Jest to odpowiednik sterowników %SystemRoot%\system32\ dla systemu Windows 2000 i nowszych wersji systemu Windows.

13

Katalog magazynu sterowników pakietu .

W przypadku systemu Windows 8.1 i nowszych wersji systemu Windows określa ścieżkę do katalogu Sklep sterowników, w którym zaimportowano pakiet sterowników.

Nie używaj DelFiles w pliku, dla którego DestinationDirs zawiera dirid 13.

Opcjonalny podkatalog w sekcji SourceDiskFiles pliku musi być zgodny z podkatalogem w sekcji DestinationDirs dla wpisu, który ma zastosowanie do tego pliku.

Nie używaj CopyFiles, aby zmienić nazwę pliku, dla którego DestinationDirs zawiera dirid 13.

Aby uzyskać więcej informacji na temat używania dirid 13, zobacz Run from Driver Store.

17

Katalog plików INF

Windows 11 24H2

18

Katalog Pomocy

Windows 11 24H2

20

Katalog czcionek

Windows 11 24H2

21

Katalog osób przeglądających

Windows 11 24H2

23

Katalog kolorów (ICM) (nie używany do instalowania sterowników drukarek)

24

Katalog główny dysku systemowego.

Jest to katalog główny dysku, na którym są instalowane pliki systemu Windows. Na przykład, jeśli dirid 10 to "C:\winnt", to dirid 24 będzie "C:\".

Windows 11 24H2

25

Katalog udostępniony

Windows 11 24H2

30

Katalog główny dysku rozruchowego, znany również jako "partycja systemowa ARC". (Może to być ten sam katalog, co katalog reprezentowany przez dirid 24.)

Windows 11 24H2

50

Katalog systemowy

Jest to odpowiednik systemu %SystemRoot%\.

Windows 11 24H2

51

Katalog buforu (nie używany do instalowania sterowników drukarek − zobacz Dirids drukarki)

52

Katalog sterowników buforu (nie używany do instalowania sterowników drukarek)

53

Katalog profilu użytkownika

Windows 11 24H2

54

Katalog, w którym znajdują się Ntldr.exe i Osloader.exe

Windows 11 24H2

55

Katalog procesorów wydruku (nie używany do instalowania sterowników drukarek)

-1

Ścieżka bezwzględna

Windows 11 24H2

wartości Dirid z zakresu od 16384 do 32767 są zarezerwowane dla specjalnych folderów systemowych. W poniższej tabeli przedstawiono wartości dirid dla tych folderów.

Wartość Specjalny folder powłoki Przestarzałe wydanie

16406

Wszyscy użytkownicy\Menu Start

Windows 11 24H2

16407

wszyscy użytkownicy\Menu Start\Programy

Windows 11 24H2

16408

wszyscy użytkownicy\Start Menu\Programy\Startup

Windows 11 24H2

16409

wszystkich użytkowników\Pulpit

Windows 11 24H2

16415

Ulubione wszystkich użytkowników

Windows 11 24H2

16419

wszystkich użytkowników\ danych aplikacji

Windows 11 24H2

16422

Program Files

16425

%SystemRoot%\SysWOW64

16426

%ProgramFiles(x86)%

16427

Program Files\Common

16428

%ProgramFiles(x86)%\Common

16429

Wszyscy użytkownicy/Szablony

Windows 11 24H2

16430

wszystkich użytkowników\dokumentów

Windows 11 24H2

Oprócz wartości w tej tabeli zdefiniowanych w Setupapi.hmożna użyć dowolnych wartości CSIDL_Xxx zdefiniowanych w Shlobj.h. Aby zdefiniować wartość dirid dla folderu, który nie znajduje się w tej tabeli, dodaj wartość 16384 (0x4000) do wartości CSIDL_Xxx. Aby uzyskać więcej informacji na temat wartości CSIDL_xxx, zobacz dokumentację zestawu Windows SDK.