본문 바로가기

Software/Network

[RAS] Ras Setting

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

PPP Registry Settings

Describes the registry settings used to configure PPP connections.

RAS Registry Settings

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

RAS Functions

RAS Messages

RAS Structures

RAS Enumerations

The following table shows the RAS enumerations with a description of the purpose of each.

Programming element

Description

RASCONNSTATE

This enumeration type contains values that specify the states that may occur during a RAS connection operation.

RASPROJECTION

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.