Condividi tramite


Uso di Dirids

Molte delle directory visualizzate nei file INF possono essere espresse usando identificatori di directory (dirids), ovvero numeri che identificano directory specifiche. Le applicazioni possono usare, ma non possono riassegnare le directory definite dal sistema associate a diridi i cui valori sono compresi tra -1 e 32767.

Per creare diridi con valori definiti dall'utente compresi tra 32768 e 65534 o 65536 e versioni seguenti, usare la funzione SetupSetDirectoryId (descritta nella documentazione di Microsoft Windows SDK).

Tenere presente che un dirid con valore 65535 è considerato sinonimo di un dirid con un valore -1, anche se quest'ultimo (dirid -1) è preferibile.

Se si prevede di usare dirid nel file INF, prendere in considerazione le due linee guida seguenti:

  1. Quando la sintassi per una voce di file INF specifica in modo esplicito un valore dirid (la sezione INF DestinationDirs, ad esempio), esprimere tale valore come numero.

    L'esempio seguente illustra questa sintassi:

    [DestinationDirs]
    DefaultDestDir = 11  ;  \system32 directory on Windows 2000 and later versions
    
  2. Quando la sintassi per una voce di file INF specifica un percorso di file, è possibile usare una sostituzione di stringa fornita dal sistema per rappresentare parte o tutto questo percorso. Questa sostituzione ha il formato seguente:

    %dirid%

    Questo formato è costituito da un carattere percentuale (%) seguito dal dirid per la directory che si desidera specificare, seguito da un altro carattere percentuale (%) . Un carattere barra rovesciata di terminazione () separa questa espressione da un nome di file o da altre directory nel percorso.

    L'esempio seguente illustra questa sintassi:

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

    Quando completamente espanso, il percorso illustrato nell'esempio precedente diventa c:\windows\system32\driver\aic78xx.sys (presupponendo che Windows sia stato installato nella directory c:\windows). Tenere presente che la sostituzione di stringhe, o %dirid%, può essere utilizzata ovunque sia prevista una stringa, ad eccezione della sezione Stringhe INF del file INF.

    I due esempi seguenti illustrano come non usare la sostituzione di stringhe.

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

    Nel primo esempio, la sintassi per la voce DefaultDestDir richiede che il valore sia un numero. Tuttavia, l'espressione %11% si espande in una stringa. Nel secondo esempio, il writer INF apparentemente intende impostare il valore per la voce ServiceBinary su un file nella directory che contiene driver (vedere la tabella seguente per altre informazioni). L'errore si verifica perché Windows cerca il file specificato in una directory denominata "12", che probabilmente non esiste nel computer.

Nella tabella seguente vengono illustrati diversi dirid di uso comune e le directory che rappresentano. I valori specificati più comunemente dai file INF del dispositivo e dai file INF del driver sono elencati nella parte superiore della tabella.

Come parte dei requisiti di isolamento del pacchetto driver, un driver deve essere Eseguito dall'archivio driver e usare DIRID 13 per specificare il percorso per i file del pacchetto driver durante l'installazione. A partire da Windows 11, versione 24H2, alcuni dei dirid comunemente usati sono stati deprecati quando si invia INF per una firma WHQL. Per altre informazioni, vedere InfVerif /h.

Valore Directory di destinazione Versione deprecata

01

SourceDrive:\pathname (directory da cui è stato installato il file INF)

Windows 11 24H2

10

Directory di Windows.

Equivale a %SystemRoot%.

11

Directory di sistema.

Equivale a %SystemRoot%\system32 per Windows 2000 e versioni successive di Windows..

12

Directory dei driver.

Equivale a %SystemRoot%\system32\driver per Windows 2000 e versioni successive di Windows.

13

Directory dell'archivio driver del pacchetto driver.

Per Windows 8.1 e versioni successive di Windows, specifica il percorso della directory dell'archivio driver in cui è stato importato il pacchetto driver.

Non usare DelFiles in un file per il quale DestinationDirs include dirid 13.

La sottodirectory facoltativa nella sezione SourceDiskFiles per un file deve corrispondere alla sottodirectory nella sezione DestinationDirs per la voce applicabile a questo file.

Non usare CopyFiles per rinominare un file per il quale DestinationDirs include dirid 13.

Per altre informazioni sull'uso di dirid 13, vedere Eseguire da Driver Store.

17

Directory file INF

Windows 11 24H2

18

Directory della Guida

Windows 11 24H2

20

Directory Fonts

Windows 11 24H2

21

Directory Visualizzatori

Windows 11 24H2

23

Directory colori (ICM) (non usata per l'installazione dei driver della stampante)

24

Directory radice del disco di sistema.

Si tratta della directory radice del disco in cui sono installati i file di Windows. Ad esempio, se dirid 10 è "C:\winnt", dirid 24 è "C:\".

Windows 11 24H2

25

Directory condivisa

Windows 11 24H2

30

Directory radice del disco di avvio, nota anche come "partizione di sistema ARC". Potrebbe essere o meno la stessa directory di quella rappresentata da dirid 24.

Windows 11 24H2

50

Directory di sistema

Equivale a %SystemRoot%\system.

Windows 11 24H2

51

Directory Spool (non usata per l'installazione dei driver della stampante − vedere Dirids stampante)

52

Directory dei driver Spool (non usata per l'installazione dei driver della stampante)

53

Directory del profilo utente

Windows 11 24H2

54

Directory in cui si trovano Ntldr.exe e Osloader.exe

Windows 11 24H2

55

Directory dei processori di stampa (non usata per l'installazione dei driver della stampante)

-1

Percorso assoluto

Windows 11 24H2

I valori dirid compresi tra 16384 e 32767 sono riservati per cartelle speciali della shell. Nella tabella seguente vengono illustrati i valori dirid per queste cartelle.

Valore Cartella speciale della shell Versione deprecata

16406

Tutti gli utenti\Menu Start

Windows 11 24H2

16407

Tutti gli utenti\Menu Start\Programmi

Windows 11 24H2

16408

Tutti gli utenti\Menu Start\Programmi\Avvio

Windows 11 24H2

16409

Tutti gli utenti\Desktop

Windows 11 24H2

16415

Tutti gli utenti\Preferiti

Windows 11 24H2

16419

Tutti gli utenti\Dati applicazione

Windows 11 24H2

16422

Programmi

16425

%SystemRoot%\SysWOW64

16426

%ProgramFiles(x86)%

16427

Programmi\Common

16428

%ProgramFiles(x86)%\Common

16429

Tutti gli utenti\Modelli

Windows 11 24H2

16430

Tutti gli utenti\Documenti

Windows 11 24H2

Oltre ai valori di questa tabella definiti in Setupapi.h, è possibile usare uno dei valori CSIDL_Xxx definiti in Shlobj.h. Per definire un valore dirid per una cartella non elencata in questa tabella, aggiungere 16384 (0x4000) al valore CSIDL_Xxx . Per altre informazioni sui valori CSIDL_Xxx , vedere la documentazione di Windows SDK.