gigabit NIC configuration

H

Henry Markov

My target has an Intel gigabit NIC (Pro 1000) but the SP1 distribution does not
have a driver for it therefore I have been using CD to configure my own driver
component. This has worked for default configurations however I now need to
tune my driver for high speed UDP. I've found that some of the critical tuning
parameters deal with issues such as interrupt moderation and number of receive
descriptors allocated to the driver. For disk based Windows the program ProSet
can be used to configure some of these parameters (there appears to be more
flexibility and more tuning options for the Linux driver). Presumably ProSet
sets registry values however when I use regedit and search for keys such as
"e1000" I can't find anything that I can correlate to the settings I configure
with ProSet.

Is there a systematic method for examining an XP Pro driver such as the one for
the Intel Pro 1000 and determining what registry values are manipulated by its
installer and/or configuration program so that the same registry values can be
identified and set appropriately in XP Embedded?

Henry
 
S

Slobodan Brcin \(eMVP\)

Hi Henry,

Examine driver inf file and change default values that you want. (This is the only non programming way to preset these values
automatically).
Just open inf file with notepad and search for words "default" then change values that you are interested in.

If you are interested in registry values that are changed then you can use regmon.exe for tracking registry values that have
changed.

Regards,
Slobodan
 
H

Henry Markov

Thanks Slobodan. I realize that my followup question is not strictly an XPe
question but I think an answer would be helpful to the NG. I examined the .inf
file and I found the following section dealing with interrupt moderation:

[82540EM.reg]
; Interrupt Throttle Rate
HKR, Ndi\Params\ITR, ParamDesc, 0, %InterruptThrottleR
ate%
HKR, PROSetNdi\NdiExt\Params\ITR, MiniHelp, 0, %ITRMiniHelp%
HKR, Ndi\Params\ITR, default, 0, "950"
HKR, Ndi\Params\ITR\Enum, "3600", 0, %Extreme%
HKR, Ndi\Params\ITR\Enum, "2000", 0, %High%
HKR, Ndi\Params\ITR\Enum, "950", 0, %HardwareDefault%
HKR, Ndi\Params\ITR\Enum, "400", 0, %Low%
HKR, Ndi\Params\ITR\Enum, "200", 0, %Minimal%
HKR, Ndi\Params\ITR\Enum, "0", 0, %Off%
HKR, Ndi\Params\ITR, type, 0, "enum"
HKR,, ITR, 0, "950"

Note that the right most column is qualitative descriptions of interrupt
moderation that are used in the ProSet program. I think the middle column is
mostly corresponding numeric values that the driver uses, e.g. "High" interrupt
moderation corresponds to the driver asserting an interrupt no more frequently
than every 2000*1.024 microseconds (I base this on documentation from the Linux
driver).

Then I scanned the registry for the value ITR and I found 3 keys:
HKLM\SYSTEM\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-C8002bE10318}\0012
HKLM\SYSTEM\ControlSet001\Control\Class\{4D36E972-E325-11CE-BFC1-C8002bE10318}\0012
HKLM\SYSTEM\ControlSet003\Control\Class\{4D36E972-E325-11CE-BFC1-C8002bE10318}\0012

Note: I believe the above is accurate including the odd lower case 'b' in the
GUID.

Each key had an ITR value equal to 65535. I think 65535 corresponds to the
value "Adaptive" used in ProSet but not described in the .inf file. My
fundamental question is what is the process by which one would map the
information I found in the .inf file to the entries I found in the registry?

Henry
 
S

Slobodan Brcin \(eMVP\)

Hi Henry,

Actually your problem is related to this NG.

Try changing following value:
HKR, Ndi\Params\ITR, default, 0, "950"

There is dll (intelnic.dll) file that contain CoInstaller that parse trough inf file and fill appropriate values in registry.
Now you can choose whether you want to change inf file or to write program based on SetupApi to hunt for adapter and change dynamic
registry entries.

Read about inf files and how to modify registry from them (take special look at HKR entry)
http://msdn.microsoft.com/library/d..._950895d3-7881-4470-9be1-2a02aae2ef6d.xml.asp

Read info from this page it might be useful to you:
http://msdn.microsoft.com/library/d..._8f5ef1c3-94c3-48d5-8f9a-301b7f453cef.xml.asp

Regards,
Slobodan

PS:
Let us know what method you have chosen, or ask if you have more questions.


Henry Markov said:
Thanks Slobodan. I realize that my followup question is not strictly an XPe
question but I think an answer would be helpful to the NG. I examined the .inf
file and I found the following section dealing with interrupt moderation:

[82540EM.reg]
; Interrupt Throttle Rate
HKR, Ndi\Params\ITR, ParamDesc, 0, %InterruptThrottleR
ate%
HKR, PROSetNdi\NdiExt\Params\ITR, MiniHelp, 0, %ITRMiniHelp%
HKR, Ndi\Params\ITR, default, 0, "950"
HKR, Ndi\Params\ITR\Enum, "3600", 0, %Extreme%
HKR, Ndi\Params\ITR\Enum, "2000", 0, %High%
HKR, Ndi\Params\ITR\Enum, "950", 0, %HardwareDefault%
HKR, Ndi\Params\ITR\Enum, "400", 0, %Low%
HKR, Ndi\Params\ITR\Enum, "200", 0, %Minimal%
HKR, Ndi\Params\ITR\Enum, "0", 0, %Off%
HKR, Ndi\Params\ITR, type, 0, "enum"
HKR,, ITR, 0, "950"

Note that the right most column is qualitative descriptions of interrupt
moderation that are used in the ProSet program. I think the middle column is
mostly corresponding numeric values that the driver uses, e.g. "High" interrupt
moderation corresponds to the driver asserting an interrupt no more frequently
than every 2000*1.024 microseconds (I base this on documentation from the Linux
driver).

Then I scanned the registry for the value ITR and I found 3 keys:
HKLM\SYSTEM\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-C8002bE10318}\0012
HKLM\SYSTEM\ControlSet001\Control\Class\{4D36E972-E325-11CE-BFC1-C8002bE10318}\0012
HKLM\SYSTEM\ControlSet003\Control\Class\{4D36E972-E325-11CE-BFC1-C8002bE10318}\0012

Note: I believe the above is accurate including the odd lower case 'b' in the
GUID.

Each key had an ITR value equal to 65535. I think 65535 corresponds to the
value "Adaptive" used in ProSet but not described in the .inf file. My
fundamental question is what is the process by which one would map the
information I found in the .inf file to the entries I found in the registry?

Henry

Slobodan Brcin (eMVP) said:
Hi Henry,

Examine driver inf file and change default values that you want. (This is the only non programming way to preset these values
automatically).
Just open inf file with notepad and search for words "default" then change values that you are interested in.

If you are interested in registry values that are changed then you can use regmon.exe for tracking registry values that have
changed.

Regards,
Slobodan
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top