Share via


Directive INF LogConfig

Attention

À compter de Windows 11 version 22H2, un package de pilotes utilisant cette directive n’est plus éligible pour une signature du Centre de développement matériel.

Les packages de pilotes universels et les pilotes Windows ne peuvent pas utiliser cette directive.

Une directive LogConfig fait référence à une ou plusieurs sections définies par l’enregistreur INF, chacune spécifiant une configuration logique des ressources matérielles : les lignes de requête d’interruption, les plages de mémoire, les ports d’E/S et les canaux DMA qui peuvent être utilisés par l’appareil. Chaque section de configuration de journal spécifie un autre ensemble de ressources matérielles relatives au bus qui peuvent être utilisées par l’appareil.

[DDInstall] | 
[DDInstall.LogConfigOverride] 
  
LogConfig=log-config-section[,log-config-section]...

Les fichiers INF pour les appareils non PnP utilisent cette directive pour créer des configurations de base.

Les fichiers INF pour les appareils PnP utilisent cette directive uniquement pour créer des configurations de remplacement.

Chaque section nommée référencée par une directive LogConfig a la forme suivante :

[log-config-section]
 
ConfigPriority=priority-value[,config-type]
[DMAConfig=[DMAattrs:]DMANum[,DMANum]...]
[IOConfig=io-range[,io-range]...]
[MemConfig=mem-range[,mem-range]...]
[IRQConfig=[IRQattrs:]IRQNum[,IRQNum]...]
[PcCardConfig=ConfigIndex[:[MemoryCardBase1][:MemoryCardBase2]][(attrs)]]
[MfCardConfig=ConfigRegBase:ConfigOptions[:IoResourceIndex][(attrs)]...]
...

Entrées

ConfigPriority=priority-value
Spécifie la valeur de priorité pour cette configuration logique, comme suit :

DÉSIRÉ
Configuration réversible, la plus optimale.

NORMAL
Configuration réversible, moins optimale que DESIRED. Il s’agit du paramètre classique.

NORMAL doit être spécifié si log-config-section a été défini dans un DDInstall. La section LogConfigOverride et aucune valeur de type config ne peuvent être spécifiées.

SOUS-OPTIMALE
Configuration réversible, moins optimale que NORMAL.

HARDRECONFIG
Nécessite une modification de jumper à reconfigurer.

CÂBLÉ
Impossible de modifier.

RESTART
Nécessite le redémarrage pour prendre effet.

REDÉMARRER
Il s’agit de la même chose que RESTART.

POWEROFF
Nécessite que le cycle d’alimentation prenne effet.

DISABLED
Le matériel/l’appareil est désactivé.

DMAConfig=[DMAattrs :]DMANum[**,**DMANum]...]
DMAattrs est facultatif si l’appareil est connecté sur un bus qui n’a que des canaux DMA 8 bits et que l’appareil utilise le système DMA standard. Sinon, il peut s’agir de l’une des lettres suivantes :

Lettre Signification
D DMA 32 bits
W DMA 16 bits
N DMA 8 bits

Si l’appareil utilise le bus-master DMA, vous devez utiliser M avec l’une des lettres (mutuellement exclusives) suivantes qui indique le type de canal DMA utilisé : A, B ou F. Si ni A, B ni F n’est spécifié, un canal DMA standard est supposé.

DMANum spécifie un ou plusieurs canaux DMA relatifs au bus sous forme de nombres décimaux, chacun séparé du suivant par une virgule (,).

IOConfig=io-range[,io-range]...
Spécifie une ou plusieurs plages de ports d’E/S pour l’appareil, sous l’une des formes suivantes :

start-end[([decode-mask][ :alias-offset][ :attr])] (Type 1 plage d’E/S)

start
Spécifie l’adresse de départ de la plage de ports d’E/S sous la forme d’une adresse hexadécimale 64 bits.

end
Spécifie l’adresse de fin de la plage de ports d’E/S, également en tant qu’adresse hexadécimale 64 bits.

decode-mask
Définit le type d’alias et peut être l’un des éléments suivants :

Valeur du masque Signification IOR_Alias valeur
3ff Décodage 10 bits 0x04
Fff Décodage 12 bits 0x10
Ffff Décodage 16 bits 0x00
0 Décodage positif 0xFF

