Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Een INF-bestand is een tekstbestand dat is ingedeeld in benoemde secties. Sommige secties hebben door het systeem gedefinieerde namen en sommige secties hebben namen die worden bepaald door de schrijver van het INF-bestand.
Elke sectie bevat sectiespecifieke vermeldingen die worden geïnterpreteerd door onderdelen van de apparaatinstallatie. Sommige vermeldingen beginnen met een vooraf gedefinieerd trefwoord. Deze vermeldingen worden directieven genoemd.
Sommige INF-bestandsvermeldingen zijn in feite aanwijzers van de ene sectie naar de andere voor een specifiek doel. Een INF AddReg-instructie identificeert bijvoorbeeld een sectie met vermeldingen die Windows opdracht geven om het register te wijzigen. Deze vermeldingen bevatten soms extra argumenten (vereist of optioneel) voor Windows die tijdens de installatie moeten worden geïnterpreteerd.
Andere INF-bestandsvermeldingen verwijzen niet naar andere secties, maar geven informatie op die Windows gebruikt tijdens de installatie, zoals bestandsnamen, registerwaarden, hardwareconfiguratie-informatie, vlaggen enzovoort. Een INF DriverVer-instructie levert bijvoorbeeld informatie over stuurprogrammaversies.
Wanneer Windows een installatie begint, wordt eerst gezocht naar een INF Version-sectie om de geldigheid van het INF-bestand te controleren. Vervolgens wordt de installatie gestart door de sectie INF Manufacturer te vinden. Deze sectie bevat instructies voor INF Models secties, die op hun beurt richtlijnen bieden die leiden tot verschillende INF DDInstall-secties, op basis van de hardware-id van het apparaat dat wordt geïnstalleerd.
De volgende syntaxisregels bepalen de vereiste en optionele inhoud van INF-bestanden, de indeling van sectienamen met behulp van tekenreekstokens en regelindeling, regelvoortzetting en opmerkingen.
Hoofdlettergevoeligheid
- Sectienamen, items en instructies zijn niet hoofdlettergevoelig. version, VERSION en Versie zijn bijvoorbeeld even geldige sectienaamspecificaties binnen een INF-bestand.
Vereiste en optionele inhoud
De set van vereiste en optionele secties, vermeldingen en instructies in een bepaald INF-bestand is afhankelijk van het type apparaat/stuurprogramma of onderdeel dat moet worden geïnstalleerd.
De reeks secties, sectiespecifieke vermeldingen en instructies die nodig zijn om een bepaald apparaat en de bijbehorende stuurprogramma's te installeren, is ook enigszins afhankelijk van het bijbehorende klasse-installatieprogramma, indien aanwezig. Zie de apparaattypespecifieke documentatie in de WDK voor meer informatie over hoe de door het systeem geleverde klasse-installatieprogramma's apparaattypespecifieke INF-bestanden verwerken.
In syntaxisdefinities worden optionele vermeldingen afgebakend door niet-gebolde haken ([,]). Aan de andere kant zijn vetgedrukte haken ([, ]) vereiste elementen van de vermelding waarin ze zijn opgenomen. In het volgende voorbeeld zijn de vierkante haken rond versie vereist, terwijl de vierkante haken rond Klasse=klassenaam aangeven dat deze vermelding optioneel is.
[Version] Signature="signature-name" [Class=class-name] ...
Namen van secties
Secties kunnen in elke volgorde worden opgegeven. De meeste INF-bestanden bevatten secties in een bepaalde volgorde, volgens conventie, maar Windows vindt secties op naam, niet op basis van hun locatie binnen het INF-bestand.
Elke sectie in een INF-bestand begint met de sectienaam tussen vierkante haken ([ ]). De sectienaam kan door het systeem gedefinieerd of door de INF-writer gedefinieerd zijn.
[Manufacturer] geeft bijvoorbeeld het begin aan van de door het systeem benoemde sectie Manufacturer, terwijl [Std.Mfg] een bepaalde door de INF-writer gedefinieerde sectienaam Models vertegenwoordigt.
Een sectienaam heeft een maximale lengte van 255 tekens op Windows 2000 en latere versies van Windows.
Elke sectie eindigt aan het begin van een nieuwe [sectienaam] of bij de EOF-markering.
Als meer dan één sectie in een INF-bestand dezelfde naam heeft, voegt het systeem de vermeldingen en instructies samen in één sectie.
Tenzij deze tussen dubbele aanhalingsteken-tekens (") staat, moet een door de INF-schrijver gedefinieerde sectienaam een unieke binnen het INF niet-geciteerde tekenreeks met expliciet zichtbare tekens zijn, met uitzondering van bepaalde tekens met INF-specifieke betekenissen. Met name mag een niet-geciteerde sectienaam waarnaar in een sectievermelding of instructie wordt verwezen, geen voorloop- of volgspaties, een regelfeedteken, een retourteken of een onzichtbaar besturingsteken bevatten, en mag deze geen tabs bevatten. Bovendien mag het geen van de haaktekens ([ ]) bevatten, één procent (%) teken, een puntkomma (;) of interne dubbele aanhalingstekens (") en mag er geen backslash (\) als laatste teken staan.
Std.Mfg en Std_Mfg zijn bijvoorbeeld unieke en geldige sectienamen wanneer naar een INF-bestandsvermelding of -instructie wordt verwezen, maar Std;Mfg (met de interne puntkomma) is ongeldig tenzij deze tussen dubbele aanhalingstekens (") staat.
Als u een door de INF-schrijver gedefinieerde sectienaam opgeeft als een "tekenreeks tussen aanhalingstekens", overschrijft u de meeste beperkingen die eerder zijn beschreven op tekens in de sectienamen waarnaar wordt verwezen. Een dergelijke naam van een sectie met scheidingstekens kan bijna alle expliciet of impliciet zichtbare tekens bevatten, behalve het afsluitende haakje (]), zolang de bijbehorende sectie in het INF-bestand exact overeenkomt met deze "aanhalingstekenreeks".
Bijvoorbeeld, ";; Std Mfg " is een geldige sectienaamverwijzing als de bijbehorende sectiedeclaratie in het INF-bestand exact overeenkomt met de naam binnen de dubbele aanhalingstekens met betrekking tot de spatie- en puntkommatekens, zoals [;; Std Mfg ].
Stringtokens gebruiken
Veel waarden in een INF-bestand, met inbegrip van inF-writer-gedefinieerde sectienamen, kunnen worden uitgedrukt als tekenreekssleuteltokens van de form %strkey%. In de sectie Strings van het INF-bestand moet elke tekenreekssleutel worden gekoppeld aan een tekenreekswaarde die bestaat uit een reeks expliciet zichtbare tekens. Indien nodig converteert de installatiecode de tekenreekswaarde naar Unicode.
Zie de beschrijving van de sectie INF Strings voor meer informatie over het definiëren % van strkey-tokens% en de bijbehorende waarden.
Lijnopmaak, vervolg en opmerkingen
Elke vermelding en instructie in een sectie eindigt met een retour- of linefeedteken. Daarom mag de teksteditor die wordt gebruikt om een INF-bestand te maken, geen retour- of regelfeedtekens invoegen na een willekeurig, door de editor bepaald aantal tekens.
Het backslashteken (\) kan worden gebruikt als een expliciete regelcontinuator in een invoeritem of directive. Backslash-tekens worden echter ook gebruikt in padspecificaties voor paden. Gebruik de volgende strategie om ervoor te zorgen dat een backslashteken dat in een padspecificatie voorkomt, niet verkeerd wordt geïnterpreteerd als een line-continuator:
Gebruik aanhalingstekens om de vermelding die een backslash bevat, af te bakenen voor een richtlijn die twee regels omvat, waarvan er één een vermelding is die een backslash bevat.
CopyFiles = "SomeDirectory\"\ ,SomeFileVermijd het gebruik van het backslashteken op de manier die wordt weergegeven in het volgende voorbeeld. Windows negeert de eerste backslash en interpreteert de tweede backslash als een regelcontinuator.
CopyFiles = SomeDirectory\\ ,SomeFileDe volgende syntaxis is geldig en is gelijk aan
CopyFiles = "SomeDirectory\",SomeFile ; comment.CopyFiles = "SomeDirectory\"\ ; comment ,SomeFileOmdat tekst na een puntkomma wordt genegeerd, werkt
CopyFiles = "SomeDirectory\" ; comment ,SomeFileniet.
Opmerkingen beginnen met een puntkomma (;). Bij het parseren en interpreteren van een INF-bestand gaat het systeem ervan uit dat het volgende niet relevant is voor het installatieproces:
- Tekens na een puntkomma op dezelfde regel, tenzij de puntkomma voorkomt in een "tekenreeks tussen aanhalingstekens" of %strkey% token
- Een lege regel die niets anders dan een linefeed- of returnteken bevat
Komma's scheiden de waarden die worden opgegeven in sectievermeldingen en directieven.
Een INF-bestandsvermelding of -instructie kan een optionele waarde weglaten in het midden van een lijst met waarden, maar de komma's moeten behouden blijven. INF-bestanden kunnen afsluitende komma's weglaten.
Neem bijvoorbeeld de syntaxis voor een vermelding in de sectie SourceDisksFiles:
filename=diskid[,[subdir][,size]]
Een vermelding die de subdir-waarde weglaat, maar de groottewaarde opgeeft, moet komma's als scheidingstekens voor beide waarden opgeven, zoals wordt weergegeven in het volgende voorbeeld:
bestandsnaam=diskid,,grootte
Een vermelding in een INF-bestand die de twee optionele waarden weglaat, kan deze indeling hebben:
bestandsnaam=diskid
Als u een procentteken (%) wilt opnemen in waarden die zijn opgegeven in sectievermeldingen en instructies, escapet u het procentteken met een ander procentteken.
Denk bijvoorbeeld aan deze statement in een sectie [add-registry-section]:
HKR,,EventMessageFile,0x00020000,"%%SystemRoot%%\System32\IoLogMsg.dll"
De registerwaarde wordt ingesteld met de volgende waarde:
%SystemRoot%\System32\IoLogMsg.dll
Als u een dubbel aanhalingsteken (")-teken wilt opnemen in waarden die zijn opgegeven in sectievermeldingen en directieven, escapet u het dubbele aanhalingsteken met een ander dubbel aanhalingsteken. Houd er rekening mee dat de tekenreeks binnen een "tekenreeks tussen dubbele aanhalingstekens" moet staan.
Denk bijvoorbeeld aan deze statement in een sectie [add-registry-section]:
HKR,,Voorbeeld,"Geef een ""voorbeeld""-tekenreeks weer"
De registerwaarde wordt ingesteld met de volgende waarde:
Een "example"-tekenreeks weergeven
Limieten voor INF-grootte
De maximale lengte, in tekens, van een INF-bestandsveld, vóór het vervangen van tekenreeksen en inclusief een afsluitend NULL-teken, is 4096.
Na het vervangen van tekenreeksen is de maximale lengte, in tekens, van een tekenreeks in een INF-bestand 4096, inclusief een afsluitend NULL-teken.
Houd er echter rekening mee dat Plug en Play (PnP) een meer beperkende limiet kan opleggen voor bepaalde INF-bestandsvelden die worden herkend of gebruikt, zoals apparaatbeschrijving, stuurprogrammaprovider en apparaatfabrikant.