A Log Config section defines device configuration details, such as interrupt request lines, memory ranges, I/O ports, and DMA channels. The name of the section, log-config-section-name, must be used in the LogConfig item in an Install section of the INF file.
[log-config-section-name] ConfigPriority=Priority_Value[,Config_Type] [DMAConfig=[DMAattrs:]DMANum[,DMANum]] [IOConfig=io-range[,io-range]...] [IRQConfig=[IRQattrs:]IRQNum[,IRQNum]] [MemConfig=mem-range[,mem-range]...
Value |
Meaning |
HARDWIRED |
Cannot be reset. |
DESIRED |
Soft configured, most optimal. |
NORMAL |
Soft configured, medium optimal. |
SUBOPTIMAL |
Soft configured, least optimal. |
DISABLED |
Hardware disabled. |
RESTART |
Requires Windows NT restart to take effect. |
REBOOT |
For Windows NT this is the same as RESTART. |
POWEROFF |
Requires power cycle to take effect. |
HARDRECONFIG |
Requires a jumper change. |
Value |
Meaning |
FORCED |
The Configuration Manager must use the settings in this section. If set, Priority_Value must be NORMAL. |
BASIC |
The settings in this section indicate a range of possibilities. |
start-end[([decode-mask]:[alias-offset]:[attr])]
start |
Starting address of the I/O port region. This is a 64-bit value in hexadecimal notation. |
end |
Ending address of the I/O port region. This is a 64-bit value in hexadecimal notation. The start and end values must be separated by a hyphen. |
decode-mask |
Optional. Currently ignored. |
alias-offset |
Optional. A 32-bit value to indicate additional ports decoded by the adapter. The additional ports are calculated by adding multiples of this offset to the base I/O port region. Leaving this field blank indicates that driver software will only access the ports in the base I/O region and never access any of the aliases. |
attr |
Optional. The letter M specifies that the I/O port is a memory address. The default (no attr) indicates that the port is an I/O address. |
size@min-max[%align-mask][([decode-mask]:[alias-offset]:[attr])]
size |
Size of the required I/O port region in bytes. This is a 32-bit value in hexadecimal notation. |
min |
The smallest possible starting I/O port. This is a 64-bit value in hexadecimal notation. |
max |
The largest possible ending I/O port. This a 64-bit value in hexadecimal notation. The min and max values must be separated by a hyphen. |
align-mask |
Optional. This 64-bit hexadecimal mask is applied to the range specified by min and max to determine legal starting addresses for the I/O region. To construct the mask, all bits that must be 0 in the starting address must be 0 in the mask. All other bits should be 1. |
decode-mask |
Optional. Currently ignored. |
alias-offset |
Optional. A 32-bit value to indicate additional ports decoded by the adapter. The additional ports are calculated by adding multiples of this offset to the base I/O port region. Leaving this field blank indicates that driver software will only access the ports in the base I/O region and never access any of the aliases. |
attr |
Optional. The letter M specifies that the I/O port is a memory address. The default (no attr) indicates that the port is an I/O address. |
The following example illustrates the use of a list of three Type 1 I/O range values in an IOConfig item. The example specifies an I/O port region of 8 bytes which can start at 1F8, 2F8, or 3F8 and does not use any of its aliases.
IOConfig=1F8-1FF, 2F8-2FF, 3F8-3FF
The following example shows the use of a Type 2 I/O range value in an IOConfig item. The example specifies an I/O port region of 8 bytes which can start at 300, 308, 310, 318, 320, or 328. The device does not use any of its aliases.
IOConfig=8@300-32F%FF8
S |
Indicates a shareable interrupt. If used, this flag should appear only once in an IRQConfig item. It affects all IRQs listed in that item. If this flag is not specified, the default is a non-shareable interrupt. |
L |
Indicates a level-triggered interrupt. If this flag is not specified, the default is an edge-triggered interrupt. |
start-end[(attr)] size@min-max[%align-mask][(attr)]
start |
Starting address of the physical memory region. This is a 64-bit value in hexadecimal notation. |
end |
Ending address of the physical memory region. This is 64-bit value in hexadecimal notation. The start and end values must be separated by a hyphen. |
size |
Size of the required region in bytes. This is a 32-bit value in hexadecimal notation. |
min |
Smallest possible starting address of the memory region. This is 64-bit value in hexadecimal notation. |
max |
Largest possible ending address of the memory region. This is 64-bit value in hexadecimal notation. The min and max values must be separated by a hyphen. |
align-mask |
Optional. A 32-bit hexadecimal mask applied to the range specified by min and max to determine legal starting addresses for the memory region. To construct the mask, all bits that must be 0 in the starting address must be 0 in the mask. All other bits should be 1. |
attr |
Optional. Can be any combination of the following letters: C indicates that combined-write is allowed, otherwise combined write is not allowed. D Indicates a 32-bit address; otherwise a 24-bit address is assumed. F indicates that the memory is prefetchable; otherwise it is not. R indicates read-only memory. W indicates write-only memory. RW indicates read/write memory. |
The following examples illustrate the use of the MemConfig item.
This example specifies a memory region of 32K bytes that can start at either C0000 or D0000.
MemConfig=C0000-C7FFF, D0000-D7FFF
This example specifies a memory region of 32k bytes starting on 64K boundaries.
MemConfig=8000@C0000-D7FFF%F0000
Each item in a Log Config section can specify more than one resource. However, during installation one and only one resource from an item is used. If a device needs multiple resources of the same type, multiple items of that type must be used in the Log Config section. For example, to ensure two IRQs for a device, two IRQConfig items must be used in the Log Config section. If a device does not require an IRQ, an IRQConfig item should not be used.
An INF file can contain any number of Log Config sections. However, each section must contain complete details for installing one device. More than one Log Config section can be specified for a device. If this is done, only one of the Log Config sections will be used during installation.
For each Log Config section item, the installer builds binary logical configuration records and stores them in the registry.