alias-offset
Non utilisé.

attr
Spécifie la lettre M si la plage donnée est en mémoire système. En cas d’omission, la plage donnée se trouve dans l’espace de port d’E/S.

Taille@min-max[%align-mask][([decode-mask][ :alias-offset][ :attr])] (Plage d’E/S de type 2)

size
Spécifie le nombre d’octets requis pour la plage de ports d’E/S sous la forme d’une valeur hexadécimale 32 bits.

min
Spécifie l’adresse de départ la plus basse possible de la plage de ports d’E/S en tant qu’adresse hexadécimale 64 bits.

max
Spécifie l’adresse de fin la plus élevée possible de la plage de ports d’E/S sous la forme d’une adresse hexadécimale 64 bits.

align-mask
Spécifie éventuellement un masque 64 bits utilisé dans une opération AND au niveau du bit pour aligner le début de la plage de ports d’E/S sur une limite d’adresse intégrale (généralement 32 bits ou 64 bits).

decode-mask
Définit le type d’alias et peut être l’un des éléments suivants :

Valeur du masque Signification IOR_Alias valeur
3ff Décodage 10 bits 0x04
Fff Décodage 12 bits 0x10
Ffff Décodage 16 bits 0x00
0 Décodage positif 0xFF

alias-offset
Non utilisé.

attr
Spécifie la lettre M si la plage donnée est en mémoire système. En cas d’omission, la plage donnée se trouve dans l’espace de port d’E/S.

MemConfig=mem-range[,mem-range]...
Spécifie une ou plusieurs plages de mémoire pour l’appareil sous l’une des formes suivantes :

start-end[(attr)] | size@min-max[%align-mask][(attr)]

start
Spécifie l’adresse physique de départ (relative au bus) de la plage de mémoire de l’appareil sous la forme d’une valeur hexadécimale 64 bits.

end
Spécifie l’adresse physique de fin de la plage de mémoire, également sous forme de valeur hexadécimale 64 bits.

attr
Spécifie les attributs de la plage de mémoire sous la forme d’une ou plusieurs des lettres suivantes :

Lettre Signification
R Lecture seule
W Écriture seule
RW Lecture/écriture
C Écriture combinée autorisée
H Pouvant être mis en cache
F Prérécupération
D L’adressage de décodage de carte est 32 bits, au lieu de 24 bits

Si R et W sont spécifiés ou si aucun des deux n’est spécifié, la lecture/écriture est supposée.

size
Spécifie le nombre d’octets requis dans la plage de mémoire sous la forme d’une valeur hexadécimale 32 bits.

min
Spécifie l’adresse de départ la plus basse possible de la plage de mémoire de l’appareil sous la forme d’une valeur hexadécimale 64 bits.

max
Spécifie l’adresse de fin la plus élevée possible de la plage de mémoire sous la forme d’une valeur hexadécimale 64 bits.

align-mask
Spécifie éventuellement un masque de 64 bits utilisé dans une opération AND au niveau du bit pour aligner le début de la plage de mémoire du périphérique sur une limite d’adresse intégrale (généralement 64 bits).

Si align-mask est omis, l’alignement de la mémoire par défaut se trouve sur une limite de 4 Ko (FFFFF000).

IRQConfig=[IRQattrs :]IRQNum[,IRQNum]...
IRQattrs est omis si l’appareil utilise une IRQ relative au bus déclenchée par le bord. Sinon, spécifiez L pour indiquer un IRQ et un LS déclenchés au niveau si l’appareil peut partager les lignes IRQ répertoriées dans cette entrée.

IRQNum spécifie un ou plusieurs IRQ relatifs au bus que l’appareil peut utiliser comme nombres décimaux, chacun séparé du suivant par une virgule (,).

PcCardConfig=ConfigIndex[ :[MemoryCardBase1][ :MemoryCardBase2]][(attrs)]
Configure CardBus inscrit et/ou crée jusqu’à deux fenêtres de mémoire permanentes qui correspondent à l’espace d’attributs de l’appareil. Un pilote peut utiliser les fenêtres de mémoire pour accéder à l’espace d’attribut à partir d’un ISR. Spécifiez toutes les valeurs numériques au format hexadécimal.

