           Preinstalling Microsoft Windows XP QFE Q323183
                 Bluetooth Wireless Technology
                       Readme Document
                     September 26, 2002

Information in this document, including URL and other Internet Web
site references, is subject to change without notice and is provided
for informational purposes only. The entire risk of the use or 
results of the use of this document remain with the user, and 
Microsoft Corporation makes no warranties, either express or implied.
Unless otherwise noted, the example companies, organizations, 
products, people, and events depicted herein are fictitious. No 
association with any real company, organization, product, person, 
or event is intended or should be inferred. Complying with all 
applicable copyright laws is the responsibility of the user. Without 
limiting the rights under copyright, no part of this document may 
be reproduced, stored in or introduced into a retrieval system, or 
transmitted in any form or by any means (electronic, mechanical, 
photocopying, recording, or otherwise), or for any purpose, without 
the express written permission of Microsoft Corporation.

Microsoft may have patents, patent applications, trademarks,
copyrights, or other intellectual property rights covering subject
matter in this document. Except as expressly provided in any written
license agreement from Microsoft, the furnishing of this document 
does not give you any license to these patents, trademarks, 
copyrights, or other intellectual property.

(c) 2002 Microsoft Corporation. All rights reserved.

Microsoft, MS-DOS, Windows, and Windows NT are either registered
trademarks or trademarks of Microsoft Corporation in the United States
and/or other countries or regions.

The names of actual companies and products mentioned herein may be 
the trademarks of their respective owners.

========================
Table of Contents
========================

I.   How to Use This Document
II.  Preinstalling Bluetooth via the OPK
III. Testing Installation for Non-supported Devices
IV.  Known Issues


=============================
I.   How to Use This Document
=============================

To view the Readme file in Microsoft Windows Notepad, maximize 
the Notepad window. On the Format menu, click Word Wrap. 

To print the Readme file, open it in Notepad or another word 
processor, and then use the Print command on the File menu.

========================================
II.  Preinstalling Bluetooth via the OPK
========================================

This document provides instructions for preinstalling Bluetooth wireless technology on Windows XP Service Pack 1 (SP1).

You can preinstall Bluetooth only on Windows XP Home Edition SP1 or Windows XP Professional SP1. Do not preinstall Bluetooth on the original "gold" release of Windows XP or on any version of Windows XP 64-Bit Edition.

These instructions assume that you preinstall Windows XP SP1 over a network, by using Windows PE.

1. Copy Q323183_WxP_SP2_x86_ENU.exe to a subdirectory on your technician computer.

   For example, create a folder under the OPKTools directory called "Updates". Place the file Q323183_WxP_SP2_x86_ENU.exe in     the Updates folder.
  
2. In Setup Manager create or modify an existing Windows XP SP1 configuration set.

3. Add the following command-line information to the Preinstalled Applications page in Setup Manager:

   Executable: \\server\OpkTools\Updates\Q323183_WxP_SP2_x86_ENU.exe

   Parameters: -q -n -z

4. Save the configuration set.

5. Start the destination computer by using Windows PE and preinstall Windows XP by using the command factory -winpe.
   
   Bluetooth is installed immediately after Windows XP SP1 is installed, and it will be enabled on the next reboot of the
   computer.

   Note: The syntax of the quality fix engineering (QFE) installation program is:

      Q323183_WxP_SP2_x86_ENU.exe [-f] [-l] [-n] [-o] [-q] [-u] [-z]

       where:

       -f  Forces other programs to close when the computer shuts down.

       -l  Lists installed QFEs.

       -n  Does not back up files for uninstalling the QFE.

       -o  Overwrites OEM files without prompting.

       -q  Runs in quiet mode, with no user interaction.
 
       -u  Runs in unattended mode.

       -z  Does not restart when installation is complete.
 

==============================================
Testing Installation for Non-supported Devices
==============================================

The following procedure will enable you to test support for USB Bluetooth radio adapters not included in the file “blutooth.inf.” In order to ship support for your Bluetooth adapter using the Microsoft Windows XP Bluetooth stack to customers, you are required to contact WHQL and obtain a digital signature for your device support package. 


1. Copy the contents of the Bluetooth CD to your drive (for example, c:\Bth )

2. The driver install section of your inf should reference the following directives to use the Microsoft out of band class installer to install the Bluetooth QFE. The file bth.inf is installed as part of the QFE and your driver install section needs to reference sections from bth.inf using the include=bth.inf and needs=bthUsb.nt directives.

[BthUsbDriverInstallXP.NTx86]
Components=q323183
Include=Bth.inf
Needs=BthUsb.NT

[BthUsbDriverInstallXP.NTx86.HW]
Include=Bth.inf
Needs=BthUsb.NT.HW

[BthUsbDriverInstallXP.NTx86.Services]
Include=Bth.inf
Needs=BthUsb.NT.Services

[BthUsbDriverInstallXP.NTx86.CoInstallers]
AddReg = bth_oobc.AddReg
CopyFiles = bth_oobc.CopyFiles

[q323183]
; QFE installer
%1%\%LocalLanguage%\%qfe.installer%, 0x00020007, 5.1, 2, q323183  ; Service Pack


Alternatively, you  can use the file bthvendor.inf as a template and modify the following sections

1. Provider = "BLUETOOTHVENDOR" 

    where “BLUETOOTHVENDOR” should be modified with the appropriate vendor name

