Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Un file INF è un file di testo organizzato in sezioni denominate. Alcune sezioni hanno nomi definiti dal sistema e alcune sezioni hanno nomi determinati dal writer del file INF.
Ogni sezione contiene voci specifiche per ciascuna sezione, interpretate dai componenti di installazione del dispositivo. Alcune voci iniziano con un keyword predefinito. Queste voci vengono chiamate direttive.
Alcune voci di file INF sono fondamentalmente puntatori da una sezione a un'altra, per uno scopo specifico. Ad esempio, una direttiva INF AddReg identifica una sezione contenente voci che indicano a Windows di modificare il Registro di sistema. Queste voci includono talvolta argomenti aggiuntivi (obbligatori o facoltativi) per Windows da interpretare durante l'installazione.
Altre voci di file INF non puntano ad altre sezioni, ma forniscono informazioni usate da Windows durante l'installazione, ad esempio nomi di file, valori del Registro di sistema, informazioni di configurazione hardware, flag e così via. Ad esempio, una direttiva INF DriverVer fornisce informazioni sulla versione del driver.
Quando Windows avvia un'installazione, cerca prima di tutto una sezione VERSIONE INF per verificare la validità del file INF. Quindi inizia l'installazione trovando una sezione del produttore INF. Questa sezione contiene direttive per le sezioni MODELLI INF, che a loro volta forniscono direttive che portano a varie sezioni INF DDInstall, in base all'ID hardware del dispositivo in fase di installazione.
Le regole di sintassi seguenti regolano il contenuto obbligatorio e facoltativo dei file INF, il formato dei nomi di sezione usando token di stringa e il formato di riga, la continuazione e i commenti.
Distinzione tra maiuscole e minuscole
- I nomi delle sezioni, le voci e le direttive non fanno distinzione tra maiuscole e minuscole. Ad esempio, version, VERSION e Version sono specifiche del nome di sezione ugualmente valide all'interno di un file INF.
Contenuto obbligatorio e facoltativo
Il set di sezioni, voci e direttive obbligatorie e facoltative in qualsiasi file INF specifico dipende dal tipo di dispositivo/driver o componente da installare.
Il set di sezioni, voci specifiche della sezione e direttive necessarie per installare qualsiasi dispositivo specifico e i relativi driver dipende anche in qualche modo dal programma di installazione della classe corrispondente, se presente. Per altre informazioni su come i programmi di installazione della classe forniti dal sistema gestiscono file INF specifici del tipo di dispositivo, vedere la documentazione specifica del tipo di dispositivo in WDK.
All'interno delle definizioni di sintassi, le voci facoltative sono delimitate da parentesi quadre non in grassetto ([,]). D'altra parte, le parentesi in grassetto ([, ]) sono elementi obbligatori nella voce in cui sono contenuti. Nell'esempio seguente, sono necessarie le parentesi intorno a Version, mentre le parentesi intorno a Class=class-name indicano che questa voce è facoltativa.
[Version] Signature="signature-name" [Class=class-name] ...
Nomi di sezione
Le sezioni possono essere specificate in qualsiasi ordine. La maggior parte dei file INF elenca le sezioni in un ordine specifico, per convenzione, ma Windows trova le sezioni in base al nome, non alla posizione all'interno del file INF.
Ogni sezione di un file INF inizia con il nome della sezione racchiuso tra parentesi quadre ([ ]). Il nome della sezione può essere definito dal sistema o dall'autore INF.
Ad esempio, [Manufacturer] specifica l'inizio della sezione Manufacturer denominata dal sistema, mentre [Std.Mfg] rappresenta un particolare nome di sezione modelli definiti dal writer INF.
Un nome di sezione ha una lunghezza massima di 255 caratteri in Windows 2000 e versioni successive di Windows.
Ogni sezione termina all'inizio di un nuovo [nome-sezione] o alla fine del file.
Se ci sono più sezioni di un file INF con lo stesso nome, il sistema unisce le voci e le direttive in una singola sezione.
A meno che non sia racchiuso tra virgolette doppie ("), un nome di sezione definito da uno scrittore INF deve essere una stringa univoca per l'INF senza virgolette di caratteri esplicitamente visibili, escludendo determinati caratteri con significati specifici per l'INF. In particolare, un nome di sezione non racchiuso tra virgolette a cui fa riferimento una voce di sezione o una direttiva non può avere spazi iniziali o finali, un carattere di avanzamento riga, un carattere di ritorno o qualsiasi carattere di controllo invisibile, e non deve contenere tabulazioni. Inoltre, non può contenere una delle parentesi quadre ([ ]), un carattere a percentuale singola (%), un punto e virgola (;) o qualsiasi virgoletta doppia interna (") e non può avere una barra rovesciata (\) come ultimo carattere.
Ad esempio, Std.Mfg e Std_Mfg sono nomi di sezione univoci e validi quando si fa riferimento a una direttiva o una voce di file INF, ma Std; Mfg (con il punto e virgola interno) non è valido a meno che non sia racchiuso tra virgolette doppie (").
La specifica di un nome di sezione definito dal writer INF come "stringa tra virgolette" sostituisce la maggior parte delle restrizioni descritte in precedenza sui caratteri nei nomi di sezione a cui si fa riferimento. Un nome di sezione delimitato di questo tipo può contenere quasi qualsiasi carattere visibile in modo esplicito o implicito, ad eccezione della parentesi chiusa (]), purché la sezione corrispondente nel file INF corrisponda esattamente a questa "stringa tra virgolette".
Ad esempio, ";; Std Mfg " è un riferimento valido per il nome di sezione se la dichiarazione di sezione corrispondente nel file INF corrisponde esattamente al nome all'interno delle virgolette doppie rispetto allo spazio e al punto e virgola come [;; Std Mfg ].
Uso dei token di stringhe
Molti valori in un file INF, inclusi i nomi di sezione definiti dal writer INF, possono essere espressi come token di chiave stringa del form %strkey%. Nella sezione Stringhe INF del file INF ogni chiave stringa deve essere associata a un valore stringa costituito da una sequenza di caratteri esplicitamente visibili. Se necessario, il codice di installazione converte il valore stringa in Unicode.
Per maggiori informazioni su come definire % i token strkey% e i rispettivi valori, vedere la descrizione della sezione Stringhe INF.
Formato riga, continuazione e commenti
Ogni voce e direttiva in una sezione termina con un carattere di ritorno a capo o di avanzamento riga. Pertanto, l'editor di testo utilizzato per creare un file INF non deve inserire caratteri di ritorno o di avanzamento riga dopo un numero arbitrario di caratteri determinato dall'editor.
Il carattere barra rovesciata (\) può essere usato come indicazione esplicita di continuazione di riga in una voce o direttiva. Tuttavia, i backslash vengono usati anche nelle specifiche dei percorsi. Per assicurarsi che un carattere barra rovesciata visualizzato in una specifica del percorso non venga interpretato in modo non corretto come continuatore di riga, usare la strategia seguente:
Per una direttiva che si estende su due righe, una delle quali è una voce contenente una barra rovesciata, utilizzare le virgolette per delimitare la voce contenente la barra rovesciata.
CopyFiles = "SomeDirectory\"\ ,SomeFile
Evitare di usare il carattere barra rovesciata nel modo illustrato nell'esempio seguente. Windows ignora la prima barra rovesciata e interpreta la seconda barra rovesciata come continuatore di riga.
CopyFiles = SomeDirectory\\ ,SomeFile
La sintassi seguente è valida ed è equivalente a
CopyFiles = "SomeDirectory\",SomeFile ; comment
.CopyFiles = "SomeDirectory\"\ ; comment ,SomeFile
Poiché il testo dopo un punto e virgola viene ignorato,
CopyFiles = "SomeDirectory\" ; comment ,SomeFile
non funziona.
I commenti iniziano con un carattere punto e virgola (;). Durante l'analisi e l'interpretazione di un file INF, il sistema presuppone che il seguente non abbia rilevanza per il processo di installazione:
- Qualsiasi carattere che segue un punto e virgola sulla stessa riga, a meno che il punto e virgola non compaia all'interno di una "stringa tra virgolette" o di un token %strkey%
- Qualsiasi riga vuota che non contiene nulla tranne un avanzamento riga o un carattere di ritorno
Le virgole separano i valori specificati nelle voci e nelle direttive di sezione.
Una voce o una direttiva di file INF può omettere un valore facoltativo al centro di un elenco di valori, ma le virgole devono rimanere. I file INF possono omettere virgole finali.
Si consideri ad esempio la sintassi per una voce di sezione SourceDisksFiles :
filename=diskid[,[subdir][,size]]
Una voce che omette il valore subdir , ma fornisce il valore size deve specificare i delimitatori di virgole per entrambi i valori, come illustrato nell'esempio seguente:
Filename=diskid,dimensioni
Una voce in un file INF che omette i due valori facoltativi può avere questo formato:
Filename=diskid
Per includere un carattere percentuale (%) nei valori forniti nelle voci e nelle direttive di sezione, eseguire l'escape del carattere percentuale con un altro carattere percentuale.
Si consideri ad esempio questa istruzione in una sezione [add-registry-section] :
HKR,,EventMessageFile,0x00020000,"%%SystemRoot%%\System32\IoLogMsg.dll"
Il valore del Registro di sistema verrà impostato con il valore seguente:
%SystemRoot%\System32\IoLogMsg.dll
Per includere un carattere di virgolette doppie (") nei valori forniti nelle voci delle sezioni e nelle direttive, è necessario escapare il carattere di virgolette doppie con un'altra virgolette doppie. Si noti che la stringa deve trovarsi all'interno di una "stringa tra virgolette".
Ad esempio, si consideri questa istruzione in una sezione [add-registry-section]:
HKR,,Esempio,"Visualizzare una stringa ""esempio""
Il valore del Registro di sistema verrà impostato con il valore seguente:
Visualizzare una stringa "esempio"
Limiti di dimensioni INF
La lunghezza massima, in caratteri, di un campo di file INF, prima della sostituzione di stringhe e incluso un carattere NULL di terminazione, è 4096.
Dopo la sostituzione di stringhe, la lunghezza massima, in caratteri, di una stringa di file INF è 4096, che include un carattere NULL di terminazione.
Tenere tuttavia presente che Plug and Play (PnP) può imporre un limite più restrittivo per determinati campi di file INF riconosciuti o usati, ad esempio la descrizione del dispositivo, il provider di driver e il produttore del dispositivo.