Les éléments d’une entrée PcCardConfig sont les suivants :

ConfigIndex
Spécifie l’index de configuration PCMCIA 8 bits pour un appareil sur un bus PCMCIA.

MemoryCardBase1
Spécifie éventuellement une adresse de base 32 bits pour une première fenêtre mémoire.

MemoryCardBase2
Spécifie éventuellement une adresse de base 32 bits pour une deuxième fenêtre mémoire.

attrs
Spécifie éventuellement un ou plusieurs attributs pour l’appareil, séparés par des espaces. Un spécificateur d’attribut non valide invalide l’ensemble de l’entrée PcCardConfig . Si plusieurs spécificateurs pour un attribut particulier sont fournis, les attributs sont appliqués à des fenêtres d’E/S ou de mémoire individuelles pour l’appareil. Si un seul spécificateur est fourni, cet attribut est appliqué à toutes les fenêtres (voir l’exemple suivant).

Plus précisément, si plusieurs spécificateurs sont fournis, le premier spécificateur trouvé en lecture de gauche à droite est appliqué à la première fenêtre, et le spécificateur suivant appliqué à la deuxième fenêtre. Un maximum de deux fenêtres d’E/S et de deux fenêtres de mémoire peuvent être contrôlées par une seule entrée PcCardConfig . Si l’appareil a plus de deux fenêtres mémoire, une deuxième entrée PcCardConfig doit être incluse.

Les attributs sont les suivants :

Attribut Description
W Chemin des données d’E/S 16 bits.

La valeur par défaut est 8 bits si l’INF spécifie une directive LogConfig . Si aucune directive LogConfig n’est spécifiée, le pilote utilise des E/S 16 bits.
Sn ~Source IOCS16.

Si n a la valeur 0, ~IOCS16 est basé sur la valeur du bit de taille de données. Si n a la valeur 1, ~IOCS16 est basé sur le signal ~IOIS16 de l’appareil. La valeur par défaut est S1.
Zn E/S 8 bits, état d’attente zéro.

Si n a la valeur 1, les accès d’E/S 8 bits se produisent sans état d’attente supplémentaire. Si n a la valeur 0, l’accès se produit avec des états d’attente supplémentaires. Cet indicateur n’a aucune signification pour les E/S 16 bits. La valeur par défaut est Z0.
Xln États d’attente d’E/S.

Si n a la valeur 1, les accès au système 16 bits se produisent avec un état d’attente supplémentaire. La valeur par défaut est Xl1.
M Chemin des données mémoire 16 bits. La valeur par défaut est 8 bits.
M8 Chemin des données mémoire 8 bits.
XMn États d’attente de la mémoire, où n peut être 0, 1, 2 ou 3.

Cette valeur détermine le nombre d’états d’attente supplémentaires pour les accès 16 bits à une fenêtre mémoire. La valeur par défaut est XM3.
A Plage de mémoire à mapper en tant que mémoire d’attribut.
C Plage de mémoire à mapper en tant que mémoire commune (par défaut).

Par exemple, une valeur attrs de (WB CA M XM1 XI0) se traduit par ce qui suit :

1st I/O window is 16-bit

2nd I/O window 8-bit

1st memory window is common

2nd memory window is attribute

Memory is 16-bit

One wait state on memory windows

Zero wait states on I/O windows

MfCardConfig=ConfigRegBase :ConfigOptions[ :IoResourceIndex][(attrs)]...
Spécifie l’emplacement d’attribut-mémoire du jeu de registres de configuration pour une fonction d’un appareil multifonction, comme suit :

ConfigRegBase
Spécifie le décalage d’attribut des registres de configuration pour cette fonction de l’appareil multifonction.

ConfigOptions
Spécifie le registre d’options de configuration PCMCIA 8 bits.

IoResourceIndex
Spécifie l’index de l’entrée IOConfig pour le pilote de bus à utiliser dans la programmation des registres de base et de limite d’E/S de configuration. Cet index est de base zéro, c’est-à-dire que zéro désigne l’entrée IOConfig initiale dans cette section log-config.

