HOWTO: Windows 95/98 Session Management Modules (3/5) (232716)



The information in this article applies to:

  • Microsoft Windows 98, when used with:
    • the operating system: Microsoft Windows 95
    • the operating system: Microsoft Windows 98
  • Microsoft Windows 95 Driver Development Kit (DDK)
  • Microsoft Windows 98 Driver Development Kit (DDK)

This article was previously published under Q232716

SUMMARY

Dial-Up Networking uses Session Management Modules to abstract the interface presented by the Dial-up server. This is the third of five Knowledge Base articles describing the use of Session Management Modules.

MORE INFORMATION

3. Installing a Session Management Module

Session Management Modules are configured in the authentication key of the remote access branch of the registry. This section describes the layout of this key and how it is used.

3.1. Registry layout

  HKEY_LOCAL_MACHINE/SYSTEM/SERVICES/REMOTEACCESS/AUTHENTICATION
    CLASS
      <device class>
        <Dial-Up Adapter name 0>
        ...
        <Dial-Up Adapter name n>
      ...
    DRIVERS
      <Dial-Up Adapter name 0>
        0 = <Session Management Module 0>
        ...
        m = <Session Management Module m>
      ...
    SMM_FILES
      <Session Management Module 0>
        Desc = 
        Path = 
        Options = 
        Protocols = 
        Usage =
        <Overlaid_SMM>
          0 =
          1 =
          ...
      ... 
  • CLASS key
    This key contains the subkeys for the classes of the devices that are installed for Dial-Up Networking. After Dial-Up Networking completes the physical connection through a TAPI device, it requests the unique device class name for the physical device from the corresponding service provider (through the lineGetID call with the NDIS class).
  • CLASS\<device class> key
    This key contains the keys for the names of the Dial-Up adapters. Dial-Up Networking uses the names in this list to determine what adapter can be used in this session. Each adapter will be tried sequentially until one successfully, or all fail to, configure the session.
  • CLASS\<device class>\<Dial-Up Adapter name x> key
    This key is the name of the Dial-Up adapter. Dial-Up Networking uses this name to determine the list of corresponding Session Management Modules (SMMs) that can be used for this session from the DRIVERS key. The name of this key must match one of the <Dial-Up Adapter name x> subkeys of the DRIVERS key.
  • DRIVERS key
    This key contains the list of all the Dial-Up Adapters installed on the system. Dial-Up Networking will use only the adapters that match the device class in a session.
  • DRIVERS\<Dial-Up Adapter name x> key
    This key contains the values for the SMMs that can be used with the adapter. The value name is a zero-based integer signifying the order that the SMM Dial-Up Networking should attempt. The value is a string type for the SMM name which must match the name of one of the <Session Management Module x> subkeys of the SMM_FILES key.
  • SMM_FILES key
    This key contains the keys for all the SMMs that are installed for Dial-Up Networking. Dial-Up Networking will use only the SMMs that corresponds to the attempted adapters in a session,.
  • SMM_FILES\<Session Management Module x> key
    This key contains the information for the Session Management Module that Dial-Up Networking needs to starts the SMM properly. This information is stored in the following values:
  • Desc
    A string-type value that contains the descriptive name of the SMM. The name is used to populate the list of SMM in the Server Type dialog boxes in the connection icon's Property page.
  • Path
    A string-type value that contains the pathname of the Dynamic Linked Library (DLL) for the SMM. The path can be relative or a full pathname.
  • Options
    A four-byte binary value for a set of flags that indicate the user-configurable options for the SMM. If the flag is set, users can configure the option from the Server Type dialog box in the connection icon's Property page. The current options are:
SMMCFG_SW_COMPRESSION (0x00000001) The SMM can negotiate the software compression scheme.

SMMCFG_PW_ENCRYPTED (0x00000002) The SMM can use the encrypted password.

SMMCFG_NW_LOGON (0x00000004) The SMM allows Dial-Up Networking to log onto the network on the Dial-Up server automatically.

SMMCFG_SW_ENCRYPTION (0x00000010) The SMM can use the software encryption.

  • Protocols
    A four-byte binary value for a set of flags that indicate the network protocols that can be used by the corresponding Dial-Up adapter. If the flag is set, users can specify the protocols to use for the connection from the Server Type dialog box in the connection icon's Property page. The current protocols are:
SMMPROT_NB (0x00000001) for NetBEUI
SMMPROT_IPX (0x00000002) for IPX/SPX Compatible
SMMPROT_IP (0x00000004) for TCP/IP
  • Usage
    A four-byte binary value for a set of flags that indicate the type of the SMM. The current usage includes:

INITIATOR_TYPE (0x00000001) The SMM can be used for the client Dial-Up Networking.
RESPONDER_TYPE (0x00000002) The SMM can be used for the Dial-Up Networking server.

  • SMM_FILES\<Session Management Module x>\Overlaid_SMM key
    This key contains the values for the list of SMMs that are overlaid by the SMM in the Path value. The value name is a zero-based integer signifying the order that the SMM Dial-Up Networking should pass to the control on or after it finishes it's task. The value is a string type for the pathname of the Dynamic Linked Library (DLL) for the SMM. The path can be relative or a full pathname.

3.2. How Dial-Up Networking Uses the Registry

The following is the default registry layout when Dial-Up Networking is first installed:

  HKEY_LOCAL_MACHINE/SYSTEM/SERVICES/REMOTEACCESS/AUTHENTICATION
    CLASS
      COM
        PPPMAC
    DRIVERS
      PPPMAC
        0 = "PPP"
        1 = "RAS"
        2 = "NWC"
    SMM_FILES
      NWC
        Desc = "NRN: Netware Connect"
        Path = "rasapi32.dll"
        Options = 04 00 00 00
        Protocols = 02 00 00 00
        Usage = 01 00 00 00
      PPP
        Desc = "PPP: Windows 95, Windows NT 3.5, Internet"
        Path = "rasapi32.dll"
        Options = 17 00 00 00
        Protocols = 07 00 00 00
        Usage = 03 00 00 00
      RAS
        Desc = "Windows for Workgroup and Windows NT 3.1"
        Path = "rasapi32.dll"
        Options = 04 00 00 00
        Protocols = 01 00 00 00
        Usage = 03 00 00 00
The default Dial-Up Adapter (Microsoft Dial-Up Adapter) is PPPMAC. PPPMAC handles a modem device and has three default Session Management Modules--NWC, PPP, and RAS. When the modem connection is established, Dial-Up Networking gets the device class of the modem from TAPI's lineGetID call for the NDIS type. The Unimodem service provider returns the COM device class for the modem. Dial-Up Networking looks for the Dial-Up adapters from the .../REMOTEACCESS/AUTHENCATION/CLASS/COM key and finds PPPMAC as the only adapter. Next, Dial-Up Networking enumerates the Session Management Modules for PPPMAC from the .../REMOTEACCESS/AUTHENCATION/-DRIVERS/PPPMAC key, starting from the PPP type. When Dial-Up Networking is ready to hand control off to the SMM, it looks up the Path value in the .../REMOTEACCESS/AUTHENCATION/SMM_FILES/PPP key for the DLL name, then loads it and starts the session management phase.

Modification Type:MajorLast Reviewed:10/8/2006
Keywords:kbhowto kbNDIS kbnetwork KB232716