Windows Platform Design Notes
Designing Hardware for the Microsoft Windows Family of Operating Systems
Supporting Broadband Configuration during Windows Me OOBE
Abstract: This article describes the driver and preconfiguration components for broadband support that will help ensure new users have a good out-of-box-experience (OOBE), including easy connection to the Internet when first running the Microsoft® Windows® Millennium Edition (Windows Me) operating system.
March 4, 2000
Contents
Introduction 2
Windows OOBE and the System Configuration Process 2
Ensuring Drivers Support Broadband Configuration 3
INS File Format Extensions for Broadband 5
Disclaimer: The information contained in this document represents the current view of Microsoft Corporation on the issues discussed as of the date of publication. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information presented. This document is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS OR IMPLIED, IN THIS DOCUMENT.
Microsoft Corporation may have patents or pending patent applications, trademarks, copyrights, or other intellectual property rights covering subject matter in this document. The furnishing of this document does not give you any license to the patents, trademarks, copyrights, or other intellectual property rights except as expressly provided in any written license agreement from Microsoft Corporation.
Microsoft does not make any representation or warranty regarding specifications in this document or any product or item developed based on these specifications. Microsoft disclaims all express and implied warranties, including but not limited to the implied warranties or merchantability, fitness for a particular purpose and freedom from infringement. Without limiting the generality of the foregoing, Microsoft does not make any warranty of any kind that any item developed based on these specifications, or any portion of a specification, will not infringe any copyright, patent, trade secret or other intellectual property right of any person or entity in any country. It is your responsibility to seek licenses for such intellectual property rights where appropriate. Microsoft shall not be liable for any damages arising out of or in connection with the use of these specifications, including liability for lost profit, business interruption, or any other damages whatsoever. Some states do not allow the exclusion or limitation of liability or consequential or incidental damages; the above limitation may not apply to you.
Microsoft, Win32, Windows, and Windows NT are trademarks or registered trademarks of Microsoft Corporation in the United States and/or other countries. Other product and company names mentioned herein may be the trademarks of their respective owners.
© 2000 Microsoft Corporation. All rights reserved.
Introduction
For systems that run the Microsoft Windows Millennium Edition operating system, the system manufacturer can preconfigure components to allow easy setup of broadband Internet connections when the user starts a new PC for the first time.
This article describes the driver and preconfiguration components for broadband support that will help ensure new users have a good out-of-box-experience (OOBE), including easy connection to the Internet when first running Windows.
The information in this article applies only for Windows Me, and includes these elements:
-
Brief background about the Windows OOBE process and broadband configuration
-
Guidelines for device drivers, to ensure they correctly support easy configuration of broadband connections
-
Windows Me extensions to the Internet settings (INS) file format, which are used to define parameters for configuring Internet-related services
For information about installing and configuring support for broadband devices under Windows 2000, see the Windows 2000 DDK.
Windows OOBE and the System Configuration Process
When the user first starts a new PC running Windows Me, the Windows OOBE application runs automatically to complete the final steps of system setup. The Windows OOBE process is a full-screen HTML application that helps users do the following:
-
Ensure that hardware is working correctly
-
Configure key system settings
-
Display the Windows licensing agreement for the end user’s acceptance
-
Connect to the Internet
-
Register the customer with Microsoft and the system manufacturer
System manufacturers can use Windows OOBE to help users qualify and sign up for broadband service with a service provider such as an ISP, local exchange carrier, or cable company.
During the signup phase of Windows OOBE, the broadband service provider creates a file that contains broadband configuration settings for the user’s PC system. At the end of the signup process, this file is sent back to the user’s system. The driver then uses this file to configure the system for broadband Internet access.
Microsoft has extended the INS file format so it can be used to configure systems running Windows Me to establish broadband Internet access without extensive end-user input. Using capabilities provided for Windows Me, the system manufacturer can preconfigure the system to pass the broadband device name and Plug and Play ID to the ISP signup server. The signup server builds this information into an INS file so the settings are applied to the correct device when the INS file is used to configure the system’s Internet access settings.
The related extensions to the INS file format for Windows Me are described later in this article.
Ensuring Drivers Support Broadband Configuration
This section is provided for engineers creating drivers to support broadband devices. Such drivers must be created as connection-oriented NDIS 5 drivers, as described in “Network Drivers” in the Windows 2000 DDK.
Drivers for devices that implement the PPP-over-ATM standard can take advantage of broadband configuration support in Windows Me without modifications.
Drivers for devices that implement PPP-over-Ethernet and the IETF RFC 1483 ATM adaptation layer-5 encapsulation standard must observe the guidelines described in this article.
The following guidelines must be observed for drivers that implement broadband support using the PPP-over-Ethernet or RFC 1483 standards:
-
Correctly arrange broadband information in the INS file format
-
Correctly read device and driver information in the registry
-
Correctly look for TCP/IP information in the usual registry locations
Arrange Broadband Information in the INS File Format
INS files for RFC 1483 connections must arrange broadband information in the following syntax:
[rfc1483]
field1=value1
field2=value2
field3=value3
.
.
.
[device]
Plug_and_Play_ID=HardwareIDofDevice
INS files for PPP-over-Ethernet broadband connections must follow this syntax:
[pppoe]
field1=value1
field2=value2
field3=value3
.
.
.
[device]
Plug_and_Play_ID=HardwareIDofDevice
The field1, field2,… and value1, value2,… parameters represent name-value pairs for PPP-over-Ethernet in a [pppoe] section or RFC 1483 connections in a [rfc1483] section of an INS file. Hardware vendors can specify any number of parameter name-value pairs, but only as a flat hierarchy of pairs (that is, pairs cannot be nested). All pairs must be placed in the [pppoe] or [rfc1483] section of the INS.
Read Values from the Driver Registry Location
There are two important registry locations for any network device:
-
The registry key for the driver contains NDI/NDIS parameters for the device
-
The registry key for the device contains device information such as the manufacturer’s name
The following examples shows a typical driver registry key, where xxxx represents an instance of the Net device class:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services
\Class\Net\xxxx
In an INS file that correctly specifies all the RFC 1483-specific parameters, all the INS field-value pairs will be found as registry name-value pairs under the driver key in the registry. The following example shows the key for instance 0000.
Note: All data will be of type REG_SZ (string), even if the parameters describe numbers.
Look for TCP/IP Information in the Usual Locations
TCP/IP parameters must be separate from RFC 1483-specific or PPPOE-specific parameters:
-
TCP/IP information must be placed in a [TCP/IP] section in the INS file.
-
TCP/IP parameters are stored in the usual registry locations for network adapters, as described in “Installing Network Components” in the Windows 2000 DDK.
Under Windows Me, to preserve the simplicity of the driver registry key and INS file structure, subkeys are no longer created under the driver registry key.
INS File Format Extensions for Broadband
For systems running Windows Me and other versions of Windows, INS file settings for configuring browser, e mail, and news settings are described in the Internet Explorer Administration Kit (IEAK), available at:
http://www.microsoft.com/windows/ieak/
This section summarizes new extensions to the INS file format to support broadband configuration. The extensions described here are valid only for systems running Windows Me.
[Device] Section
The following is the structure for the [Device] section of the INS file:
[Device]
Type = {modem, isdn, atm, ethernet, ethernet_1483, pppoa, pppoe, cable}
Name = {friendly name of the device}
Pnpid = {Plug and Play ID of the device}
-
Type= directive contains one of these values:
-
Modem, ISDN, and ATM values bind entries to RAS
-
Modem, ISDN, and Ethernet (and cable) values only look for a [TCP/IP] section in the INS file
-
PPPOA looks for [TCP/IP] and [ATM] sections
-
Ethernet_1483 looks for [TCP/IP] and [Ethernet_1483] sections
-
PPPOE looks for [TCP/IP] and [PPPOE] sections
-
Name= and Pnpid= directives contain the broadband device’s device name and Plug and Play ID, which the system manufacturer places in the INS file before it ships. For a multifunction adapter, use the Plug and Play ID of the configured network device (class “Net”).
This information is transmitted to the broadband service provider during user signup. The broadband service provider adds these entries to the INS file so that the correct device will be configured during signup.
[TCP/IP] Section
The following is the structure for the [TCP/IP] section of the INS file:
[TCP/IP]
Specify_IP_Address = {yes for static, no for DHCP}
IP_Address = {static IP address, if used}
Subnet_Mask = {IP address, if IP_Address is used}
Specify_DNS_Address = {yes if used, else no}
DNS_List = {IP address},{IP address}, …
IP_Header_Compress = {yes if used, else no}
Gateway_On_Remote = {yes if used, else no}
Default_Gateway_List = {IP address},{IP address},…
Domain_Name = {string, if used}
Host_Name = {string, if used}
Domain_Suffix_Search_List = {string},{string},…
Specify_WINS_Address = {yes if used, else no}
WINS_List = {IP address},{IP address}, …
ScopeID = {number, if used}
Note: Some of these parameter names override those for non-broadband INS files. For example, DNS_List replaces DNS_Address and DNS_Alt_Address, and WINS_List replaces WINS_Address and WINS_Alt_Address. Do not use non-broadband INS parameter names in broadband INS files. They will not be recognized.
Also, all IP addresses must be of the form n.n.n.n and not DNS-resolved addresses—for example, 192.168.0.2 instead of broadband.microsoft.com.
[PPPoverATM] or [Ethernet_1483] Sections
The following is the structure for these sections:
[PPPoverATM] or [Ethernet_1483]
Circuit_Speed = {flag}
Circuit_QOS = {flag}
Circuit_Type = {0 if SVC, 1 if PVC}
Speed_Adjust = {yes or no}
QOS_Adjust = {yes or no}
Encapsulation = {flag}
VPI = {numeric value} ;Used only for permanent virtual circuits (PVC)
VCI = {numeric value} ;Used only for permanent virtual circuits (PVC)
Vendor_Config = {yes or no}
Show_Status = {yes or no}
Enable_Log = {yes or no}
-
Circuit_Speed= directive contains one of these values:
0 = Line rate
1 = User specified—actual value of rate in kilobytes (512, 1536, 25000, 155000)
-
Circuit_QOS= directive contains one of these values:
0 = UBR
1 = VBR
2 = CBR
3 = ABR
-
Encapsulation= directive contains one of these values:
0 = PPP over ATM (null encapsulation)
1 = PPP over ATM (LLC)
2 = Bridged Ethernet/802.3 (LLC/SNAP)*
3 = Routed IPv4 (LLC/SNAP)*
4 = Bridged Ethernet/802.3 (null encapsulation)*
5 = Routed IPv4 (null encapsulation)*
* Values 2–5 are not defined for PPPOA
[Phone] Section
The following is the structure for the [Phone] section:
[Phone]
PhoneNumber = {NSAP address if ATM,
else phone number, if applicable}
Call to action for supporting broadband configuration during Windows Me OOBE:
-
Ensure correct driver and INS support for broadband devices that implement PPP over Ethernet or RFC 1483:
-
Follow the broadband INS file format as described earlier
-
Read registry values from the driver and device registry keys
-
Look for TCP/IP information in the usual registry locations
-
Implement the INS file using the Windows Me extensions described in this article and following the format defined in the IEAK, which is available for download at
http://www/microsoft.com/windows/ieak
-
Support Windows OOBE using the tools provided with the Windows Me beta CD.
|