Condividi tramite


Uso di Dirids

Molte delle directory visualizzate nei file INF possono essere espresse usando identificatori di directory (dirids), che sono numeri che identificano directory specifiche. Le applicazioni possono usare, ma non possono riassegnare le directory definite dal sistema associate a dirids 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 precedenti, usare la funzione SetupSetDirectoryId (descritta nella documentazione di Microsoft Windows SDK).

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

Se si prevede di usare dirid nel file INF, considerare 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.

    Nell'esempio seguente viene illustrata 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 utilizzare una sostituzione di stringhe 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.

    Nell'esempio seguente viene illustrata questa sintassi:

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

    Quando si espande completamente, 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 usata in qualsiasi punto in cui è 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 ha apparentemente lo scopo di impostare il valore per la voce ServiceBinary su un file nella directory che contiene i 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.

La tabella seguente illustra 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.

Valore Directory di destinazione

01

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

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 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 dall'archivio driver.

17

Directory file INF

18

Directory della Guida

20

Directory Fonts

21

Directory Visualizzatori

23

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

24

Directory radice del disco di sistema.

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

25

Directory condivisa

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.

50

Directory di sistema

Equivale a %SystemRoot%\system.

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

54

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

55

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

-1

Percorso assoluto

I valori dirid compresi tra 16384 e 32767 sono riservati alle cartelle della shell speciali. La tabella seguente mostra i valori dirid per queste cartelle.

Valore Cartella speciale della shell

16406

Tutti gli utenti\Menu Start

16407

Tutti gli utenti\Menu Start\Programmi

16408

Tutti gli utenti\Menu Start\Programmi\Avvio

16409

Tutti gli utenti\Desktop

16415

Tutti gli utenti\Preferiti

16419

Tutti gli utenti\Dati applicazione

16422

Programmi

16425

%SystemRoot%\SysWOW64

16426

%ProgramFiles(x86)%

16427

Programmi\Common

16428

%ProgramFiles(x86)%\Common

16429

Tutti gli utenti\Modelli

16430

Tutti gli utenti\documenti

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.