Dial-up Registry Settings
Dial-up registry settings are used to configure both PPP (Point-to-Point Protocol) connections and RAS (Remote Access Service) connections.
Note The default registry values vary depending on which Catalog items are included in your OS design. For more information, see Default Registry Settings.
In This Section
Describes the registry settings used to configure PPP connections.
Describes the registry settings used to configure RAS connections.
PPP Registry Settings
The registry key name is HKEY_LOCAL_MACHINE\Comm\Ppp\Parms. The following table shows the named values for configuring PPP connections.
Value : type |
Description |
AllowSuspend : REG_DWORD |
Default setting is 0. Controls the suspension behavior of a device. To allow the device to auto-suspend while a PPP session is active, this key must be set to 1. Note This registry key is read during session creation. Any change to this key will affect subsequent PPP sessions that are created, but will not affect currently active sessions. |
AlwaysAddSubnetRoute : REG_DWORD |
Default setting is 0. If this value is set to 1 or TRUE, the subnet route will be added to the route table, even when the RASEO_RemoteDefaultGateway has been set in RASENTRY. If this value is set to 0, no subnet route will be created it RASEO_RemoteDefaultGateway has been set in RASENTRY. |
AlwaysRequestDNSandWINS : REG_DWORD |
Default setting is 0 or FALSE. If this value is set to 1 or TRUE, the client will always request the server to inform it of DNS and WINS server addresses, even when RASEO_SpecificNameServers is set to statically assign DNS and WINS server addresses. |
AlwaysSuggestIpAddr : REG_DWORD |
Default setting is 0 or FALSE. If this value is set to 1 or TRUE, the client will always suggest an IP address to the server, even when RASEO_SpecificIpAddr has not been set. If this value is set to 0, the client will request an IP address from the server (by sending 0.0.0.0 in its IP_ADDRESS option configuration-request). |
AuthMaxTries : REG_DWORD |
Default setting is 10. Specifies the maximum number of attempts the Windows CE RAS server will make to authenticate a client. |
AuthMaxFailures : REG_DWORD |
Default setting is 3. Specifies the maximum number of bad authentication responses a client may send before the Windows CE RAS server will terminate the connection. |
CryptTypesSupported : REG_DWORD |
Default setting is 60. Controls the kind of encryption that PPP will negotiate. The following are valid values: · 0 (disables encryption) · 20 (enables 40-bit MPPE encryption) · 40 (enables 128-bit MPPE encryption) · 60 (enables both 40-bit and 128-bit MPPE encryption) This registry setting is read when a PPP session is created, for example when RasDial is called. Note These values are in hexadecimal numbers. |
IPV6Flags : REG_DWORD |
Default setting is 0. This registry enables or disables the use of specific IFID generation methods. The lower four bits can be used to disable the IFID methods by setting them to 1. Setting bit 2 to ON disables the use of a local area network (LAN) Media Access Control (MAC) address to obtain an IFID. Setting bit 3 to ON disables the use of the DEVICE_ID structure to generate an IFID. For example, to use DEVICE_ID to get an IFID, set IPV6Flags to 0x0007. |
MaxConfigure : REG_DWORD |
Default setting is 10. Indicates the number of Configure-Request (CR) packets sent without receiving a valid Configure-ACK, Configure-No Acknowledgement (NAK), or Configure-Reject before assuming that the peer is unable to respond. |
MaxFailure : REG_DWORD |
Default setting is 5. Indicates the number of Configure-NAK packets sent without sending a Configure-ACK before assuming that the configuration in not converging. |
MaxTerminate : REG_DWORD |
Default setting is 2. Indicates the number of Terminate-Request packets sent without receiving a Terminate-ACK before assuming that the peer is unable to respond. |
MinimumMRU : REG_DWORD |
Default setting is 64. Specifies the minimum Maximum-Receive-Unit (MRU). By default, PPP does not allow the peer to negotiate a Link Control Protocol (LCP) MRU less than 64. |
RestartTimer : REG_DWORD |
Default setting is 3. Indicates the time, in seconds, to wait before resending a Configure-Request or Terminate-Request when no ACK has been received. |
RAS Registry Settings
The RAS registry settings must be added to your hardware platform's Platform.reg file. The Platform.reg file for each platform is in %_WINCEROOT%\Platform\%_TGTPLAT%\Files.
The HKEY_LOCAL_MACHINE\Comm\DefaultConnections registry key specifies the default connection to used when the device is cradled.
Value : type |
Description |
<Connection Name> : REG_MULTI_SZ |
<Connection Name> must be replaced with the value of the "Cnct" entry under HKEY_CURRENT_USER\ControlPanel\Comm (see Device Registry Settings for details). Specifies the friendly name and the connection speed of the default connection. The friendly name must match the value of the "FriendlyName" entry under the HKEY_LOCAL_MACHINE\Drivers\BuiltIn\<Connection Type> registry key. The built-in connection types are configured in the Common.reg file, located in %_WINCEROOT%\Public\Common\OAK\Files. The following registry key example shows one sample configuration. [HKEY_LOCAL_MACHINE\Comm\DefaultConnections] "`USB"=multi_sz:"USB Cable:","115200" |
The HKEY_CURRENT_USER\Comm\RasBook\<Connection Name> registry key contains information about the RAS phone book entries for the specified connection. <Connection Name> must match the value specified in the HKEY_LOCAL_MACHINE\Comm\DefaultConnections registry key.
Value : type |
Description |
DevCfg : REG_HEX |
Indicates the serial device capabilities (baud, parity, and so on). |
Entry : REG_HEX |
Contains the RAS phone book entry for the connection. |
Dial-up Security
The server can ask for authentication in response to a connection request. Once a connection is established, authentication can be challenged for various requests. Both the Kerberos and Secure Sockets Layer (SSL) authentication mechanisms are supported.
Sensitive information can be encrypted prior to being sent over the network. This prevents unauthorized users from viewing data in transmitted packets.
Default Registry Settings
You should be aware of the registry settings that impact security. If a value has security implications you will find a Security Note in the registry settings documentation.
For Dial-up registry information, see Dial-up Registry Settings.
Dial-up Migration
This topic contains information about migrating this functionality from earlier versions of Windows CE.
For general migration information, see Migrating from an Earlier Version of Windows CE.
Migrating from Windows CE 2.12 and Windows CE 3.0
Effective with Windows CE .NET 4.2, the RAS Server Catalog item has been separated from the Dial-up Networking Catalog item (SYSGEN_PPP).
To retain prior functionality, ensure that SYSGEN_PPP_SERVER is set.
Dial-up Samples
Code samples for Dial-up Networking are located in the %_WINCEROOT%\Public\Common\oak\drivers\netsamp directory. The following table shows the samples for Dial-up Networking.
Sample |
Description |
AUTORAS\DLL |
Provides AutoDial functionality to dialer applications. |
AUTORAS\TEST |
Test application for RAS AutoDial. |
RASDIAL |
Sample RAS dialing program. |
RASENTRY |
Sample application that is used to make RAS telephone book entries. |
RNAAPP |
Sample application that displays status information while a dial-up or virtual private network (VPN) connection is being established. |
RAS Reference
This language reference section contains descriptions of RAS programming elements.
RAS Enumerations
The following table shows the RAS enumerations with a description of the purpose of each.
Programming element |
Description |
This enumeration type contains values that specify the states that may occur during a RAS connection operation. | |
This enumeration type defines values that specify a particular authentication protocol or Point-to-Point Protocol (PPP) control protocol. |
RASCONNSTATE
This enumeration type contains values that specify the states that may occur during a RAS connection operation. If you use the RasDial function to establish a RAS connection, you can specify a window to receive notification messages that report the current connection state. You can also use the RasGetConnectStatus function to get the connection state for a specified connection.
typedef enum _RASCONNSTATE {
RASCS_OpenPort = 0,
RASCS_PortOpened,
RASCS_ConnectDevice,
RASCS_DeviceConnected,
RASCS_AllDevicesConnected,
RASCS_Authenticate,
RASCS_AuthNotify,
RASCS_AuthRetry,
RASCS_AuthCallback,
RASCS_AuthChangePassword,
RASCS_AuthProject,
RASCS_AuthLinkSpeed,
RASCS_AuthAck,
RASCS_ReAuthenticate,
RASCS_Authenticated,
RASCS_PrepareForCallback,
RASCS_WaitForModemReset,
RASCS_WaitForCallback,
RASCS_Projected,
RASCS_Interactive = RASCS_PAUSED,
RASCS_RetryAuthentication,
RASCS_CallbackSetByCaller,
RASCS_PasswordExpired,
RASCS_Connected = RASCS_DONE,
RASCS_Disconnected
} RASCONNSTATE;
Enumerator Values
The enumerator values are listed here in the general order in which the connection states occur. However, you should not write code that depends on the order or occurrence of particular RASCONNSTATE connection states, because this may vary between platforms.
Value |
Description |
RASCS_OpenPort |
The communication port is about to be opened. |
RASCS_PortOpened |
The communication port has been opened successfully. |
RASCS_ConnectDevice |
A device is about to be connected. RasGetConnectStatus can be called to determine the name and type of the device being connected. |
RASCS_DeviceConnected |
A device has connected successfully. RasGetConnectStatus can be called to determine the name and type of the device being connected. For a simple modem connection, RASCS_ConnectDevice and RASCS_DeviceConnected will be called only once. For a dial-up X.25 PAD connection, the pair will be called first for the modem, then for the PAD. If a preconnect switch is configured, the pair will be called for the switch before any other devices connect. Likewise, the pair will be called for a postconnect switch after any other devices connect. Note that Windows CE does not currently support multistage connections such as the X.25 PAD connection described earlier. |
RASCS_AllDevicesConnected |
All devices in the device chain have successfully connected. At this point, the physical link is established. |
RASCS_Authenticate |
The authentication process is starting. Remote access does not enable the remote client to generate any traffic on the LAN until authentication has been successfully completed. Remote access authentication on a Windows NT® or Windows 95 server consists of: · Validating the user name/ password on the specified domain. · Projecting the client onto the LAN. This means that the remote access server does what is necessary to send and receive data on the LAN on behalf of the client. For example, the remote access server might need to add a NetBIOS name that corresponds to the client's computer name. · Call-back processing in which the client hangs up and the server calls back. (The user needs special permissions on the remote access server for this.) · Calculating the link speed. This is necessary to correctly set transport time-outs to match the relatively slow speed of the remote link. |
RASCS_AuthNotify |
An authentication event has occurred. If dwError is zero, this event will be immediately followed by one of the more specific authentication states following. If dwError is nonzero, authentication has failed, and the error value indicates why. |
RASCS_AuthRetry |
The client has requested another validation attempt with a new user name/password/domain. |
RASCS_AuthCallback |
The remote access server has requested a callback number. This occurs only if the user has "Set By Caller" callback privilege on the server. |
RASCS_AuthChangePassword |
The client has requested to change the password on the account. |
RASCS_AuthProject |
The projection phase is starting. |
RASCS_AuthLinkSpeed |
The link-speed calculation phase is starting. |
RASCS_AuthAck |
An authentication request is being acknowledged. |
RASCS_ReAuthenticate |
Reauthentication (after callback) is starting. |
RASCS_Authenticated |
The client has successfully completed authentication. |
RASCS_PrepareForCallback |
The line is about to disconnect in preparation for callback. |
RASCS_WaitForModemReset |
The client is delaying in order to give the modem time to reset itself in preparation for callback. |
RASCS_WaitForCallback |
The client is waiting for an incoming call from the remote access server. |
RASCS_Projected |
This state occurs after the RASCS_AuthProject state. It indicates that projection result data is available. You can access the projection result data by calling RasGetProjectionInfo. |
RASCS_Interactive |
This state corresponds to the terminal state supported by RASPHONE.EXE. |
RASCS_RetryAuthentication |
This state corresponds to the retry authentication state supported by RASPHONE.EXE. |
RASCS_CallbackSetByCaller |
This state corresponds to the callback state supported by RASPHONE.EXE. |
RASCS_PasswordExpired |
This state corresponds to the change password state supported by RASPHONE.EXE. |
RASCS_Connected |
Successful connection. |
RASCS_Disconnected |
Disconnection or failed connection. |
Remarks
The connection process states are divided into three classes: running states, paused states, and terminal states.
An application can easily determine the class of a specific state by performing Boolean bit operations with the RASCS_PAUSED and RASCS_DONE bitmasks. Here are some examples.
fDoneState = (state & RASCS_DONE);
fPausedState = (state & RASCS_PAUSED);
fRunState = !(fDoneState || fPausedState);
Requirements
OS Versions: Windows CE 1.0 and later.
Header: Ras.h.
RASPROJECTION
This enumeration type defines values that specify a particular authentication protocol or Point-to-Point Protocol (PPP) control protocol. An application passes a value of this type to the RasGetProjectionInfo function to specify the protocol of interest.
typedef enum _RASPROJECTION {
RASP_Amb = 0x10000,
RASP_PppNbf = 0x803F,
RASP_PppIpx = 0x802B,
RASP_PppIp = 0x8021,
RASP_PppIpV6 = 0x8057,
RASP_PppCcp = 0x80FD,
RASP_PppLcp = 0xC021,
RASP_Slip = 0x20000
} RASPROJECTION;
Each of the RASPROJECTION enumerators has a corresponding data structure; the RasGetProjectionInfo function returns the specified information in a structure of that type.
Value |
Description |
RASP_Amb |
Specifies the Authentication Message Block (AMB) authentication protocol. AMB is a NetBIOS-based protocol used to authenticate with downlevel remote access servers (all those prior to Windows NT 3.5). The corresponding data structure is a RASAMB. |
RASP_PppNbf |
Specifies the NetBEUI Framer (NBF) protocol. NBFCP is a PPP network control protocol used to negotiate the parameters necessary to ship NetBEUI packets on a WAN link. The corresponding data structure is a RASPPPNBF. |
RASP_PppIpx |
Specifies the Internetwork Packet Exchange (IPX) control protocol. IPXCP is a PPP network control protocol used to negotiate the parameters necessary to ship IPX packets on a WAN link. The corresponding data structure is a RASPPPIPX. |
RASP_PppIp |
Specifies the Internet Protocol (IP) control protocol. IPCP is a PPP network control protocol used to negotiate the parameters necessary to ship IP packets on a WAN link. The corresponding data structure is a RASPPPIP. |
RASP_PppIpv6 |
Specifies the Internet Protocol Version 6 (IPv6) control protocol. The corresponding data structure is a RASPPPIPV6. |
RASP_PppCcp |
Specifies the Compression Control Protocol (CCP). CCP enables computers using PPP to negotiate compression algorithms and parameters. The corresponding data structure is RASPPPCCP. |
RASP_PppLcp |
Specifies the Link Control Protocol (LCP). LCP is used by computers to establish, modify, and terminate PPP connections. The corresponding data structure is RASPPPLCP. |
RASP_Slip |
Specifies the Serial Line Internet Protocol (SLIP). SLIP is a framing protocol used primarily in UNIX environments. |
Remarks
Windows CE supports the RASP_PppIp and RASP_PppIpv6 values.
Requirements
OS Versions: Windows CE 1.0 and later.
Header: Ras.h.