TCP/IPv4 Configurable Registry Settings (Windows Embedded CE 6.0)
1/6/2010
The registry settings described in this section are configurable settings located under the HKEY_LOCAL_MACHINE\Comm\Tcpip\Parms registry key. Network adapter-specific values are listed under a subkey for each network adapter. Depending on whether or not the system or network adapter is DHCP-configured, and on whether or not static override values have been specified, there might be adapters that have both DHCP and statically configured values. Either removing and reinserting a network adapter, or calling the appropriate IP Helper functions, is generally required for a change in any of these values to take effect.
Note
The default registry values vary depending on the Catalog items that are included in your OS design. For more information, see Windows Embedded CE topic Default Registry Settings.
The following table shows the configurable registry values for the HKEY_LOCAL_MACHINE\Comm\Tcpip\Parms registry key.
Value : type | Description |
---|---|
ArpUseEtherSNAP : REG_DWORD |
Default setting is zero (0). This value can be set either to 0 (False) or 1 (True) to specify if Ethernet transmission uses SNAP encoding. Setting this value to 1 forces TCP/IP to transmit Ethernet packets using 802.3 SNAP encoding. By default, the stack transmits packets in DIX Ethernet format. It will always receive both formats. |
AutoCfg : REG_DWORD |
This value can be set either to 0 (False) or to 1 (True) to specify whether Automatic IP is enabled. This value behaves as the default value for the adapter-specific setting of the same name. For example, setting this value to 1 indicates that all adapters will default to having Automatic IP enabled. |
DefaultTOS : REG_DWORD |
Default setting is 0. The valid range for this value is 1–0xFF (hexadecimal). This value specifies the default Type of Service (TOS) value set in the header of outgoing IP packets. For a definition of the values, see RFC 791. |
DefaultTTLREG : REG_DWORD |
Default setting is 128. The valid range for this value is 1–0xFF (hexadecimal). This value specifies the default Time To Live (TTL) value set in the header of outgoing IP packets. The TTL determines the maximum amount of time an IP packet can live in the network without reaching its destination. It is effectively a limit on the number of routers an IP packet can pass through before being discarded. |
EnableDeadGWDetect : REG_DWORD |
Default setting is 0 (False). This value can be set to either 0 (False) or 1 (True) to specify if TCP performs dead gateway detection. Set the value to 1 to enable detection. With detection enabled, TCP can ask IP to change to a backup gateway if a number of connections are experiencing difficulty. Backup gateways can be defined by using the Route utility or the IP Helper API. |
EnableDHCP : REG_DWORD |
This value can be either 0 (False) or 1 (True), to specify whether DHCP is enabled. This value behaves as the default setting for the adapter-specific value of the same name. For example, setting this value to 1 indicates that all adapters will default to having Automatic IP enabled. |
IGMPLevel : REG_DWORD |
Default setting is 2. This value can be set to 0, 1, or 2. It indicates to what extent the system can support IP multicasting and how fully it participates in the Internet Group Management Protocol (IGMP). Setting this value to 0 allows the system to provide no multicast support. Setting this value to 1 allows the system to send IP multicast packets, but not to receive them. Setting this value to 2 allows the system to send IP multicast packets and to participate fully in the IGMP to receive multicast packets. For more information, see Internet Group Management Protocol (IGMP). |
IGMPVersion : REG_DWORD |
Default setting is 4. This value can be set to 3 or 4 to specify the version of IGMP to use. For desktop compatibility, set this value to the desired version plus one. |
IPEnableRouter : REG_DWORD |
Default setting is 0 (False). This value can be set to either 0 (False) or 1 (True) to specify if IP routing is enabled. Setting this value to 1 (True) causes the system to route IP packets between the networks to which it is connected.
Security Note:
Enabling routing can potentially compromise network security.
|
NoIdleIfAdapter : REG_DWORD |
Default setting is 0 (False). This value specifies whether the device goes into Idle mode during TCP/IP communications, and is independent of the NoIdleIfConnected value. Setting this value to 1 (True) keeps the device from going into Idle mode as long as there is a network adapter in use in the device. Setting this value to 0 (False) allows a device to be suspended when a network adapter is in use. |
NoIdleIfConnected : REG_DWORD |
Default setting is 1 (True). This value specifies whether the device goes into Idle mode during TCP/IP communications, and is independent of the NoIdleIfAdaptervalue. Setting this value to 0 (False) allows the device to enter Idle mode even in the middle of communication with another device, or over loopback. Setting this value to 1 (True) keeps the device from going into Idle mode and makes the device maintain an active TCP/IP connection, even if there is no active network adapter. |
SackOpts : REG_DWORD |
Default setting is 1 (True). This value can be either 0 (False) or 1 (True), to specify whether Selective Acknowledgment (SACK) support is enabled. SACK is specified in RFC 2018. For more information about SACK, see TCP Selective Acknowledgment. |
TCP1323Opts : REG_DWORD |
By default, this value does not initiate options but provides them if requested. This value controls RFC 1323 timestamps and window-scaling options. Timestamps and window scaling are enabled by default, but can be manipulated with flag bits. Bit 0 controls window scaling, and bit 1 controls timestamps. This value can have the following settings:
|
TcpMaxConnectResponseRetransmissions : REG_DWORD |
Default setting is 2. The valid range for this value is 0–0xFF. This value specifies the number of times a SYN-ACK message is retransmitted before canceling the attempt, when responding to a SYN message from a remote device. |
Adapter-specific Values
You can configure the TCP/IP implementation for a specific network adapter that is bound to TCP/IP through the registry. For more information about network adapter binding, see **Dynamic Adapter Binding and **Managing Network Adapters.
The following table shows the adapter-specific values for the HKEY_LOCAL_MACHINE\Comm\<Adapter Name>\Parms\Tcpip subkey.
Value : type | Description |
---|---|
AutoCfg : REG_DWORD |
No value (enabled). This value specifies whether Automatic IP is enabled. This value can be set either to 0 (False) or to 1 (True). |
AutoInterval : REG_DWORD |
Default setting is 300. This value specifies the time interval, in seconds, used to verify if a DHCP server is available to configure adapter settings for a devic, for example, IP Address, SubnetMask, default gateway, DNS and WINS servers. |
AutoIP : REG_SZ |
This value specifies the last known AutoIP address used by the device. If there is no value present, a new IP address is generated. |
AutoMask : REG_DWORD |
Default setting is 255.255.0.0. This value specifies the default subnet mask for Automatic IP. |
AutoSubnet : REG_SZ |
Default setting is 169.254.0.0. This value specifies the default subnet for Automatic IP. |
DefaultGateway : REG_MULTI_SZ |
This value specifies the list of gateways to be used to route packets that are not destined for a subnet to which the device is directly connected, and for which a more specific route does not exist. This value can be a set of valid IP addresses. This value is configurable from the Network Connections UI. This value overrides the DhcpDefaultGateway value. Since there is only one active default gateway for the device at any time, adding multiple addresses is only useful for redundancy. For more information, see Dead Gateway Detection. |
DhcpConstantRate : REG_DWORD |
This value can be either 0 (False) or 1 (True) to specify whether DHCP packets are sent at a constant rate, or a rate that is backed off exponentially. When this value is set to 1, the DHCP retransmission algorithm improves performance in wireless scenarios. |
DhcpDirectRenewal : REG_DWORD |
Default setting is 0. If this value is 0, DHCP traffic is broadcast. If this value is 1, the DHCP client sends request packets to the DHCP server. |
DhcpGlobalInitDelayInterval : REG_DWORD |
Default setting is 0. This value specifies the global initial delay, in milliseconds, between DHCP packets that are sent. This value can be set to any positive integer. |
DhcpInitDelayInterval : REG_DWORD |
Default setting is 0. This value specifies the initial delay, in milliseconds, between DHCP packets that are sent. This value can be set to any positive integer. This value overrides DhcpGlobalInitDelayInterval. |
DhcpMaxRetry : REG_DWORD |
Default setting is 2. This value defines the maximum number of attempts made to obtain a DHCP address. It can be any positive integer. For a headless device, setting a large value, such as 0xfffffffff, causes the DHCP client to be more persistent and recover after a temporary network outage. |
DhcpNoMacCompare : REG_DWORD |
Default setting is 0. If this value is set, the Media Access Controller (MAC) address in DHCP packets returned from the server is compared to the local interface. If the address does not match, the packet is discarded. |
DhcpOptions : REG_BINARY |
The valid range for this value is 1–0xFF (hexadecimal). This value specifies RFC 2132-compliant DHCP option value names for the server to retrieve. By default, Windows Embedded CE queries for the IP address, default gateway, subnet mask, DNS server, and WINS server. The values that the server retrieves, however, are not placed under DhcpOptions unless you create the value names. For more information, see DhcpOptions. |
DhcpRetryDialogue : REG_DWORD |
Default setting is 2. This value defines the number of times DHCP tries to obtain an IP address before a dialog box is displayed with one of the following messages: "DHCP was unable to obtain an IP address. If the net card is removable, then you can remove/reinsert it to have DHCP make another attempt to obtain an IP address for it. Otherwise, you can statically assign an address." If the client lease is still valid, The following message is displayed: "A DHCP Server could not be contacted. Using cached lease information.".
Note:
DhcpRetryDialogue registry setting does not control the display of this message. The codepath that raises this message is the byproduct of a ping to a gateway which occurs outside of the loop which uses the DhcpRetryDialogue registry key.
If the lease is no longer valid, "Your IP address lease has expired. DHCP was unable to renew your lease." |
DhcpSendOptions : REG_BINARY |
This value is not set by default. It specifies options to copy into the DHCP packet and send to the DHCP server. These options need to be valid and recognizable by the server. For more information, see DhcpSendOptions. |
DNS : REG_MULTI_SZ |
This value is not set by default. It specifies the list of valid IP addresses of available DNS servers. |
Domain : REG_SZ |
This value is not set by default. It specifies domain name information available from a DHCP message from the DHCP server on the network. For example, DHCP: Domain Name = example.microsoft.com. |
DNSTimeOut |
Default value is set to 3000. This value specifies the length of time, in milliseconds, that name resolution waits for a response from the DNS server. |
DontAddDefaultGateway : REG_DWORD |
Default setting is 0. This value can be either 0 (False) or 1 (True) to indicate if a default gateway should be installed for an adapter. When you install PPTP, a default route gets installed for each LAN adapter. You can disable the default route on an adapter by setting this value to 1. After making the setting, you might need to configure static routes for hosts that are reached using a router other than the default gateway. |
EnableDhcp : REG_DWORD |
Default setting is 0. This value can be either 0 (False) or 1 (True) to indicate if DHCP is enabled. If this value is set to 1, the DHCP client service will attempt to use DHCP to configure the first IP interface on this adapter. This value is configurable from the Network Connections UI. |
IPAddress : REG_MULTI_SZ |
This value is not set by default. This value specifies the IP addresses of the IP interfaces to be bound to the adapter. This value is configurable from the Network Connections UI. For more information, see Manually Configuring an IPv4 Address. |
MTU : REG_DWORD |
Default setting is 0xFFFFFFFF. Specifies the MTU for a network interface. The default setting allows the TCP/IP stack to choose the best MTU value, depending on the network interface. For example, for Ethernet, this value is set to 1500 bytes. Alternatively, you can specify the MTU value in bytes that the transport transmits over the underlying network. This value overrides the default MTU for a network interface. The maximum packet size includes the transport header. The minimum value is 68. Setting a value smaller than 68 will result in the transport using an MTU of 68. An IP datagram can span multiple packets. Values larger than the default for the underlying network will result in the transport using the network default MTU. For more information, see Maximum Transmission Unit (MTU). |
SubnetMask : REG_MULTI_SZ |
This value is not set by default. It specifies the subnet masks to be used with the IP interfaces bound to the adapter. This value can be any set of valid IP addresses. This value is configurable from the Network Connections UI). |
TcpDelAckTicks : REG_DWORD |
Default setting is 2. This value can be any number from 2 to 6. It specifies the number of milliseconds to use for the delayed-ACK timer on a per-interface basis. By default, the delayed-ACK timer is 200 milliseconds. |
TcpInitialRTT : REG_DWORD |
Default setting is 3. The valid range for this value is 0–0xFFFF (hexadecimal). This value specifies the initial timeout used for a TCP connection request on a per-interface basis. Use caution when tuning with this value, because exponential backoff is used. Setting a value larger than 3 will result in much longer timeouts to nonexistent addresses. |
TcpWindowSize : REG_DWORD |
This value is not set by default. If no value is specified for the adapter specific setting, the global TcpWindowSize is used. For more information see topic TCP/IPv4 and TCP/IPv6 Common Registry Settings. |
WINS : REG_MULTI_SZ |
This value is not set by default. This value can be set to any valid IP address indicating the WINS name server. Two WINS servers can be listed. |
WinsBroadcastTimeOut : REG_DWORD |
Default setting is 500. This value specifies the length of time, in milliseconds, that name resolution waits for a response to the IP subnet broadcast. |
WinsTimeOut : REG_DWORD |
Default setting is 2000. This value specifies the length of time, in milliseconds, that name resolution waits for a response from the WINS server. |
Host Name
The host name can be configured through the HKEY_LOCAL_MACHINE\Comm\Tcpip\Hosts subkey. When an application calls gethostbyname or getaddrinfo, the registry is queried first, before a DNS or WINS request is sent. If the host name is found in the registry, the registry values are returned. The following table shows the values for the HKEY_LOCAL_MACHINE\Comm\Tcpip\Hosts\<Host Name> subkey.
Value : type | Description |
---|---|
Aliases : REG_MULTI_SZ |
This value specifies the aliases by which the host is known. |
ExpireTime : REG_BINARY |
This value specifies the expiration time for the host. The length of this value is 8 bytes. If the current time, obtained by calling GetCurrentFT, exceeds the amount set for ExpireTime, the entire Host Name subkey is deleted the next time that gethostbyname is called. |
ipaddr : REG_BINARY |
This value specifies the TCP/IPv4 addresses associated with the host name. The length of this value is 4 bytes per address. |
ipaddr6 : REG_BINARY |
This value stores the TCP/IPv6 addresses associated with the host name. The length of this value is 20 bytes per address (16 bytes for address and 4 bytes for scope ID). |
AFD Registry Settings
The following table shows the value for the HKEY_LOCAL_MACHINE\Comm\AFD subkey for the Windows Embedded CE Protocol Manager (AFD).
Value: type | Description |
---|---|
STACKS : MULTI_SZ |
By default, this value is not set and all protocol stacks are loaded during device startup. You can set this value to prevent a specific stack from loading during startup. For example, if you enter the value of tcpstk, then only TCP/IPv4 is loaded. The other stacks are not loaded, and their associated functionality is therefore disabled. The following list shows the possible values.
Note:
Removing the Bluetooth setting from this value disables only the Windows Embedded CE Bluetooth stack. It does not disable Bluetooth on devices that have third-party Bluetooth stacks. A user who knows this registry setting and has a registry editor can change this value.
|
Device Name
As the OEM, you can configure the device name by setting the Name value for the HKEY_LOCAL_MACHINE\Ident key. For more information, see TCP/IPv4 Device Name Registry Settings.
See Also
Concepts
TCP/IP Registry Settings
TCP/IPv4 Non-Configurable Registry Settings
TCP/IPv4 and TCP/IPv6 Common Registry Settings
Host Name Resolution for Dual Stack (IPv4/IPv6)