2. [Manufacturer]
   BLUETOOTHVENDOR=BTHVENDOR, NT.5.1
		
    where “BLUETOOTHVENDOR” should be modified with the appropriate vendor name.
			
3. [BTHVENDOR]
   ;
   ;Support for USB device
   ;         
   %USB\Vid_XXXX&PID_YYYY.DeviceDesc%=BthUsbDriverInstallXP, USB\VID_XXXX&PID_YYYY

    where the USB Vendor ID (represented by XXXX) and the Product ID (represented by YYYY) should be modified to represent        the device’s VID & PID.

4. Copy your inf to c:\bth

H/W First
- Plug in the Bluetooth adapter
- When the found new hardware wizard appears, select (Install from a list of specific location)
- When asked to "Please choose your search and installation options", choose "Search for the best driver in these locations"   and then "Include this location in the search" 
- Type in the location of the media that contains the modified bthvendor.inf


QFE First
- Navigate the Bluetooth CD and select the appropriate language version of the QFE number Q323183
- After the QFE is successfully installed, you will be required to reboot
- After the reboot follow the steps outlines in the H/W first case

=======================
IV.  Known Issues
=======================

1.  Bluetooth is not secure
2.  Only one radio supported at any time
3.  Removing radio with an active application can leave Bluetooth driver stack installed
4.  Bluetooth keyboard install requires a wired keyboard
5.  Support for boot devices not available
6.  No support for wake-on-Bluetooth
7.  Disabling incoming connections may break existing devices
8.  Remote devices may block inquiry and connection
9.  Class of Device bit is fixed at "Desktop workstation"
10. Devices with device-level security will not be seen in Add Modem Wizard and Add Printer Wizard
11. Caching of remote device information causes remote name changes to not show immediately
12. Loss of the link key on the remote device causes connections to fail




1.  Bluetooth is not secure

It is possible, though difficult, to break Bluetooth's encryption and intercept the link traffic.  As such, it should not be considered a secure transport.  Where strict security is necessary, it should be provided for at the application layer. 

2. Only one radio supported at any time

The Microsoft Windows XP stack is designed to support only one radio at any given time.  Multiple radios can be physically installed, but only one should be enabled at any time. If multiple radios are enabled, every radio after the first radio will fail to properly initialize. 

3.  Removing radio with an active application can leave Bluetooth driver stack loaded

If the user removes the Bluetooth radio with an active connection, the application may leave a handle open to the stack.  This will keep the stack from unloading.  Upon reinsertion of the radio, the stack will reload as a new instance but the results are unpredictable and will vary by the service left open.  To alleviate this problem, close any applications using Bluetooth before reinserting the radio.

4. Bluetooth keyboard install requires a wired keyboard

Installing a Bluetooth keyboard requires a wired keyboad to enable and authenticate the device.  Once this is complete, the wired keyboard may be removed.  

5.  Support for boot devices not available

Support for boot devices, primarily HID (mice and keyboards), is not provided.  Support for boot devices is dependent on the BIOS and as of this release no PC BIOSes support Bluetooth as a boot protocol. 

6.  No support for wake-on-Bluetooth

This release does not support wake-on-Bluetooth.  This will be considered for future releases.

7.  Disabling incoming connections may break existing devices

Disabling incoming connections (via the Wireless control panel) may cause interoperability problems with remote devices.  Some devices on the market drop the connection to enable power savings.  They then re-establish the connection when user activity makes this necessary.  In particular, OEMs should be careful about shipping any images with this turned off by default. 

8.  Remote devices may block inquiry and connection

Many Bluetooth radios prioritize sniff traffic (used for HID) above inquiry and paging.  This is done to ensure devices needing strict timing requirements work well.  A device setting a short sniff interval and a long poll period can starve the radio in such a way that it can't do inquiry and paging activity, causing the local radio to become "invisible" to other devices. 

9.  Class of Device bit is fixed at "Desktop workstation"

The class of device bit for the local radio is fixed for "Desktop workstation".  For OEMs wanting to override this, set the following in the registry:

     device's devnode\device parameters

     "COD Type" : REG_DWORD : 0x3

10.  Devices with device-level security will not be seen in Add Modem Wizard and Add Printer Wizard

Devices implementing device-level security (security mode 3 or "link level enforced security" in the Bluetooth specification) will not show up in the Add Modem and Add Printer Wizards.  For Windows to recognize these devices as modems and printers respectively, the service discovery record from the device needs to be retrieved.  For devices implementing device-level security, this requires the user to bond with the device before the record can be retrieved.  The resulting user experience is poor.  A user would need to bond with an indeterminate number of devices in order to determine which device(s) they really want.  This is also a security hole.  These devices can be accessed via the Wireless control panel. 

11.  Caching of remote device information causes remote name changes to not show immediately

Due to the relatively slow process of accessing remote device information, Windows caches this information internally.  If a user connects to a remote device and then subsequently changes the friendly name of the remote device, this change will not appear immediately.  Every 24 hours information older than 24 hours in the cache is purged.  Once this happens, the new name will be presented. 

12. Loss of the link key on the remote device causes connections to fail

Once Bluetooth devices are authenticated, the devices typically store the link key for future connections.  If the remote device either loses its link key for connecting to Windows, or if this key becomes corrupt, Windows will no longer be able to connect to this device.  To resolve this, the user must go to the Wireless control panel, remove the device, and then re-add the device. 