attrs
S’il est défini sur la lettre A, indique au pilote de bus PCMCIA d’activer l’activation audio dans la configuration et status registres.

Chaque entrée MfCardConfig fournit des informations sur une fonction unique de l’appareil multifonction. Lorsqu’un ensemble de directives LogConfig font référence à une section log-config-discrète dans le DDInstall de l’INF. Section LogConfigOverride , chaque log-config-section doit avoir ses entrées, y compris les entrées MfCardConfig , répertoriées dans le même ordre.

Remarques

Une directive LogConfig peut être spécifiée sous n’importe quelle section INF DDInstall par fabricant, par modèle ou INF DDInstall. Section LogConfigOverride.

Un INF pour un appareil non PnP qui prend en charge plusieurs configurations logiques alternatives définit généralement un ensemble de sections log-config-sous une section DDInstall . Chaque section log-config-section spécifie un ensemble discret de ressources de configuration logique. Il inclut également une entrée ConfigPriority , qui classe chaque configuration logique en fonction de ses effets sur les performances de l’appareil et du pilote, la facilité d’initialisation, etc.

Pour les appareils PnP, le gestionnaire PnP affecte un ensemble de ressources matérielles logiques à chaque appareil PnP. Autrement dit, le gestionnaire PnP interroge les pilotes de bus système, reçoit leurs rapports sur les ressources de configuration de bus d’E/S par appareil en cours d’utilisation et affecte des ensembles de ressources matérielles logiques par appareil pour obtenir le meilleur équilibre à l’échelle du système dans l’utilisation de toutes ces ressources.

Par conséquent, la directive LogConfig sous une section DDInstall est ignorée pour les appareils PnP. Pour remplacer les ressources signalées par le bus pour un appareil PnP, incluez la directive LogConfig sous un DDInstall. Section LogConfigOverride . Dans ce cas, les ressources spécifiées dans la section log-config-sont utilisées à la place de celles signalées par le bus.

Les extensions de plateforme peuvent être ajoutées à une section DDInstall qui contient une directive LogConfig ou à un DDInstall. Section LogConfigOverride pour spécifier des configurations logiques spécifiques à la plateforme ou au système d’exploitation. Pour plus d’informations, consultez Création d’un fichier INF.

Un nom log-config-section donné doit être unique au fichier INF, mais il peut être référencé par les directives LogConfig dans d’autres sections INF DDInstall pour les mêmes appareils. Chaque nom de section créé par l’enregistreur INF doit être unique dans le fichier INF et respecter les règles générales de définition des noms de section. Pour plus d’informations sur ces règles, consultez Règles de syntaxe générales pour les fichiers INF.

Une seule entrée ConfigPriority peut être utilisée dans chaque section log-config. Il peut y avoir plusieurs entrées, en fonction des besoins en ressources matérielles de l’appareil.

Une ou plusieurs entrées MfCardConfig= peuvent apparaître uniquement dans une section log-config-référencée par une directive LogConfig dans DDInstall. Section LogConfigOverride d’un inf pour un appareil multifonction. Pour plus d’informations sur les fichiers INF pour les appareils multifonctions, consultez Prise en charge des appareils multifonctions.

LogConfig-Referenced Section Entrées et valeurs

À partir d’une section log-config, le programme d’installation du système génère des enregistrements de configuration logique binaire et les stocke dans le Registre.

Un fichier INF peut contenir n’importe quel nombre de sections log-config-par appareil. Toutefois, chaque section de ce type doit contenir des informations complètes pour l’installation d’un appareil. En général, l’inf doit spécifier les entrées dans chacune de ses sections log-config-dans le même ordre. L’inf doit spécifier chaque ensemble d’entrées dans l’ordre le mieux adapté à la façon dont le pilote initialise son appareil.

Si plusieurs sections log-config-section sont présentes pour un appareil donné, une seule de ces sections INF est utilisée pendant l’installation. Un tel fichier INF contrôle partiellement la section utilisée avec la valeur ConfigPriority qu’il fournit dans chaque section log-config-section. Autrement dit, les programmes d’installation du système tentent de respecter les priorités de configuration dans un fichier INF, mais peuvent sélectionner une configuration logique de rang inférieur si un conflit avec un appareil déjà installé est détecté.

Pendant l’installation, une seule ressource de chaque entrée d’une section log-config donnée est sélectionnée et affectée à un appareil particulier. Si un appareil particulier a besoin de plusieurs ressources du même type, un ensemble d’entrées de ce type doit être utilisé dans ses log-config-sections.

Par exemple, pour garantir deux plages de ports d’E/S pour un appareil particulier, deux entrées IOConfig= doivent être spécifiées dans la section log-config-pour cet appareil. En revanche, si un appareil ne nécessite aucune IRQ, son INF peut omettre l’entrée IRQConfig des sections log-config.

Exemples

Cet exemple montre des entrées PcCardConfig valides pour un appareil PCMCIA.

PcCardConfig=0:E0000:F0000(W)
PcCardConfig=0:E0000(M)
PcCardConfig=0::(W)
PcCardConfig=0(W)

Cet exemple montre une spécification de plage d’E/S de type 1 dans une entrée IOConfig . Il spécifie une région de port d’E/S, de huit octets, qui peut commencer à 1F8, 2F8 ou 3F8.

IOConfig=1F8-1FF, 2F8-2FF, 3F8-3FF

En revanche, cet exemple montre une spécification de plage d’E/S de Type 2 dans une entrée IOConfig . Il spécifie une région de port d’E/S, de huit octets, qui peut commencer à 300, 308, 310, 318, 320 ou 328.

IOConfig=8@300-32F%FF8

Cet exemple montre un ensemble d’entrées IOConfig pour un appareil à quatre ports, chacun spécifiant une plage de ports d’E/S décalée par 0x400 octets du suivant.

IoConfig=0x200-0x21f
IoConfig=0x600-0x61f
IoConfig=0xA00-0xA1f
IoConfig=0xE00-0xE1f

Les deux exemples suivants montrent des entrées MemConfig classiques.

Cet exemple spécifie une région de mémoire de 32 Ko qui peut commencer à C0000 ou D0000.

MemConfig=C0000-C7FFF, D0000-D7FFF

Cet exemple spécifie une région de mémoire de 32 000 octets à partir des limites de 64 000 octets.

MemConfig=8000@C0000-D7FFF%F0000

Cet exemple montre comment le fichier INF de classe HDC système configure plusieurs sections de journal pour les contrôleurs de disque dur ESDI génériques et utilise un DDInstall. Section LogConfigOverride pour un contrôleur IDE particulier.

[MS_HDC] ; per-manufacturer Models section
%FujitsuIdePccard.DeviceDesc% = 
          atapi_fujitsu_Inst, PCMCIA\FUJITSU-IDE-PC_CARD-DDF2
%*PNP0600.DeviceDesc% = atapi_Inst, *PNP0600 ; generic ESDI HDCs

; ... other manufacturers' Models sections omitted

[atapi_Inst]
CopyFiles = @atapi.sys
LogConfig = esdilc1, esdilc2, esdilc3, esdilc4

; ... [atapi_Inst.Services] + service/EventLog-install omitted here

[esdilc1]
ConfigPriority=HARDWIRED
IOConfig=1f0-1f7(3ff::)
IoConfig=3f6-3f6(3ff::)
IRQConfig=14

[esdilc2]
ConfigPriority=HARDWIRED
IOConfig=170-177(3ff::)
IoConfig=376-376(3ff::)
IRQConfig=15

[esdilc3]
ConfigPriority=HARDWIRED
IOConfig=1e8-1ef(3ff::)
IoConfig=3ee-3ee(3ff::)
IRQConfig=11

[esdilc4]
; ...

[atapi_fujitsu_Inst.LogConfigOverride]
LogConfig = fujitsu.LogConfig0

[fujitsu.LogConfig0]
ConfigPriority=NORMAL
IOConfig=10@100-400%fff0
IRQConfig=14,15,5,7,9,11,12,3
PcCardConfig=1:0:0(W)

Pour obtenir des exemples d’utilisation des entrées MfCardConfig , consultez Prise en charge des cartes PC qui ont des adresses de registre de configuration incomplètes.

Voir aussi

DDInstaller

DDInstall. FactDef