Intermec Technologies BTM210 Bluetooth Radio Module User Manual CN2Busermanual

Intermec Technologies Corporation Bluetooth Radio Module CN2Busermanual

User Manual 3 of 3

Download: Intermec Technologies BTM210 Bluetooth Radio Module User Manual CN2Busermanual
Mirror Download [FCC.gov]Intermec Technologies BTM210 Bluetooth Radio Module User Manual CN2Busermanual
Document ID616396
Application IDh60xtaPO7pTcC6TQEvTrJw==
Document DescriptionUser Manual 3 of 3
Short Term ConfidentialNo
Permanent ConfidentialNo
SupercedeNo
Document TypeUser Manual
Display FormatAdobe Acrobat PDF - pdf
Filesize183.59kB (2294823 bits)
Date Submitted2005-12-31 00:00:00
Date Available2005-12-30 00:00:00
Creation Date2005-11-30 08:21:18
Producing SoftwareAcrobat Distiller 6.0 (Windows)
Document Lastmod2005-11-30 12:00:41
Document TitleCN2Busermanual.book
Document CreatorFrameMaker 7.2
Document Author: ThingA

Programming
The following programming information pertains to the CN2B Mobile
Computer:
• Creating CAB Files (page 126)
• Customization and Lockdown (page 140)
• FTP Server (page 141)
• Kernel I/O Controls (page 150)
• Network Selection APIs (page 161)
• Notifications (page 181)
• Reboot Functions (page 182)
• Remapping the Keypad (page 182)
CN2B Mobile Computer User’s Manual
125
Chapter 7 — Programming
Creating CAB Files
The Windows CE operating system uses a .CAB file to install an application on a Windows CE-based device. A .CAB file is composed of multiple
files that are compressed into one file. Compressing multiple files into one
file provides the following benefits:
• All application files are present.
• A partial installation is prevented.
• The application can be installed from several sources, such as a desktop
computer or a Web site.
Use the CAB Wizard application (CABWIZ.EXE) to generate a .CAB file
for your application.
Creating Device-Specific CAB Files
Do the following to create a device-specific .CAB file for an application, in
the order provided:
1 Create an .INF file with Windows CE-specific modifications (see below).
2 Optional Create a SETUP.DLL file to provide custom control of the
installation process (page 136).
3 Use the CAB Wizard to create the .CAB file, using the .INF file, the
optional SETUP.DLL file, and the device-specific application files as
parameters (page 139).
Creating an .INF File
An .INF file specifies information about an application for the CAB Wizard. Below are the sections of an .INF file:
[Version]
This specifies the file creator, version, and other relevant information.
Required? Yes
• Signature:
“$Windows NT$”
“signature_name”
• Provider:
“INF_creator”
The company name of the application, such as “Microsoft.”
• CESignature
“$Windows CE$”
Example
[Version]
Signature = “$Windows NT$”
Provider = “Intermec”
CESignature = “$Windows CE$”
126
CN2B Mobile Computer User’s Manual
Chapter 7 — Programming
[CEStrings]
This specifies string substitutions for the application name and the default
installation directory.
Required? Yes
• AppName:
app_name
Name of the application. Other instances of %AppName% in the .INF
file are replaced with this string value, such as RP32.
• InstallDir:
default_install_dir
Default installation directory on the device. Other instances of %InstallDir% in the .INF file are replaced with this string value. Example:
\SDMMC_Disk\%AppName%
Example
[CEStrings]
AppName=“Game Pack”
InstallDir=%CE1%\%AppName%
[Strings]
This section is optional and defines one or more string keys. A string key
represents a string of printable characters.
Required? No
• string_key:
value
String of letters, digits, or other printable characters. Enclose value in
double quotation marks ““”” if the corresponding string key is used in an
item that requires double quotation marks. No string_keys is okay.
Example
[Strings]
reg_path = Software\Intermec\My Test App
[CEDevice]
Describes the targeted application platform. All keys are optional. If a key is
nonexistent or has no data, Windows CE does not perform any checking
with the exception being UnsupportedPlatforms. If the UnsupportedPlatforms
key exists but no data, the previous value is not overridden.
Required? Yes
• ProcessorType:
processor_type
The value that is returned by SYSTEMINFO.dwProcessorType.For
example, the value for the ARM CPU is 2577
• UnsupportedPlatforms:
platform_family_name
This lists known unsupported platform family names. If the name specified in the [CEDevice.xxx] section is different from [CEDevice], both
platform_family_name values are unsupported for the microprocessor
specified by xxx. The unsupported platform family names list is
appended to the previous list. Application Manager does not display the
CN2B Mobile Computer User’s Manual
127
Chapter 7 — Programming
application for an unsupported platform. Also, a user is warned during
the setup process if the .CAB file is copied to an unsupported device.
Example
[CEDevice]
UnsupportedPlatforms = pltfrm1 ; pltfrm1 is unsupported
[CEDevice.SH3]
UnsupportedPlatforms = ; pltfrm1 is still unsupported
• VersionMin:
minor_version
Numeric value returned by OSVERSIONINFO.dwVersionMinor. The
.CAB file is valid for the currently connected device if the version of this
device is greater than or equal to VersionMin.
• VersionMax:
major_version
Numeric value returned by OSVERSIONINFO.dwVersionMajor. The
.CAB file is valid for the currently connected device if the version of this
device is less than or equal to VersionMax.
• BuildMin:
build_number
Numeric value returned by OSVERSIONINFO.dwBuildNumber. The
.CAB file is valid for the currently connected device if the version of this
device is greater than or equal to BuildMin.
• BuildMax:
build_number
Numeric value returned by OSVERSIONINFO.dwBuildNumber. The
.CAB file is valid for the currently connected device if the version of this
device is less than or equal to BuildMax.
Example
This shows three [CEDevice] sections: one giving basic information for any
CPU and two specific to the SH3 and the MIPS microprocessors.
[CEDevice] ; A “template” for all platforms
UnsupportedPlatforms = pltfrm1; Does not support pltfrm1
; The following specifies version 1.0 devices only.
VersionMin = 1.0
VersionMax = 1.0
[CEDevice.ARM]; Inherits all [CEDevice] settings
; This will create a .CAB file specific to ARM devices.
ProcessorType = 2577; ARM .cab file is valid for ARM microprocessors.
UnsupportedPlatforms = ; pltfrm1 is still unsupported
; The following overrides the version settings so that no version checking is
performed.
VersionMin =
VersionMax =
[CEDevice.MIPS] ; Inherits all [CEDevice] settings
; This will create a .CAB file specific to “MIPS” devices.
ProcessorType = 4000; MIPS .CAB file is valid for MIPS microprocessor.
UnsupportedPlatforms =pltfrm2; pltfrm1, pltfrm2 unsupported for MIPs .CAB
file.
128
CN2B Mobile Computer User’s Manual
Chapter 7 — Programming
Note: To create the two CPU-specific .CAB files for the SETUP.INF file in
the previous example, run the CAB Wizard with the “/cpu arm mips”
parameter.
[DefaultInstall]
This describes the default installation of your application. Note that under
this section, you will list items expanded upon later in this description.
Required? Yes
• Copyfiles:
copyfile_list_section
Maps to files defined later in the .INF file, such as Files.App, Files.Font,
and Files.Bitmaps.
• AddReg:
add_registry_section
Example: RegSettings.All
• CEShortcuts:
shortcut_list_section
String that identifies one more section that defines shortcuts to a file, as
defined in the [CEShortcuts] section.
• CESetupDLL:
setup_DLL
Optimal string that specifies a SETUP.DLL file. It is written by the
Independent Software Vendor (ISV) and contains customized functions
for operations during installation and removal of the application. The
file must be specified in the [SourceDisksFiles] section.
• CESelfRegister:
self_reg_DLL_filename
String that identifies files that self-register by exporting the DllRegisterServer and DllUnregisterServer Component Object Model (COM)
functions. Specify these files in the [SourceDiskFiles] section. During
installation, if installation on the device fails to call the file’s exported
DllRegisterServer function, the file’s exported DllUnregisterServer
function is not called during removal.
Example
[DefaultInstall]
AddReg = RegSettings.All
CEShortcuts = Shortcuts.All
[SourceDiskNames]
This section describes the name and path of the disk on which your application resides.
Required? Yes
• disk_ordinal:
disk_label,,path
1=,“App files” , C:\Appsoft\RP32\...
2=,“Font files”,,C:\RpTools\...
3=,“CE Tools” ,,C:\windows ce tools...
• CESignature: “$Windows CE$”
CN2B Mobile Computer User’s Manual
129
Chapter 7 — Programming
Example
[SourceDisksNames]; Required section
1 = ,“Common files”,,C:\app\common; Using an absolute path
[SourceDisksNames.SH3]
2 = ,“SH3 files”,,sh3; Using a relative path
[SourceDisksNames.MIPS]
2 = ,“MIPS files”,,mips; Using a relative path
[SourceDiskFiles]
This describes the name and path of the files in which your application
resides.
Required? Yes
• filename:
disk_number[,subdir]
RPM.EXE = 1,c:\appsoft\...
WCESTART.INI = 1
RPMCE212.INI = 1
TAHOMA.TTF = 2
Note: [,subdir] is relative to the location of the INF file.
Example
[SourceDisksFiles]; Required section
begin.wav = 1
end.wav = 1
sample.hlp = 1
[SourceDisksFiles.SH3]
sample.exe = 2; Uses the SourceDisksNames.SH3 identification of 2.
[SourceDisksFiles.MIPS]
sample.exe = 2; Uses the SourceDisksNames.MIPS identification of 2.
[DestinationDirs]
This describes the names and paths of the destination directories for the
application on the target device. Note Windows CE does not support directory
identifiers.
Required? Yes
• file_list_section:0,subdir
String that identifies the destination directory. The following list shows
the string substitutions supported by Windows CE. Use these only for
the beginning of the path. \
%CE1%
\Program Files
%CE2%
\Windows
%CE3%
\My Documents
%CE4%
\Windows\Startup
%CE5%
\My Documents
%CE6%
\Program Files\Accessories
%CE7%
\Program Files\Communication
%CE8%
\Program Files\Games
130
CN2B Mobile Computer User’s Manual
Chapter 7 — Programming
%CE9%
\Program Files\Pocket Outlook
%CE10%
\Program Files\Office
%CE11%
\Windows\Start Menu\Programs
%CE12%
\Windows\Start Menu\Programs\Accessories
%CE13%
\Windows\Start Menu\Programs\Communications
%CE14%
\Windows\Start Menu\Programs\Games
%CE15%
\Windows\Fonts
%CE16%
\Windows\Recent
%CE17%
\Windows\Start Menu
%InstallDir%
Contains the path to the target directory selected during installation. It is
declared in the [CEStrings] section
%AppName%
Contains the application name defined in the [CEStrings] section.
Example
[DestinationDirs]
Files.Common = 0,%CE1%\My Subdir; \Program Files\My Subdir
Files.Shared = 0,%CE2%; \Windows
[CopyFiles]
This section, under the [DefaultInstall] section, describes the default files
to copy to the target device. Within the [DefaultInstall] section, files were
listed that must be defined elsewhere in the INF file. This section identifies
that mapping and may contain flags.
Required? Yes
• copyfile_list_section:
destination_filename,[source_filename]
The source_filename parameter is optional if it is the same as
destination_filename.
• copyfile_list_section:
flags
The numeric value that specifies an action to do while copying files. The
following table shows values supported by Windows CE.
Flag
Value
Description
COPYFLG_WARN_IF_SKIP
0x00000001
Warn user if skipping a file is attempted after error.
COPYFLG_NOSKIP
0x00000002
Do not allow a user to skip copying a file.
COPYFLG_NO_OVERWRITE
0x00000010
Do not overwrite files in destination directory.
COPYFLG_REPLACEONLY
0x00000400
Copy the source file to the destination directory only if
the file is already in the destination directory.
CE_COPYFLG_NO_DATE_DIALOG
0x20000000
Do not copy files if the target file is newer.
CE_COPYFLG_NODATECHECK
0x40000000
Ignore date while overwriting the target file.
CE_COPYFLG_SHARED
0x80000000
Create a reference when a shared DLL is counted.
CN2B Mobile Computer User’s Manual
131
Chapter 7 — Programming
Example
[DefaultInstall.SH3]
CopyFiles = Files.Common, Files.SH3
[DefaultInstall.MIPS]
CopyFiles = Files.Common, Files.MIPS
[AddReg]
This section, under the [DefaultInstall] section, is optional and describes
the keys and values that the .CAB file adds to the device registry. Within
the [DefaultInstall] section, a reference may have been made to this section, such as “AddReg=RegSettings.All”. This section defines the options
for that setting.
Required? No
• add_registry_section:registry_root_string
String that specifies the registry root location. The following list shows
the values supported by Windows CE.
• HKCR
Same as HKEY_CLASSES_ROOT
• HKCU
Same as HKEY_CURRENT_USER
• HKLM
Same as HKEY_LOCAL_MACHINE
• add_registry_section:value_name
Registry value name. If empty, the “default” registry value name is used.
• add_registry_section:flags
Numeric value that specifies information about the registry key. The following table shows the values that are supported by Window CE.
Flag
Value
Description
FLG_ADDREG_NOCLOBBER
0x00000002
If the registry key exists, do not overwrite it. Can be used
with any of the other flags in this table.
FLG_ADDREG_TYPE_SZ
0x00000000
REG_SZ registry data type.
FLG_ADDREG_TYPE_MULTI_SZ
0x00010000
REG_MULTI_SZ registry data type. Value field that
follows can be a list of strings separated by commas.
FLG_ADDREG_TYPE_BINARY
0x00000001
REG_BINARY registry data type. Value field that follows must be a list of numeric values separated by commas, one byte per field, and must not use the 0x
hexadecimal prefix.
FLG_ADDREG_TYPE_DWORD
0x00010001
REG_DWORD data type. The noncompatible format
in the Win32 Setup .INF documentation is supported.
Example
AddReg = RegSettings.All
[RegSettings.All]
HKLM,%reg_path%,,0x00000000,alpha;  = “alpha”
HKLM,%reg_path%,test,0x00010001,3; Test = 3
HKLM,%reg_path%\new,another,0x00010001,6; New\another = 6
132
CN2B Mobile Computer User’s Manual
Chapter 7 — Programming
[CEShortCuts]
This section, a Windows CE-specific section under the [DefaultInstall]
section, is optional and describes the shortcuts that the installation application creates on the device. Within the [DefaultInstall] section, a reference
may have been made to this section, such as “ShortCuts.All”. This section
defines the options for that setting.
Required? No
• shortcut_list_section:shortcut_filename
String that identifies the shortcut name. It does not require the .LNK
extension.
• shortcut_list_section:shortcut_type_flag
Numeric value. Zero or empty represents a shortcut to a file; any nonzero numeric value represents a shortcut to a folder.
• shortcut_list_section:target_file_path
String value that specifies the destination location. Use the target file
name for a file, such as MyApp.exe, that must be defined in a file copy
list. For a path, use a file_list_section name defined in the [DestinationDirs] section, such as DefaultDestDir, or the %InstallDir% string.
• shortcut_list_section:standard_destination_path
Optional string value. A standard %CEx% path or %InstallDir%. If no
value is specified, the shortcut_list_section name of the current section or
the DefaultDestDir value from the [DestinationDirs] section is used.
Example
CEShortcuts = Shortcuts.All
[Shortcuts.All]
Sample App,0,sample.exe; Uses the path in DestinationDirs. Sample App,0,sample.exe,%InstallDir%; The path is explicitly specified.
Sample .INF File
[Version]; Required section
Signature = “$Windows NT$”
Provider = “Intermec Technologies Corporation”
CESignature = “$Windows CE$”
;[CEDevice]
;ProcessorType =
[DefaultInstall]; Required section
CopyFiles = Files.App, Files.Fonts, Files.BitMaps, Files.Intl, Files.TelecomNcsCE, Files.Windows, Files.Import, Files.Export, Files.Work, Files.Database, Files.WinCE AddReg = RegSettings.All ;CEShortcuts = Shortcuts.All
[SourceDisksNames]; Required section
1 = ,“App files” ,,c:\appsoft\...
2 = ,”Font files” ,,c:\WinNT\Fonts
3 = ,”CE Tools” ,,c:\windows ce tools\wce400\700ie\mfc\lib\x86
[SourceDisksFiles]; Required section
rpm.exe
= 1,C:\Appsoft\program\wce400\WCEX86Rel700
CN2B Mobile Computer User’s Manual
133
Chapter 7 — Programming
wcestart.ini = 1
rpmce212.ini = 1
intermec.bmp = 1
rpmlogo.bmp = 1
rpmname.bmp = 1
import.bmp = 1
export.bmp = 1
clock.bmp = 1
printer.bmp = 1
filecopy.bmp = 1
readme.txt = 1
lang_eng.bin = 1
rpmdata.dbd = 1,database\wce1
tahoma.ttf = 2
mfcce212.dll = 3
olece212.dll = 3
olece211.dll = 1,c:\windows ce tools\wce400\NMSD61102.11\mfc\lib\x86
rdm45wce.dll = 1,c:\rptools\rdm45wce\4_50\lib\wce400\wcex86rel
picfmt.dll = 1,c:\rptools\picfmt\1_00\wce400\wcex86rel6110
fmtctrl.dll = 1,c:\rptools\fmtctrl\1_00\wce400\wcex86rel6110
ugrid.dll = 1,c:\rptools\ugrid\1_00\wce400\wcex86rel6110
simple.dll = 1,c:\rptools\pspbm0c\1_00\wce400\wcex86rel
psink.dll = 1,c:\rptools\psink\1_00\wce400\WCEX86RelMinDependency
pslpwce.dll =1,c:\rptools\pslpm0c\1_00\wce400\WCEX86RelMinDependency
npcpport.dll = 1,c:\rptools\cedk\212_03\installable drivers\printer\npcp
;dexcom.dll = 1,c:\rptools\psdxm0c\1_00\x86
ncsce.exe = 1,c:\rptools\ncsce\1_04
nrinet.dll = 1,c:\rptools\ncsce\1_04
[DestinationDirs];Required section
;Shortcuts.All = 0,%CE3% ; \Windows\Desktop
Files.App= 0,%InstallDir%
Files.DataBase= 0,%InstallDir%\DataBase
Files.BitMaps= 0,%InstallDir%\Bitmaps
Files.Fonts= 0,%InstallDir%\Fonts
Files.Intl= 0,%InstallDir%\Intl
Files.TelecomNcsCE= 0,%InstallDir%\Telecom\NcsCE
Files.Windows= 0,%InstallDir%\Windows
Files.Import= 0,%InstallDir%\Import
Files.Export= 0,%InstallDir%\Export
Files.Work= 0,%InstallDir%\Work
Files.WinCE= 0,\storage_card\wince
[CEStrings]; Required section
AppName = Rp32
InstallDir = \storage_card\%AppName%
[Strings]; Optional section
;[Shortcuts.All]
;Sample App,0,sample.exe; Uses the path in DestinationDirs.
;Sample App,0,sample.exe,%InstallDir%; The path is explicitly specified.
[Files.App]
rpm.exe,,,0
rpm.ini,rpmce212.ini,,0
mfcce212.dll,,,0
olece212.dll,,,0
olece211.dll,,,0
rdm45wce.dll,,,0
134
CN2B Mobile Computer User’s Manual
Chapter 7 — Programming
picfmt.dll,,,0
fmtctrl.dll,,,0
ugrid.dll,,,0
simple.dll,,,0
psink.dll,,,0
pslpwce.dll,,,0
npcpport.dll,,,0
;dexcom.dll,,,0
[Files.DataBase]
rpmdata.dbd,,,0
[Files.Fonts]
tahoma.ttf,,,0
[Files.BitMaps]
intermec.bmp,,,0
rpmlogo.bmp,,,0
rpmname.bmp,,,0
import.bmp,,,0
export.bmp,,,0
clock.bmp,,,0
printer.bmp,,,0
filecopy.bmp,,,0
[Files.Intl]
lang_eng.bin,,,0
[Files.TelecomNcsCE]
ncsce.exe,,,0
nrinet.dll,,,0
[Files.Windows]
readme.txt,,,0
[Files.Import]
readme.txt,,,0
[Files.Export]
readme.txt,,,0
[Files.Work]
readme.txt,,,0
[Files.WinCE]
wcestart.ini,,,0
[RegSettings.All]
HKLM,”SOFTWARE\Microsoft\Shell\AutoHide”,,0x00010001,1; Autohide the taskbar
HKLM,”SOFTWARE\Microsoft\Shell\OnTop”,,0x00010001,0; Shell is not on top
HKLM,”SOFTWARE\Microsoft\Clock”,SHOW_CLOCK,0x00010001,0
; Clock is not on taskbar
CN2B Mobile Computer User’s Manual
135
Chapter 7 — Programming
Using Installation Functions in SETUP.DLL
SETUP.DLL is an optional file that enables you to perform custom operations during installation and removal of your application. The following list
shows the functions that are exported by SETUP.DLL.
Note: Use [DefaultInstall] > CESelfRegister (page 129) in the .INF file to
point to SETUP.DLL.
Install_Init
Called before installation begins. Use this function to check the application version when reinstalling an application and to determine if a dependent application is present.
Install_Exit
Called after installation is complete. Use this function to handle errors that occur during application installation.
Uninstall_Init
Called before the removal process begins. Use this function to close the application, if the application is running.
Uninstall_Exit
Called after the removal process is complete. Use this function to save database information to a file
and delete the database and to tell the user where the user data files are stored and how to reinstall
the application.
After the CAB File Extraction
Cab files that need to cause a warm reset after cab extraction need to create
the __RESETMEPLEASE__.TXT file in the “\Windows” directory. The
preferred method to create this file is within the DllMain portion of the
SETUP.DLL file. It looks like this:
#include
#include
#include
#include




// in the public SDK dir
#define IOCTL_TERMINAL_RESET CTL_CODE (FILE_DEVICE_UNKNOWN,FILE_ANY_ACCESS,
2050, METHOD_NEITHER)
BOOL APIENTRY DllMain( HANDLE h, DWORD reason, LPVOID lpReserved )
return TRUE;
} // DllMain
//************************************************************************
// $DOCBEGIN$
// BOOL IsProcessRunning( TCHAR * pname );
//
// Description: Get process table snapshot, look for pname running.
//
// Arguments: pname - pointer to name of program to look for.
// for example, app.exe.
//
// Returns: TRUE - process is running.
//
FALSE - process is not running.
// $DOCEND$
//************************************************************************
136
CN2B Mobile Computer User’s Manual
Chapter 7 — Programming
BOOL IsProcessRunning( TCHAR * pname )
HANDLE hProcList;
PROCESSENTRY32 peProcess;
DWORD thDeviceProcessID;
TCHAR lpname[MAX_PATH];
if ( !pname || !*pname ) return FALSE;
_tcscpy( lpname, pname );
_tcslwr( lpname );
hProcList = CreateToolhelp32Snapshot( TH32CS_SNAPPROCESS, 0 );
if ( hProcList == INVALID_HANDLE_VALUE ) {
return FALSE;
} // end if
memset( &peProcess, 0, sizeof(peProcess) );
peProcess.dwSize = sizeof(peProcess);
if ( !Process32First( hProcList, &peProcess ) ) {
CloseToolhelp32Snapshot( hProcList );
return FALSE;
} // end if
thDeviceProcessID = 0;
do {
_tcslwr( peProcess.szExeFile );
if ( _tcsstr( peProcess.szExeFile, lpname ) ) {
thDeviceProcessID = peProcess.th32ProcessID;
break;
} // end if
} while ( Process32Next( hProcList, &peProcess ) );
if ( ( GetLastError() == ERROR_NO_MORE_FILES ) && ( thDeviceProcessID == 0 ) )
CloseToolhelp32Snapshot( hProcList );
return FALSE;
} // end if
CloseToolhelp32Snapshot( hProcList );
return TRUE;
} // IsProcessRunning
codeINSTALL_INIT Install_Init(
HWND hwndParent,
BOOL fFirstCall,
BOOL fPreviouslyInstalled,
LPCTSTR pszInstallDir )
return codeINSTALL_INIT_CONTINUE;
codeINSTALL_EXIT Install_Exit (
HWND hwndParent,
LPCTSTR pszInstallDir,
CN2B Mobile Computer User’s Manual
137
Chapter 7 — Programming
WORD cFailedDirs,
WORD cFailedFiles,
WORD cFailedRegKeys,
WORD cFailedRegVals,
WORD cFailedShortcuts )
HANDLE h;
TCHAR srcfile[MAX_PATH];
TCHAR dstfile[MAX_PATH];
if (cFailedDirs || cFailedFiles || cFailedRegKeys ||
cFailedRegVals || cFailedShortcuts)
return codeINSTALL_EXIT_UNINSTALL;
if ( IsProcessRunning( L”autocab.exe” ) )
h = CreateFile( L”\\Windows\\__resetmeplease__.txt”,
(GENERIC_READ | GENERIC_WRITE), 0, NULL, CREATE_ALWAYS,
FILE_ATTRIBUTE_HIDDEN, NULL );
if ( h != INVALID_HANDLE_VALUE )
CloseHandle( h );
else
// Couldn’t create the file. If it failed because the file already exists, it
is not fatal.
// Otherwise, notify user of the inability to reset the device and they will
have to
// perform it manually after all of the installations are complete.
} // end if
else
DWORD dret;
h = CreateFile( L”SYI1:”,
(GENERIC_WRITE | GENERIC_READ), 0, NULL, OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL, NULL );
// Force a warm start NOW.
if ( h != INVALID_HANDLE_VALUE )
DeviceIoControl( h, IOCTL_TERMINAL_RESET, NULL, 0, NULL, 0, &dret, NULL);
// Won’t return, but we’ll show clean up anyway
CloseHandle( h );
else
// Couldn’t access SYSIO. Notify user.
} // end if
} // end if
return codeINSTALL_EXIT_DONE;
codeUNINSTALL_INIT
Uninstall_Init(
HWND hwndParent,
138
CN2B Mobile Computer User’s Manual
Chapter 7 — Programming
LPCTSTR pszInstallDir ) {
// TODO: Perform the reverse of INSTALL_INIT here
return codeUNINSTALL_INIT_CONTINUE;
codeUNINSTALL_EXIT
Uninstall_Exit(HWND hwndParent) {
// TODO: Perform the reverse of INSTALL_EXIT here
return codeUNINSTALL_EXIT_DONE;
The system software looks for the following directory structure and files on
the installed media card whether it be a Secure Digital card or embedded
flash file system. No other folders need exist.
\2577\autorun.exe
\2577\autorun.dat
\2577\autocab.exe
\2577\autocab.dat
\cabfiles\*.cab
Creating CAB Files with CAB Wizard
After you create the .INF file and the optional SETUP.DLL file, use the
CAB Wizard to create the .CAB file. The command-line syntax for the
CAB Wizard is as follows:
cabwiz.exe “inf_file” [/dest dest_directory] [/err error_file] [/cpu cpu_type
[cpu_type]]
A batch file, located in  directory, with the following commands, works well:
cabwiz.exe c:\appsoft\\
cd \appsoft\
“inf_file”
The SETUP.INF file path.
dest_directory
The destination directory for the .CAB files. If no directory is specified, the .CAB files are created
in the “inf_file” directory.
error_file
The file name for a log file that contains all warnings and errors that are encountered when the
.CAB files are compiled. If no file name is specified, errors are displayed in message boxes. If a file
name is used, the CAB Wizard runs without the user interface (UI); this is useful for automated
builds.
cpu_type
Creates a .CAB file for each specified microprocessor tag, which is a label used in the Win32
SETUP.INF file to differentiate between different microprocessor types. The /cpu parameter, followed by multiple cpu_type values, must be the last qualifier in the command line.
CN2B Mobile Computer User’s Manual
139
Chapter 7 — Programming
Example
This example creates .CAB files for the ARM and MIPS microprocessors,
assuming the Win32 SETUP.INF file contains the ARM and MIPS tags:
cabwiz.exe “c:\myfile.inf” /err myfile.err /cpu arm mips
Note: CABWIZ.EXE, MAKECAB.EXE, and CABWIZ.DDF (Windows
CE files available on the Windows CE Toolkit) must be installed in the
same directory on the desktop computer. Call CABWIZ.EXE using its full
path for the CAB Wizard application to run correctly.
Troubleshooting the CAB Wizard
To identify and avoid problems that might occur when using the CAB
Wizard, follow these guidelines:
• Use %% for a percent sign (%) character when using this character in an
.INF file string, as specified in Win32 documentation. This does not
work under the [Strings] section.
• Do not use .INF or .CAB files created for Windows CE to install applications on Windows-based desktop platforms.
• Ensure the MAKECAB.EXE and CABWIZ.DDF files, included with
Windows CE, are in the same directory as CABWIZ.EXE.
• Use the full path to call CABWIZ.EXE.
• Do not create a .CAB file with the MAKECAB.EXE file included with
Windows CE. You must use CABWIZ.EXE, which uses MAKECAB.EXE to generate the .CAB files for Windows CE.
• Do not set the read-only attribute for .CAB files.
Customization and Lockdown
Pocket PC (Windows Mobile) is a hardware specification created by
Microsoft Corporation. Devices that wish to carry the Pocket PC logo must
meet the minimum hardware requirements set in the Pocket PC specification. Manufacturers are free to add extra hardware functionality.
Pocket PC devices also use a specialized version of the CE operating system.
This operating system is built from Windows CE 4.2 but contains customizations, most notably the lack of a desktop and the addition of the Today
Screen.
To carry the Pocket PC logo, all devices must be tested at an Independent
Test Laboratory. The ITL testing is done based on Microsoft requirements.
The test lab then reports the findings back to Microsoft Corporation and
Intermec Technologies. If the CN2B Computer passed all tests, Intermec is
allowed to ship the device with the Pocket PC logo. Each time the operating system is modified, Intermec must resubmit to ITL testing.
140
CN2B Mobile Computer User’s Manual
Chapter 7 — Programming
This means we cannot change the operating system much and still be a
Pocket PC device. For example, if we remove Word from the Start menu,
the device would fail ITL testing and we would not be able to ship devices
with the Pocket PC logo.
Although many customers want a Pocket PC device, some customers would
prefer that their users not have access to all of the Pocket PC features. Intermec cannot customize the operating system in any way but a custom application can:
• Delete items from the Start menu and Programs folder. These items are
just shortcuts in the file system so the application is not really being
deleted. Cold booting the device brings these items back so the application will need to be run on every cold boot.
• Use the RegFlushKey() API to save a copy of the registry to a storage
device. See the CN2B Management Tools portion for more information
on how to do this. Saving a copy of the registry restores most system settings in a cold boot situation.
• Use the SHFullScreen() API in conjunction with other APIs to make the
application take up the entire display and prevent the start menu from
being available.
• Remap keys and disable keys on the keypad.
• Create a custom SIP.
• Make changes to the registry to configure the device.
Should you want your CN2B Computer to display a full screen, keep in
mind that your computer is Pocket-PC certified by Microsoft Corporation.
Check out resources on programming for the Pocket PC, using the following links. These give full instructions on how to display full screen.
• Instructions on how to create a full screen application for eVC++ applications using an SHFullScreen() API:
support.microsoft.com/support/kb/articles/Q266/2/44.ASP
• Instructions on how to create a full screen application for eVB applications also using the SHFullScreen() API:
support.microsoft.com/support/kb/articles/Q265/4/51.ASP
FTP Server
FTP support is provided through the FTP Server application FTPDCE.EXE (MS Windows CE Versions) which is provided as part the base
system.
FTPDCE is the Internet File Transfer Protocol (FTP) server process. The
server can be invoked from an application or command line. Besides servicing FTP client requests the FTP Server also send a “network announcement” to notify prospective clients of server availability.
CN2B Mobile Computer User’s Manual
141
Chapter 7 — Programming
Note: You should consult the RFC959 specification for proper use of some
of these commands at the following URL:
• www.ietf.org/rfc/rfc959.txt for the text version, or
• www.w3.org/Protocols/rfc959/ for an html version.
Do the following to send commands:
1 Start an FTP client and connect to the device FTP server.
2 Log in with “intermec” as the user name and “cr52401” for the password.
3 From the FTP client, send the command.
4 Wait for a response.
Synopsis
ftpdce [ options ]
Options
–Aaddr
(where addr is in the form of a.b.c.d) Sets the single target address to which to send the network
announcement. Default is broadcast.
–Bbyte
Sets the FTP data block size. Smaller sizes may be useful over slower links. Default is 65536.
–Cname
Sets the device name. Used by Intermec management software.
–Fvalue
Disables the default Intermec account. A value of “0” disables the account. Default is “1”. Note that
disabling the default account without providing a working access control list on the server will
result in a device that will not accept any FTP connections.
–Hsec
Sets the interval between network announcements in seconds.“0” turns the network announcement off. Default is 30 seconds.
–Iaddr
(where addr is in the form of a.b.c.d) Sets the preferred 6920 Communications Server (optional).
–Llog
(where log is either “0” or “1”) Sets the state of logging. Default is 0 (disabled).
–Nsec
Specifies the number of seconds to wait before initially starting FTP server services.
–Pport
Sets the UDP port on which the network announcement are sent. Default port is 52401.
–Qport
Sets the port on which the FTP Server will listen for connections. Default port is 21.
–Rdir
Sets the FTP mount point to this directory. Default is the root folder of the object store.
–Tscrip
Sets the script name for the 6920 Communications Server to process.
–Uurl
Sets the default URL for this device.
–Z“parms”
Sets extended parameters to be included in the network announcement.
142
CN2B Mobile Computer User’s Manual
Chapter 7 — Programming
Configurable Parameters Via the Registry Editor
The following parameters receive default values during the installation of
the Intermec FTP Server components. A few of the parameters are visible in
the registry by default, but most must be created to modify the default
behavior of the FTP server.
BlockSize
Setting this parameter configures the Intermec FTP Server to transmit and
receive Ethernet packets using the specified data block size. By default, the
FTP server transmits and receives data using a 64K data block size. Adjusting this value may be useful in certain wireless TCP/IP installations.
Key
HKLM\Software\Intermec\IFTP
Value Type
REG_DWORD - data block size, in bytes.
Valid Range
0x100-0x10000 (256-65536 decimal).
Default
65536
DeviceName
This parameter configures the Intermec FTP Server to include the specified
device name in the Intermec Device Network Announcement (IDNA).
Adjusting this value may be useful in assigning a symbolic name to this
device for asset tracking.
Key
HKLM\Software\Intermec\IFTP
Value Type
REG_SZ
Valid Range
None.
Default
None.
DeviceURL
This parameter configures the Intermec FTP Server to transmit the specified URL in the IDNA. This can be used by Intermec management software for asset management.
Key
HKLM\Software\Intermec\IFTP
Value Type
REG_SZ
Valid Range
None.
Default
None.
CN2B Mobile Computer User’s Manual
143
Chapter 7 — Programming
IDNATarget
This parameter configures the Intermec FTP Server to transmit the IDNA
to a specific destination instead of a general UDP broadcast. This parameter is useful on networks that do not allow UDP broadcasts to be routed
between subnets. The use of this parameter restricts the reception of the
IDNA to the target destination only.
Key
HKLM\Software\Intermec\IFTP
Value Type
REG_SZ
Valid Range
None.
Default
None.
ManifestName
This parameter configures the Intermec FTP Server to transmit the specified manifest name in the IDNA. This parameter is used by the Intermec
6920 Communications Server for communication transactions. See 6920
Communications Server documentation for proper use of this parameter.
Key
HKLM\Software\Intermec\IFTP
Value Type
REG_SZ
Valid Range
None.
Default
iftp.ini
PauseAtStartup
This configures the Intermec FTP Server to sleep for the specified number
of seconds before making the FTP service available on the device.
Key
HKLM\Software\Intermec\IFTP
Value Type
REG_DWORD - stored in seconds.
Valid Range
None.
Default
Root
This parameter configures the Intermec FTP Server to set the root of the
FTP mount point to the specified value. Note that this must map to an existing directory or you will not be able to log into the FTP Server.
144
Key
HKLM\Software\Intermec\IFTP
Value Type
REG_SZ
Valid Range
None.
Default
CN2B Mobile Computer User’s Manual
Chapter 7 — Programming
Transferring Files Over TCP/IP Networks
The File Transfer Protocol (FTP) server transfers files over TCP/IP networks. The FTPDCE.EXE program is a version that does not display a
window, but can run in the background.
FTPDCE is the Internet File Transfer Protocol (FTP) server process. The
server can be invoked from an application or command line. Besides servicing FTP client requests, the FTP Server also sends a “network announcement” to notify prospective clients of server availability.
The FTP Server currently supports the following FTP requests:
CDUP
Changes to the parent directory of the current working directory.
CWD
Changes working directory.
DELE
Deletes a file.
HELP
Gives help information.
LIST
(This FTP request is the same as the ls -lgA command). Gives list files in a directory.
MKD
Makes a directory.
MODE
(Always Uses Binary). Specifies data transfer mode.
NLST
(Not supported) Gives a name list of files in directory (this request is the same as the ls command).
NOOP
Does nothing.
PASS
Specifies a password.
PWD
Prints the current working directory.
QUIT
Terminates session.
RETR
Retrieves a file.
RMD
Removes a directory.
RNFR
Specifies rename-from file name.
RNTO
Specifies rename-to file name.
STOR
Stores a file.
SYST
Shows the operating system type of server system.
TYPE
(Binary transfers only.) Specifies the data transfer type with the Type parameter.
USER
Specifies user name.
XCUP
(Not Normally Used) Changes the parent directory of the current working directory.
XCWD
(Not Normally Used) Changes the current directory.
XMKD
(Not Normally Used) Creates a directory.
XPWD
(Not Normally Used) Prints the current working directory.
XRMD
(Not Normally Used) Removes a directory.
CN2B Mobile Computer User’s Manual
145
Chapter 7 — Programming
SITE
The following extended OEM commands are supported by the SITE request. For Microsoft FTP clients,
you can send site commands by preceding the command with “quote” such as “quote site status.”
ATTRIB
Gets or sets the attributes of a given file. (SITE ATTRIB)
Usage:
QUOTE SITE ATTRIB [+R | -R] [+A | -A ] [+S | -S] [+H | -H] [[path]
filename]
+ Sets an attribute.
– Clears an attribute.
R Read-only file attribute.
A Archive file attribute.
S System file attribute.
H Hidden file attribute.
To retrieve the attributes of a file, only specify the file. The server response
will be: 200-AD SHRCEIX filename
To retrieve the attributes of a file, only specify the file. The server response will be:
200-AD SHRCEIX filename
If the flag exists in its position shown above, it is set. Also, in addition to the values
defined above, there is also defined:
C Compressed file attribute.
E Encrypted file attribute.
I INROM file attribute.
X XIP file attribute (execute in ROM, not shadowed in RAM).
BOOT
Reboots the server OS. This will cause the system on which the server is executing to
reboot. The FTP Server will shut down cleanly before reboot. All client connections will
be terminated. Cold boot is default except for the PocketPC build in which the default is
warm boot. (SITE BOOT)
Usage:
COPY
EXIT
Copies a file from one location to another. (SITE COPY)
Usage:
QUOTE SITE COPY [source] [destination]
Example:
QUOTE SITE COPY ‘\Storage Card\one.dat’
‘\Storage Card\two.dat’
Exits the FTP Server. This command will shut down the FTP Server thus terminating all
client connections. (SITE EXIT)
Usage:
HELP
QUOTE SITE HELP [command]
Terminates a running program. (SITE KILL)
Usage:
146
QUOTE SITE EXIT
Gives site command help information. (SITE HELP)
Usage:
KILL
QUOTE SITE BOOT [WARM | COLD]
QUOTE SITE KILL [program | pid]
CN2B Mobile Computer User’s Manual
Chapter 7 — Programming
LOG
Opens or closes the program log. (SITE LOG)
Usage:
PLIST
Lists the running processes (SITE PLIST)
Usage:
RUN
STATUS
Usage:
QUOTE SITE RUN [program]
Example:
QUOTE SITE RUN ‘\Storage Card\app.exe’
Returns the current settings of the FTP Server. MAC, serial number, model, IP address,
network announcement information as well as OS memory usage are returned. (SITE
STATUS)
QUOTE SITE EVAL [command]
Gives site command general value information. (SITE HELP)
Usage:
PVAL
QUOTE SITE EKEY [command]
Gives site command electronic value information. (SITE HELP)
Usage:
GVAL
QUOTE SITE TIMEOUT [seconds]
Gives site command electronic key information. (SITE HELP)
Usage:
EVAL
QUOTE SITE STATUS
Toggles idle timeout between 120 to 1200 seconds (2 to 20 minutes). If this timer
expires with no activity between the client and the server, the client connection will be
disconnected. If the optional seconds argument is supplied, the server will set the connection timeout to the number of seconds specified. Default is 120 seconds or 2 minutes.
(SITE TIMEOUT)
Usage:
EKEY
QUOTE SITE PLIST
Starts a program running. If the program to run has spaces in path or filename, wrapping
the name with single quotes is required.
Usage:
TIMEOUT
QUOTE SITE LOG [open [filename]| close]
QUOTE SITE GVAL [command]
Gives site command value information. (SITE HELP)
Usage:
QUOTE SITE PVAL [command]
The remaining FTP requests specified in RFC 959 are recognized, but not
implemented.
The banner returned in the parenthetical portion of its greeting shows the
version number of the FTP Server as well as the MAC address, serial number and operating system of the machine hosting the server.
The FTP Server supports browsing from the latest Netscape and Microsoft
web browsers. Drag-and-drop capability is available using this environment.
CN2B Mobile Computer User’s Manual
147
Chapter 7 — Programming
The FTPDCMDS subdirectory contains commands to use from the web
browser.
• Click EXITME.BIN to execute a SITE EXIT command.
• Click REBOOTME.BIN to execute SITE BOOT command.
• Use the GET command on these files to have the FTP Server execute
these commands.
• Security:
A customer configurable access control list may be installed on the
CN2B Computer. This list will allow customers to restrict access via
the FTP Server to users they wish and is in addition to default Intermec accounts that are disabled using the -F0 option at runtime.
The access control list is named FTPDCE.TXT and is placed in the
same directory on the CN2B Computer as the FTPDCE.EXE server.
The FTP Server encrypts this file to keep the information safe from
unauthorized users. This file is encrypted when the FTP Server is
started so a file that is placed onto the CN2B Computer after the FTP
Server starts will require a restart of the FTP Server to take effect.
The format of the FTPDCE.TXT is as follows:
FTPDCE:user1!passwd1user2!passwd2user3!pas
swd3...
Note: The user accounts and passwords are case-sensitive. Once the access
control list is encrypted on the CN2B Computer, the FTP Server hides this
file from users. Once an access control list is installed on the CN2B Computer, a new one is not accepted by the FTP Server until the previous one is
removed. Encrypted access control lists are not portable between CN2B
Computers.
Stopping the FTP Server from Your Application
To allow application programmers the ability to programmatically shut
down the FTP Server, the FTP Server periodically tests to see if a named
event is signaled. The name for this event is “ITC_IFTP_STOP” (no
quotes).
For examples on how to use events, consult the Microsoft Developer Network Library at www.msdn.com. The MSDN Library is an essential
resource for developers using Microsoft tools, products, and technologies.
It contains a bounty of technical programming information, including
sample code, documentation, technical articles, and reference guides.
148
CN2B Mobile Computer User’s Manual
Chapter 7 — Programming
Autostart FTP
This automatically starts the FTP Server (FTPDCE.EXE) when the CN2B
Computer is powered on. This is provided with the NDISTRAY program
(the Network Driver Interface Specification tray application), which displays the popup menu that currently allows you to load and unload the network drivers. Tap the antenna icon in the System Tray of the Today screen
(a sample antenna icon is shown below) for this pop-up menu.
Antenna
The default is to start the FTP Server at boot time, unless the following registry entry is defined and set to “0” which disables AutoFTP. “1” enables
the AutoFTP. The entry can be set from the NDISTRAY pop-up menu by
selecting either AutoFTP On or AutoFTP Off.
HKEY_LOCAL_MACHINE\Software\Intermec\Ndistray\StartupIFTP
These new entries are located below the selections to load the network drivers. If the StartupIFTP registry key is not defined, the FTP Server is loaded
by default, to provide “out-of-the-box” capability for customers who want
to begin loading files to the CN2B Computer without prior configuration.
Note: If a network driver is unloaded using the NDISTRAY pop-up menu,
and the FTP Server is running, the FTP Server is stopped.
On a resume, if AutoFTP is enabled and the FTP Server is running, it is
stopped and restarted. NDISTRAY uses a helper application named RESETIFTP to implement the restart on resume feature.
To do an AutoFTP Installation Check:
1 Ensure the FTP Server is running “out-of-the-box” the first time.
2 Tap Start > Today to access the Today screen, then tap the antenna icon
in the System Tray to bring up the NDISTRAY pop-up menu. Select
AutoFTP Off to disable AutoFTP. Perform a warm-boot and confirm
the FTP Server is not running.
CN2B Mobile Computer User’s Manual
149
Chapter 7 — Programming
3 Tap Start > Today to access the Today screen, then tap the antenna icon
in the System Tray to bring up the NDISTRAY pop-up menu. Select
AutoFTP On to enable AutoFTP, reboot, confirm it is running.
4 Unload the network driver when the FTP Server is running and confirm
that it is not running any more.
5 Load the FTP Server, establish a connection, then suspend and resume.
The server should still run, but the FTP connection to the client should
be dropped.
Kernel I/O Controls
This describes the KernelIoControl() functions available to application programmers. Most C++ applications need to prototype the function as the
following to avoid link and compile errors.
extern “C” BOOL KernelIoControl(DWORD dwIoControlCode, LPVOID lpInBuf, DWORD
nInBufSize, LPVOID lpOutBuf, DWORD nOutBufSize, LPDWORD lpBytesReturned);
IOCTL_HAL_GET_DEVICE_INFO
This IOCTL returns either the platform type or the OEMPLATFORM
name based on an input value.
Syntax
BOOL KernelIoControl( IOCTL_HAL_GET_DEVICE_INFO, LPVOID
lpInBuf, DWORD nInBufSize, LPVOID lpOutBuf, DWORD
nOutBufSize, LPDWORD lpBytesReturned );
Parameters
lpInBuf
Points to a DWORD containing either the SPI_GETPLATFORMTYPE or
SPI_GETOEMINFO value.
lpInBufSize
Must be set to sizeof(DWORD).
lpOutBuf
Must point to a buffer large enough to hold the return data of the function. If
SPI_GETPLATFORMTYPE is specified in lpInBuf, then the “PocketPC\0” Unicode string is
returned. If SPI_GETOEMINFO is specified in lpInBuf, then the “Intermec 700\0” Unicode
string is returned.
nOutBufSize
The size of lpOutBuf in bytes. Must be large enough to hold the string returned.
lpBytesReturned
The actual number of bytes returned by the function for the data requested.
Return Values
Returns TRUE if function succeeds. Returns FALSE if the function fails.
GetLastError() may be used to get the extended error value.
150
CN2B Mobile Computer User’s Manual
Chapter 7 — Programming
IOCTL_HAL_ITC_READ_PARM
Usage
#include “oemioctl.h”
Syntax
BOOL KernelIoControl( IOCTL_HAL_ITC_READ_PARM,LPVOID
lpInBuf,DWORD nInBufSize,LPVOID lpOutBuf,DWORD
nOutBufSize,LPDWORD lpBytesReturned );
Parameters
lpInBuf
Points to this structure. See “ID Field Values” below.
struct PARMS {
BYTE id;
BYTE ClassId;
};
nInBufSize
Must be set to the size of the PARMS structure.
lpOutBuf
Must point to a buffer large enough to hold the return data of the function. If this field is set to
NULL and nOutBufSize is set to zero when the function is called the function will return the
number bytes required by the buffer.
nOutBufSize
The size of lpOutBuf in bytes.
lpBytesReturned
Number of bytes returned by the function for the data requested.
Return Values
Returns TRUE if function succeeds. Returns FALSE if the function fails.
GetLastError() may be used to get the error value. Either
ERROR_INVALID_PARAMETER or
ERROR_INSUFFICIENT_BUFFER may be returned when this function
is used to get the error.
ID Field Values
The id field of the PARMS structure may be one of the following values:
ID Field Values
ITC_NVPARM_SERIAL_NUM
This IOCTL returns the serial number of the device in BCD format. Six bytes are returned in the buffer pointed to by
the lpOutBuffer parameter.
ITC_NVPARM_MANF_DATE
This IOCTL returns the device date of manufacture in the BCD YYYY/MM/DD format. Four bytes are returned in
the buffer pointed to by the lpOutBuffer parameter.
ITC_NVPARM_SERVICE_DATE
This IOCTL returns the device’s date of last service in BCD YYYY/MM/DD format. Four bytes are returned in the
buffer pointed to by the lpOutBuffer parameter.
ITC_NVPARM_DISPLAY_TYPE
This returns the device’s display type. One byte is returned in the buffer pointed to by the lpOutBuffer parameter.
CN2B Mobile Computer User’s Manual
151
Chapter 7 — Programming
ID Field Values (continued)
ITC_NVPARM_ECN
This IOCTL returns ECNs applied to the device in a bit array format. Four bytes are returned in the buffer pointed to
by the lpOutBuffer parameter.
ITC_NVPARM_CONTRAST
This IOCTL returns the device default contrast setting. Two bytes are returned in the buffer pointed to by the lpOutBuffer parameter.
ITC_NVPARM_MCODE
This IOCTL returns the manufacturing configuration code for the device. Sixteen bytes are returned in the buffer
pointed to by the lpOutBuffer parameter.
ITC_NVPARM_VERSION_NUMBER
This IOCTL returns the firmware version for various system components. These values for the ClassId field of the
PARMS structure are allowed when ITC_NVPARM_VERSION_NUMBER is used in the id field:
•VN_CLASS_KBD Returns a five-byte string, including null terminator, that contains an ASCII value which represents the keypad microprocessor version in the system.Format of the string is x.xx with a terminating null character.
•VN_CLASS_ASIC Returns a five-byte string, including null terminator, that contains an ASCII value which represents the version of the FPGA firmware in the system.Format of the string is x.xx with a terminating null character.
•VN_CLASS_BOOTSTRAP Returns a five-byte string, including null terminator, that contains an ASCII value
which represents the version of the Bootstrap Loader firmware in the system.Format of the string is x.xx with a terminating null character.
ITC_NVPARM_INTERMEC_SOFTWARE_CONTENT
This IOCTL reads the manufacturing flag bits from the nonvolatile data store that dictates certain software parameters.
A BOOLEAN DWORD is returned in the buffer pointed to by lpOutBuffer that indicates if Intermec Content is
enabled in the XIP regions. TRUE indicates that it is enabled. FALSE indicates that it is not enabled.
ITC_NVPARM_WAN_RI
This reads the state of the WAN ring indicator flag. A BOOLEAN DWORD is returned in the buffer pointed to by
lpOutBuffer that indicates the polarity of the WAN RI signal. TRUE indicates active high. FALSE indicates active low.
ITC_NVPARM_INTERMEC_DATACOLLECTION_SW
This IOCTL reads the state of the data collection software enabled flag. A BOOLEAN DWORD is returned in the
buffer pointer to by lpOutBuffer that indicates the data collection software is to install at boot time. FALSE indicates
the data collection software should not install.
ITC_NVPARM_INTERMEC_DATACOLLECTION_HW
This IOCTL reads the data collection hardware flags. A BYTE is returned in the buffer pointer to by lpOutBuffer that
indicates the type of data collection hardware installed. The maximum possible value returned is
ITC_DEVID_SCANHW_MAX.
•ITC_DEVID_SCANHW_NONE No scanner hardware is installed.
•ITC_DEVID_INTERMEC_EVIO EVIO linear imager is installed.
The high bit indicates whether the S6 scanning engine is installed. The bit mask for this is
ITC_DEVID_S6ENGINE_MASK. A nonzero value indicates that the S6 scanning engine is installed.
ITC_NVPARM_80211_INSTALLED
This IOCTL reads the state of the 802.11b/g radio installed flag. A BOOLEAN DWORD is returned in the buffer
pointed to by lpOutBuffer. TRUE indicates that the 802.11b/g radio is installed. FALSE indicates that no 802.11b/g
radio is installed.
ITC_NVPARM_80211_RADIOTYPE
This IOCTL reads the 802.11b/g radio ID installed by manufacturing. A BYTE is returned in the buffer pointer to by
lpOutBuffer that indicates the type of 802.11b/g radio hardware installed. The maximum possible value returned is
ITC_DEVID_80211RADIO_MAX. The current definitions are:
•ITC_DEVID_80211RADIO_NONE No 802.11b/g radio installed.
•ITC_DEVID_80211RADIO_INTEL_2011B Intel 2011B radio installed.
152
CN2B Mobile Computer User’s Manual
Chapter 7 — Programming
ID Field Values (continued)
ITC_NVPARM_BLUETOOTH_INSTALLED
This IOCTL reads the state of the Bluetooth radio installed flag. A BOOLEAN DWORD is returned in the buffer
pointed to by lpOutBuffer. TRUE indicates that the Bluetooth radio is installed. FALSE indicates that no Bluetooth
radio is installed.
ITC_NVPARM_SERIAL2_INSTALLED
This IOCTL reads the state of the serial 2 (COM2) device installed flag. A BOOLEAN DWORD is returned in the
buffer pointed to by lpOutBuffer. TRUE indicates that the serial 2 device is installed. FALSE indicates that no serial 2
device is installed.
ITC_NVPARM_SIM_PROTECT_HW_INSTALLED
This IOCTL reads the state of the SIM card protection hardware installed flag. A BOOLEAN DWORD is returned in
the buffer pointed to by lpOutBuffer. TRUE indicates that the SIM card protection hardware is installed. FALSE indicates that no SIM card protection hardware is installed.
ITC_NVPARM_SIM_PROTECT_SW_INSTALLED
This IOCTL reads the state of the SIM card protection software installed flag. A BOOLEAN DWORD is returned in
the buffer pointed to by lpOutBuffer. TRUE indicates that the SIM card protection software is installed. FALSE indicates that no SIM card protection software is installed.
ITC_NVPARM_SIM_PROTECT_SW_INSTALLED
This IOCTL reads the state of the SIM card protection software installed flag. A BOOLEAN DWORD is returned in
the buffer pointed to by lpOutBuffer. TRUE indicates that the SIM card protection software is installed. FALSE indicates that no SIM card protection software is installed.
IOCTL_HAL_ITC_WRITE_SYSPARM
Describes and enables the registry save location.
Usage
#include “oemioctl.h”
Syntax
BOOL KernelIoControl( IOCTL_HAL_ITC_WRITE_SYSPARM,LPVOID
lpInBuf,DWORD nInBufSize, LPVOID lpOutBuf, DWORD
nOutBufSize, LPDWORD lpBytesReturned );
Parameters
lpInBuf
A single byte that may be one of the id values. See the following “ID Field Values” table.
nInBufSize
Must be set to the size of the lpInBuf in bytes.
lpOutBuf
Must point to a buffer large enough to hold the data to be written to the nonvolatile data store.
nOutBufSize
The size of lpOutBuf in bytes.
lpBytesReturned
The number of bytes returned by the function.
Return Values
Returns TRUE if function succeeds. Returns FALSE if the function fails.
GetLastError() may get the error value. When this function gets the error,
either ERROR_INVALID_PARAMETER or
ERROR_INSUFFICIENT_BUFFER is returned.
CN2B Mobile Computer User’s Manual
153
Chapter 7 — Programming
ID Field Values
The id field of lpInBuf may be one of the following values:
ID Field Values
ITC_REGISTRY_SAVE_ENABLE
This function enables or disables the save registry to non–volatile media feature of the RegFlushKey() function. lpOutBuf must be set to zero (FALSE) if the feature is to be disabled or one (TRUE) if the feature is to be enabled.
ITC_ WAKEUP_MASK
This IOCTL sets a bit mask that represents the mask for the five programmable wakeup keys. The I/O key is not a programmable wakeup key. By default it is always the system resume key and all other keys are set to disable key wakeup.
A zero in a bit position masks the wakeup for that key. A one in a bit position enables wakeup for that key. lpOutBuf
must point to a buffer that contains a byte value of a wakeup mask consisting of the OR’ed constants as defined in
OEMIOCTL.H. Only the following keys are programmable as wakeup events.
#define SCANNER_TRIGGER1
#define SCANNER_LEFT2
#define SCANNER_RIGHT4
#define GOLD_A18
#define GOLD_A20x10
IOCTL_HAL_GET_DEVICEID
This IOCTL returns the device ID. There are two types of device IDs supported, which are differentiated based on the size of the output buffer. The
UUID is returned if the buffer size is set to
sizeof(UNIQUE_DEVICEID), otherwise the oldstyle device ID is returned.
Usage
#include “pkfuncs.h”
#include “deviceid.h”
Syntax
BOOL KernelIoControl( IOCTL_HAL_GET_DEVICEID,LPVOID
lpInBuf,DWORD nInBufSize,LPVOID lpOutBuf,DWORD
nOutBufSize,LPDWORD lpBytesReturned );
Parameters
lpInBuf
Should be set to NULL. STRICT_ID settings are not supported.
lpInBufSize
Should be set to zero.
lpOutBuf
Must point to a UNIQUE_DEVICEID structure as defined by DEVICEID.H if the UUID is to
be returned.
nOutBufSize
The size of the UNIQUE_DEVICEID in bytes if the UUID is to be returned. A DEVICE_ID as
defined by PKFUNCS.H is returned if the size in bytes is greater than or equal to
sizeof(DEVICE_ID).
lpBytesReturned
The number of bytes returned by the function.
Return Values
Returns TRUE if function succeeds. Returns FALSE if the function fails.
GetLastError() may be used to get the extended error value.
154
CN2B Mobile Computer User’s Manual
Chapter 7 — Programming
IOCTL_HAL_GET_OAL_VERINFO
Returns the HAL version information of the Pocket PC image.
Usage
#include “oemioctl.h”
Syntax
BOOL KernelIoControl( IOCTL_HAL_GET_OAL_VERINFO,LPVOID
lpInBuf,DWORD nInBufSize,LPVOID lpOutBuf,DWORD
nOutBufSize,LPDWORD lpBytesReturned );
Parameters
lpInBuf
Should be set to NULL.
lpInBufSize
Should be set to zero.
lpBytesReturned
Returns sizeof(PVERSIONINFO).
lpOutBuf
Must point to a VERSIONINFO structure as defined by
OEMIOCTL.H. The fields should have these values:
• cboemverinfo sizeof (tagOemVerInfo);
• verinfover 1
• sig; “ITC\0”
• id; ‘ N’
• tgtcustomer “”
• tgtplat SeaRay
• tgtplatversion Current build version number
• tgtcputype[8]; “Intel\0”
• tgtcpu “PXA255\0”;
• tgtcoreversion “”
• date Build time
• time Build date
nOutBufSize
The size of VERSIONINFO in bytes.
Return Values
Returns TRUE if function succeeds. Returns FALSE if the function fails.
GetLastError() may be used to get the extended error value.
IOCTL_HAL_GET_BOOTLOADER_VERINFO
Returns the HAL version information of the Pocket PC image.
Usage
#include “oemioctl.h”
Syntax
BOOL KernelIoControl( IOCTL_HAL_GET_OAL_VERINFO,LPVOID
lpInBuf, DWORD nInBufSize,LPVOID lpOutBuf,DWORD
nOutBufSize,LPDWORD lpBytesReturned );
CN2B Mobile Computer User’s Manual
155
Chapter 7 — Programming
Parameters
lpInBuf
Should be set to NULL.
nInBufSize
Should be set to zero.
lpOutBuf
Must point to a VERSIONINFO structure as defined by
OEMIOCTL.H. The fields should have these values:
• cboemverinfo Sizeof (tagOemVerInfo);
• verinfover 1
• sig; “ITC\0”
• id; ‘B’
• tgtcustomer “”
• tgtplat SeaRay
• tgtplatversion Current build version number of the
bootstrap loader
• tgtcputype[8]; “Intel\0”;
• tgtcpu “PXA255\0”
• tgtcoreversion “”
• date Build time
• time Build date
nOutBufSize
The size of VERSIONINFO in bytes.
lpBytesReturned
The number of bytes returned to lpOutBuf.
Return Values
Returns TRUE if function succeeds. Returns FALSE if the function fails.
GetLastError() may be used to get the extended error value.
IOCTL_HAL_WARMBOOT
Causes the system to perform a warm-boot. The object store is retained.
Usage
#include “oemioctl.h”
Syntax
BOOL KernelIoControl( IOCTL_HAL_WARMBOOT,LPVOID
lpInBuf,DWORD nInBufSize,LPVOID lpOutBuf,DWORD
nOutBufSize,LPDWORD lpBytesReturned );
Parameters
lpInBuf
Should be set to NULL.
lpInBufSize
Should be set to zero.
lpOutBuf
Should be NULL.
nOutBufSize
Should be zero.
Return Values
None.
156
CN2B Mobile Computer User’s Manual
Chapter 7 — Programming
IOCTL_HAL_COLDBOOT
Causes the system to perform a cold-boot. The object store is cleared.
Usage
#include “oemioctl.h”
Syntax
BOOL KernelIoControl( IOCTL_HAL_COLDBOOT,LPVOID
lpInBuf,DWORD nInBufSize,LPVOID lpOutBuf,DWORD
nOutBufSize,LPDWORD lpBytesReturned );
Parameters
lpInBuf
Should be set to NULL.
lpInBufSize
Should be set to zero.
lpOutBuf
Should be NULL.
nOutBufSize
Should be zero.
Return Values
None.
IOCTL_HAL_GET_RESET_INFO
This code allows software to check the type of the most recent reset.
Usage
#include “oemioctl.h”
Syntax
BOOL KernelIoControl( IOCTL_HAL_GET_RESET_INFO,LPVOID
lpInBuf,DWORD nInBufSize,LPVOID lpOutBuf,DWORD
nOutBufSize,LPDWORD lpBytesReturned );
Parameters
lpInBuf
Should be set to NULL.
lpInBufSize
Should be set to zero.
lpOutBuf
Must point to a HAL_RESET_INFO structure. See sample below.
nOutBufSize
The size of HAL_RESET_INFO in bytes.
lpBytesReturned
The number of bytes returned by the function.
Return Values
Returns TRUE if function succeeds. Returns FALSE if the function fails.
May use GetLastError() to get the extended error value.
CN2B Mobile Computer User’s Manual
157
Chapter 7 — Programming
Sample
typedef struct {
DWORD ResetReason;
DWORD ObjectStoreState;
} HAL_RESET_INFO, * PHAL_RESET_INFO;
// Reset reason types
#define HAL_RESET_TYPE_UNKNOWN
#define HAL_RESET_REASON_HARDWARE
#define HAL_RESET_REASON_SOFTWARE
#define HAL_RESET_REASON_WATCHDOG
#define HAL_RESET_BATT_FAULT
#define HAL_RESET_VDD_FAULT
// most recent reset type
// state of object store
16
// Object store state flags
#define HAL_OBJECT_STORE_STATE_UNKNOWN
#define HAL_OBJECT_STORE_STATE_CLEAR
// cold
// suspend
// power fail
// warm boot
IOCTL_HAL_GET_BOOT_DEVICE
This IOCTL code allows software to check which device CE booted from.
Usage
#include “oemioctl.h”
Syntax
BOOL KernelIoControl( IOCTL_HAL_GET_BOOT_DEVICE,LPVOID
lpInBuf,DWORD nInBufSize,LPVOID lpOutBuf,DWORD
nOutBufSize,LPDWORD lpBytesReturned );
Parameters
lpInBuf
Should be set to NULL.
lpInBufSize
Should be set to zero.
lpOutBuf
Must point to a buffer large enough to hold a DWORD (4 bytes)
that contains the boot device. These boot devices are supported:
#define HAL_BOOT_DEVICE_UNKNOWN
#define HAL_BOOT_DEVICE_ROM_XIP
#define HAL_BOOT_DEVICE_ROM
#define HAL_BOOT_DEVICE_PCMCIA_ATA
#define HAL_BOOT_DEVICE_PCMCIA_LINEAR 4
#define HAL_BOOT_DEVICE_IDE_ATA
#define HAL_BOOT_DEVICE_IDE_ATAPI
nOutBufSize
The size of lpOutBuf in bytes (4).
lpBytesReturned
The number of bytes returned by the function.
Return Values
Returns TRUE if function succeeds. Returns FALSE if the function fails.
May use GetLastError() to get the extended error value.
158
CN2B Mobile Computer User’s Manual
Chapter 7 — Programming
IOCTL_HAL_REBOOT
Causes the system to perform a warm-boot. The object store is retained.
Usage
#include “oemioctl.h”
Syntax
BOOL KernelIoControl( IOCTL_HAL_REBOOT,LPVOID
lpInBuf,DWORD nInBufSize,LPVOID lpOutBuf,DWORD
nOutBufSize,LPDWORD lpBytesReturned );
Parameters
lpInBuf
Should be set to NULL.
lpInBufSize
Should be set to zero.
lpOutBuf
Should be NULL.
nOutBufSize
Should be zero.
Return Values
None.
IOCTL_PROCESSOR_INFORMATION
Returns processor information.
Usage
#include “pkfuncs.h”
Syntax
BOOL KernelIoControl( IOCTL_PROCESSOR_INFORMATION,LPVOID
lpInBuf,DWORD nInBufSize,LPVOID lpOutBuf,DWORD
nOutBufSize,LPDWORD lpBytesReturned );
CN2B Mobile Computer User’s Manual
159
Chapter 7 — Programming
Parameters
lpInBuf
Should be set to NULL.
nInBufSize
Should be set to zero.
lpOutBuf
Should be a pointer to the PROCESSOR_INFO structure. The
PROCESSOR_INFO structure stores information that describes
the CPU more descriptively.
typedef __PROCESSOR_INFO {
WORD wVersion; // Set to value 1
WCHAR szProcessorCore[40]; // “ARM\0”
WORD wCoreRevision; // 4
WCHAR szProcessorName[40]; // “PXA255\0”
WORD wProcessorRevision; // 0
WCHAR szCatalogNumber[100]; // 0
WCHAR szVendor[100]; // “Intel Corporation\0”
DWORD dwInstructionSet; // 0
DWORD dwClockSpeed; // 400
nOutBufSize
Should be set to sizeof(PROCESSOR_INFO) in bytes.
lpBytesReturned
Returns sizeof(PROCESSOR_INFO);
Return Values
Returns TRUE if function succeeds. Returns FALSE if the function fails.
May use GetLastError() to get the extended error value.
IOCTL_GET_CPU_ID
Returns Xscale processor ID.
Usage
#include “oemioctl.h”
Syntax
BOOL KernelIoControl( IOCTL_GET_CPU_ID,LPVOID lpInBuf,
DWORD nInBufSize,LPVOID lpOutBuf,DWORD nOutBufSize,LPDWORD
lpBytesReturned );
Parameters
lpInBuf
Should point to a CPUIdInfo structure defined in OEMIOCTL.H.
lpInBufSize
Should be sizeof(CPUIdInfo).
lpOutBuf
Should be NULL.
nOutBufSize
Should be set to 0.
lpBytesReturned
Returns sizeof(PROCESSOR_INFO);
Return Values
Returns TRUE if function succeeds. Returns FALSE if the function fails.
May use GetLastError() to get the extended error value.
160
CN2B Mobile Computer User’s Manual
Chapter 7 — Programming
Network Selection APIs
The Network Selection APIs change the network adapter configuration
programmatically. Both drivers support the same IOCTL function numbers for loading and unloading the drivers. Loading and unloading of the
802.11b/g driver is performed by the FWL1: device in the system by performing DeviceIOControl() calls to the driver. Loading and unloading of
the driver for the built-in Ethernet adapter is performed by the SYI1: device
in the system by performing DeviceIOControl() calls to the driver.
• For loading an NDIS driver associated with an adapter, the IOCTL is
IOCTL_LOAD_NDIS_MINIPORT.
• For unloading NDIS drivers associated with an adapter the IOCTL is
IOCTL_UNLOAD_NDIS_MINIPORT.
Example
#include 
#include “sysio.h”
void DoLoad(int nDevice) {
LPTSTR devs[] = { _T(“SYI1:”), _T(“FWL1:”) };
HANDLE hLoaderDev;
DWORD bytesReturned;
hLoaderDev = CreateFile(devs[nDevice], GENERIC_READ|GENERIC_WRITE, 0,
NULL, OPEN_EXISTING, 0, NULL);
if (hLoaderDev != INVALID_HANDLE_VALUE) {
if (!DeviceIoControl( hLoaderDev, IOCTL_LOAD_NDIS_MINIPORT, NULL, -1,
NULL, 0,
&bytesReturned, NULL)){
MessageBox(NULL, TEXT(“SYSIO IoControl Failed”), TEXT(“Network
loader”),MB_ICONHAND);
if (hLoaderDev!=INVALID_HANDLE_VALUE) CloseHandle(hLoaderDev);
hLoaderDev = INVALID_HANDLE_VALUE; // bad handle
}else {
CloseHandle(hLoaderDev);
void DoUnload(int nDevice) {
LPTSTR devs[] = { _T(“SYI1:”), _T(“FWL1:”) };
HANDLE hLoaderDev;
DWORD bytesReturned;
hLoaderDev = CreateFile(devs[nDevice], GENERIC_READ|GENERIC_WRITE, 0,
NULL, OPEN_EXISTING, 0, NULL);
if (hLoaderDev != INVALID_HANDLE_VALUE) {
if (!DeviceIoControl( hLoaderDev, IOCTL_UNLOAD_NDIS_MINIPORT, NULL, -1,
NULL, 0,
&bytesReturned, NULL)){
MessageBox(NULL, TEXT(“SYSIO IoControl Failed”),TEXT(“Network
loader”),MB_ICONHAND);
if (hLoaderDev!=INVALID_HANDLE_VALUE) CloseHandle(hLoaderDev);
hLoaderDev = INVALID_HANDLE_VALUE; // bad handle
}else {
CloseHandle(hLoaderDev);
The API provided by Intermec Technologies exposes a limited set of routines for a programmer to access and affect the 802.11b/g network interface
CN2B Mobile Computer User’s Manual
161
Chapter 7 — Programming
card from within their application. The routines provided also reads/writes
values to the CE registry pertaining to the 802.11b/g radio driver. By using
the provided functions, a programmer can alter the 802.11b/g parameters
of Network Name (SSID), WEP keys, infrastructure modes, radio channel,
and power management modes. A programmer can also retrieve network
connect status and signal strength indication from the RF network card.
The API is contained within the 80211API.DLL file that should be present
in any load with the 802.11b/g networking installed.
NETWLAN.DLL
PRISMNDS.DLL
This is the 802.11b/g driver. It is present in all CN2B CE loads that use the 802.11b/g network interface card.
80211API.DLL
This file is an Intermec authored file that provides the programmer with a set of API calls to
configure or monitor status of the 802.11b/g network.
80211CONF.EXE
This is the “Control Panel” for configuring the 802.11b/g network parameters. Note that it is
an EXE file and is actually called by CPL802.CPL (see below).
CPL802.CPL
A control panel application that does nothing but call 80211CONF.EXE.
80211SCAN.EXE
Internally manages the Scan List activity.
802PM.DLL
This handles profile management for radio configurable values.
URODDSVC.EXE
This handles radio configuration and security authentication based on a selected profile.
The Profile Manager supports up to four radio configuration profiles.
These profiles are the same as those set by the Wireless Network applet that
runs on the Windows CE unit. You can configure different 802.11b/g profiles and switch between them using the 802.11 API. See the ConfigureProfile() function on page 176 for more information.
Basic Connect/Disconnect Functions
These functions are available when using the 802.11b/g radio module.
RadioConnect()
Connects to the available radio. Use this function if you plan on using a lot
of API calls that talk directly to the radio. Note that the 802.11b/g radio
must be enabled via NDISTRAY before you can connect to it.
Syntax
UINT RadioConnect( );
Parameters
None
Return Values
ERROR_SUCCESS when successful, otherwise ERR_CONNECT_FAILED
Remarks
Call this function before calling other functions found within this API. It hunts out and connects to
the 802.11b/g radio available on the system. Check extended error codes if anything else is returned.
Definitions
#ifdef DYNAMIC_LOADING
typedef UINT (*PFN_RadioConnect)();
#else
UINT RadioConnect();
#endif
162
CN2B Mobile Computer User’s Manual
Chapter 7 — Programming
RadioDisconnect()
Call this function when done using the 802.11 API to clean up a connection from a previous RadioConnect() call. If you do not call this function,
you may leave memory allocated.
Syntax
UINT RadioDisconnect( );
Parameters
None
Return Values
ERROR_SUCCESS when successful, otherwise
ERR_CONNECT_FAILED
Remarks
None
Definitions
#ifdef DYNAMIC_LOADING
typedef UINT (*PFN_RadioDisconnect)();
#else
UINT RadioDisconnect();
#endif
RadioDisassociate()
Call this function to have the 802.11b/g radio disassociate from the current
service set. The radio then enters an “off ” mode until it is woken again by
setting the Service Set Identifier (SSID). Also, the NDIS driver generates an
NDIS media disconnect event.
Syntax
UINT RadioDisassociate( );
Parameters
None
Return Values
ERROR_SUCCESS on success, else ERR_CONNECT_FAILED
Remarks
None
Definitions
#ifdef DYNAMIC_LOADING
typedef UINT (*PFN_RadioDisassociate)();
#else
UINT RadioDisassociate();
#endif
Query Information Functions
GetAssociationStatus()
Call this to obtain the radio’s current association status with a service set.
Syntax
UINT GetAssociationStatus( ULONG & );
Parameters
NDIS_RADIO_ASSOCIATED
Indicates the radio is associated with an access point
NDIS_RADIO_SCANNING
Indicates radio is looking to associate with an access point
Return Values
ERROR_SUCCESS when successful, ERR_QUERY_FAILED when the query failed, or
ERR_CONNECT_FAILED if a connection with the radio failed.
Remarks
Data is only valid if the function returns ERROR_SUCCESS. Also, if ERROR_SUCCESS is
returned, your ULONG reference is populated by one of the parameters listed above.
CN2B Mobile Computer User’s Manual
163
Chapter 7 — Programming
Definitions
#ifdef DYNAMIC_LOADING
typedef UINT (*PFN_GetAssociationStatus)(ULONG &);
#else
UINT GetAssociationStatus(ULONG &);
#endif
GetAuthenticationMode()
Call this function to obtain the radio’s current authentication mode.
Syntax
UINT GetAuthenticationMode( ULONG & );
Parameters
NDIS_RADIO_AUTH_MODE_OPEN
802.11 Open Authentication. Indicates that
the radio is using an open system.
NDIS_RADIO_AUTH_MODE_SHARED
802.11 Shared Authentication. Indicates that
the radio is using a shared key.
NDIS_RADIO_AUTH_MODE_AUTO
Auto switch between Open/Shared. Indicates
automatic detection is used when available.
NDIS_RADIO_AUTH_MODE_ERROR
Defined as error value. Indicates authentication
mode was not determined or is unknown.
NDIS_RADIO_AUTH_MODE_WPA
WPA Authentication
NDIS_RADIO_AUTH_MODE_WPA_PSK
WPA Preshared Key Authentication
NDIS_RADIO_AUTH_MODE_WPA_NONE
WPA None
Return Values
ERROR_SUCCESS when successful, ERR_QUERY_FAILED when the query failed, or
ERR_CONNECT_FAILED if a connection with the radio failed.
Remarks
Data is only valid if ERROR_SUCCESS is returned. Also, if ERROR_SUCCESS is returned, your
USHORT reference is populated with one of the parameters listed above.
Definitions
#ifdef DYNAMIC_LOADING
typedef UINT (*PFN_GetAuthenticationMode)(ULONG &);
#else
UINT GetAuthenticationMode(ULONG &);
#endif
GetBSSID()
Call this function to get the current MAC address (BSSID) of the service
set. In ESS mode, this is the MAC address of the access point the radio is
associated with. In IBSS mode, this is a randomly generated MAC address,
and serves as the ID for the IBSS.
164
Syntax
UINT GetBSSID( TCHAR * );
Parameters
Pointer to a character array, which is populated with the current
BSSID after a successful call.
Return Values
ERROR_SUCCESS when successful, ERR_QUERY_FAILED when
the query failed, or ERR_CONNECT_FAILED if a connection with
the radio failed.
Remarks
If ERROR_SUCCESS is returned, your TCHAR array is populated
with the BSSID of the current service set: xx-xx-xx-xx-xx-xx
CN2B Mobile Computer User’s Manual
Chapter 7 — Programming
Definitions
#ifdef DYNAMIC_LOADING
typedef UINT (*PFN_GetBSSID)(TCHAR *);
#else
UINT GetBSSID(TCHAR *);
#endif
GetDiversity()
Call this function to get the current diversity setting of your 802.11b/g
radio. This uses an optional NDIS5.1 OID to query the radio, of which a
large number of 802.11b/g devices do not support. This may be inaccurate.
Syntax
UINT GetDiversity(USHORT *);
Parameters
None.
Return Values
ERROR_SUCCESS when successful, ERR_QUERY_FAILED when
the query failed, or ERR_CONNECT_FAILED if a connection with
the radio failed.
Remarks
If ERROR_SUCCESS is returned, your USHORT reference is populated with one of the parameters listed above.
Definitions
#ifdef DYNAMIC_LOADING
typedef UINT (*PFN_GetDiversity)(USHORT *);
#else
UINT GetDiversity(USHORT *);
#endif
GetLinkSpeed()
Call this function to get the current link speed of the 802.11b/g radio.
Syntax
UINT GetLinkSpeed( int & );
Parameters
This accepts an int reference, and your int is populated with the current link speed, in Mbps, rounded to the nearest whole integer, for
example: 1, 2, 5, 11, etc.
Return Values
ERROR_SUCCESS when successful, ERR_QUERY_FAILED when
the query failed, or ERR_CONNECT_FAILED if a connection with
the radio failed.
Remarks
Data returned is valid if ERROR_SUCCESS is returned.
Definitions
#ifdef DYNAMIC_LOADING
typedef UINT (*PFN_GetLinkSpeed)(int &);
#else
UINT GetLinkSpeed(int &);
#endif
CN2B Mobile Computer User’s Manual
165
Chapter 7 — Programming
GetMac()
Call this function to get the MAC address of the 802.11b/g radio.
Syntax
UINT GetMac( TCHAR * );
Parameters
Pointer to a character array, which is populated with the MAC address
after a successful call.
Return Values
ERROR_SUCCESS when successful, ERR_QUERY_FAILED when
the query failed, or ERR_CONNECT_FAILED if a connection with
the radio failed.
Remarks
If ERROR_SUCCESS is returned, your TCHAR array is populated
with the formatted MAC address of the adapter, as follows: xx-xxxx-xx-xx-xx
Definitions
#ifdef DYNAMIC_LOADING
typedef UINT (*PFN_GetMac)(TCHAR *);
#else
UINT GetMac(TCHAR *);
#endif
Note: Be sure to call RadioConnect() before calling this function for this
function to work properly.
GetNetworkMode()
Call this function to get the current Network Mode (SSID) for the
802.11b/g radio.
Syntax
UINT GetNetworkMode( ULONG & );
Parameters
NDIS_NET_MODE_IBSS
802.11 Ad-Hoc Mode.
NDIS_NET_MODE_ESS
802.11 Infrastructure Mode.
NDIS_NET_MODE_UNKNOWN
Anything Else/Unknown Error
NDIS_NET_AUTO_UNKNOWN
Automatic Selection. Use of this option is not
supported or recommended.
NDIS_NET_TYPE_OFDM_5G
5 Gigahertz 54 Mbps
NDIS_NET_TYPE_OFDM_2_4G
802.11 2.4 Gigahertz
Return Values
ERROR_SUCCESS when successful, ERR_QUERY_FAILED when the query failed, or
ERR_CONNECT_FAILED if a connection with the radio failed.
Remarks
If ERROR_SUCCESS is returned, your ULONG reference is populated with one of the parameters
listed above.
Definitions
#ifdef DYNAMIC_LOADING
typedef UINT (*PFN_GetNetworkMode)(ULONG &);
#else
UINT GetNetworkMode(ULONG &);
#endif
166
CN2B Mobile Computer User’s Manual
Chapter 7 — Programming
GetNetworkType()
Call this function to get the current network type of the radio. Do not confuse this with GetNetworkMode().
Syntax
UINT GetNetworkType( ULONG & );
Parameters
NDIS_NET_TYPE_FH
Indicates this is a frequency hopping radio.
NDIS_NET_TYPE_DS
Indicates that this is a direct sequence radio.
NDIS_NET_TYPE_UNDEFINED
Indicates this radio is unknown or undefined.
Return Values
ERROR_SUCCESS when successful, ERR_QUERY_FAILED when the query failed, or
ERR_CONNECT_FAILED if a connection with the radio failed.
Remarks
If ERROR_SUCCESS is returned, your ULONG reference is populated with one of the parameters
listed above.
Definitions
#ifdef DYNAMIC_LOADING
typedef UINT (*PFN_GetNetworkType)(ULONG &);
#else
UINT GetNetworkType(ULONG &);
#endif
GetSSID()
Call this function to get the desired SSID of the 802.11b/g radio.
Syntax
UINT GetSSID( TCHAR * );
Parameters
Pointer to a character array, which is populated with the current SSID
when successful.
Return Values
ERROR_SUCCESS when successful, ERR_QUERY_FAILED when
the query failed, or ERR_CONNECT_FAILED if a connection with
the radio failed.
Remarks
If ERROR_SUCCESS is returned, your TCHAR array is populated
with the desired SSID.
Definitions
#ifdef DYNAMIC_LOADING
typedef UINT (*PFN_GetSSID)(TCHAR *);
#else
UINT GetSSID(TCHAR *);
#endif
Note: Call RadioConnect() before this function for this function to work
properly.
CN2B Mobile Computer User’s Manual
167
Chapter 7 — Programming
GetPowerMode()
Call this function to get the current power savings mode of the radio.
Syntax
UINT GetPowerMode( ULONG & );
Parameters
NDIS_RADIO_POWER_MODE_CAM
Continuous Access Mode (ie: always on).
NDIS_RADIO_POWER_MODE_PSP
Power Saving Mode.
NDIS_RADIO_POWER_UNKNOWN
Unknown power mode.
NDIS_RADIO_POWER_AUTO
Auto.
NDIS_RADIO_POWER_MODE_FAST_PSP
Fast PSP, good savings, fast
Return Values
ERROR_SUCCESS when successful, ERR_QUERY_FAILED when the query failed, or
ERR_CONNECT_FAILED if a connection with the radio failed.
Remarks
If ERROR_SUCCESS is returned, your ULONG reference is populated with one of the parameters
listed above.
Definitions
#ifdef DYNAMIC_LOADING
typedef UINT (*PFN_GetPowerMode)(ULONG &);
#else
UINT GetPowerMode(ULONG &);
#endif
Note: Do not use Automatic Switching mode at this time.
GetRSSI()
Call this function to get the current RSSI (Radio Signal Strength Indicator), in Dbm.
168
Syntax
UINT GetRSSI( ULONG & );
Parameters
References a ULONG that is populated with the current RSSI after a
successful call.
Return Values
ERROR_SUCCESS when successful, ERR_QUERY_FAILED when
the query failed, or ERR_CONNECT_FAILED if a connection with
the radio failed.
Remarks
If ERROR_SUCCESS is returned, your ULONG reference contains
the RSSI. Valid RSSI range is from -100 Dbm to -30 Dbm.
Definitions
#ifdef DYNAMIC_LOADING
typedef UINT (*PFN_GetRSSI)(ULONG &);
#else
UINT GetRSSI(ULONG &);
#endif
CN2B Mobile Computer User’s Manual
Chapter 7 — Programming
GetTXPower()
Call this function to get the current transmit power of the radio.
Syntax
UINT GetTXPower( ULONG & );
Parameters
NDIS_POWER_LEVEL_63
63 mW
NDIS_POWER_LEVEL_30
30 mW
NDIS_POWER_LEVEL_15
15 mW
NDIS_POWER_LEVEL_5
5 mW
NDIS_POWER_LEVEL_1
1 mW
NDIS_POWER_LEVEL_UNKNOWN
Unknown Value or Error.
Return Values
ERROR_SUCCESS when successful, ERR_QUERY_FAILED when the query failed, or
ERR_CONNECT_FAILED if a connection with the radio failed.
Remarks
If ERROR_SUCCESS is returned, your ULONG reference is populated with the TX power in milliwatts (mW). Valid ranges are from 5 mW to 100 mW.
Definitions
#ifdef DYNAMIC_LOADING
typedef UINT (*PFN_GetTXPower)(ULONG &);
#else
UINT GetTXPower(ULONG &);
#endif
GetWepStatus()
Call this to get the current state of the radio’s WEP and encryption levels.
Syntax
UINT GetWepStatus( ULONG & );
Parameters
NDIS_ENCRYPTION_1_ENABLED
WEP enabled; TKIP, AES not enabled, and
transmit key may or may not be available.
NDIS_ENCRYPTION_DISABLED
Indicates AES, TKIP, WEP disabled, and transmit key available.
NDIS_ENCRYPTION_NOT_SUPPORTED
Indicates WEP, TKIP, AES not supported.
NDIS_ENCRYPTION_1_KEY_ABSENT
Indicates AES, TKIP, WEP disabled, and transmit key not available.
NDIS_ENCRYPTION_2_ENABLED
Indicates TKIP, WEP enabled; AES not enabled,
and transmit key available.
NDIS_ENCRYPTION_2_KEY_ABSENT
Indicates no transmit keys available for TKIP,
WEP, TKIP, WEP enabled; AES not enabled.
NDIS_ENCRYPTION_3_ENABLED
Indicates AES, TKIP, WEP enabled, and transmit key available.
NDIS_ENCRYPTION_3_KEY_ABSENT
Indicates no transmit keys available for AES,
TKIP, WEP, AES, TKIP, WEP enabled.
Return Values
ERROR_SUCCESS when successful, ERR_QUERY_FAILED when the query failed, or
ERR_CONNECT_FAILED if a connection with the radio failed.
Remarks
If ERROR_SUCCESS returned, ULONG reference is populated with a parameter listed above.
CN2B Mobile Computer User’s Manual
169
Chapter 7 — Programming
Definitions
#ifdef DYNAMIC_LOADING
typedef UINT (*PFN_GetWepStatus)(ULONG &);
#else
UINT GetWepStatus(ULONG &);
#endif
GetRadioIpAddress()
Call this function to obtain a formatted string indicating whether DHCP is
enabled, and what is the current adapters IP address.
Syntax
UINT GetRadioIpAddress( TCHAR * );
Parameters
Pointer to a character array that contains the formatted string of the
IP address and static/DHCP information.
Return Values
ERROR_SUCCESS when successful, ERR_QUERY_FAILED when
the query failed, or ERR_CONNECT_FAILED if a connection with
the radio failed.
Remarks
If ERROR_SUCCESS is returned, your TCHAR array contains a
string formatted as follows:
IP: DHCP Enabled\nxxx.xxx.xxx.xxx\n or
IP: DHCP Disabled\nxxx.xxx.xxx.xxx\n
Definitions
#ifdef DYNAMIC_LOADING
typedef UINT (*PFN_GetRadioIpAddress)(TCHAR *);
#else
UINT GetRadioIpAddress(TCHAR *);
#endif
GetCCXStatus()
Call this to get information about the current CCX status of the adapter.
Syntax
UINT GetCCXStatus( ULONG & );
Parameters
NDIS_NETWORK_EAP_MODE_OFF
Disable EAP mode.
NDIS_NETWORK_EAP_MODE_ON
Enable EAP mode.
Return Values
ERROR_SUCCESS when successful, ERR_QUERY_FAILED when the query failed, or
ERR_CONNECT_FAILED if a connection with the radio failed.
Remarks
If ERROR_SUCCESS is returned, your ULONG reference is populated with one of parameters
listed above.
Definitions
#ifdef DYNAMIC_LOADING
typedef UINT (*PFN_GetCCXStatus)(ULONG &);
#else
UINT GetCCXStatus(ULONG &);
#endif
170
CN2B Mobile Computer User’s Manual
Chapter 7 — Programming
Set Information Functions
AddWep()
Call this function to add a WEP key to the radio. Call this function multiple times when adding more than one WEP key. Save the “default” key for
last. For example, when adding four keys, and the second key is the default
transmit key, add keys 1, 3 and 4 before you add key 2.
Note: Add the default transmit key last.
Syntax
UINT AddWep( ULONG, BOOL, TCHAR * );
Parameters
ULONG
Specifies the key index to be set. Valid values are 0-3.
BOOL
When set to TRUE, specifies that this key is the default transmit key.
TCHAR
Pointer to a character array that specifies the key data in either HEX (length of 10
or 26) or ASCII (length of 5 or 13). This string must be null-terminated.
Return Values
ERROR_SUCCESS when successful, ERR_QUERY_FAILED when the query failed, or
ERR_CONNECT_FAILED if a connection with the radio failed.
Remarks
When adding WEP keys to the radio, turn off encryption before you add the keys, then turn encryption back on afterwards. Also, be sure to add the TRANSMIT KEY last.
Definitions
#ifdef DYNAMIC_LOADING
typedef UINT (*PFN_AddWep)(ULONG, BOOL, TCHAR *);
#else
UINT AddWep(ULONG, BOOL, TCHAR *);
#endif
EnableWep()
Enables or disables WEP encryption on the radio (TRUE/FALSE).
Syntax
UINT EnableWep( BOOL );
Parameters
Set BOOL to TRUE to enable WEP encryption, or FALSE to disable
WEP encryption.
Return
Values
ERROR_SUCCESS when successful, ERR_QUERY_FAILED when
the query failed, or ERR_CONNECT_FAILED if a connection with
the radio failed.
Remarks
Call this function with TRUE as the parameter to enable WEP encryption. Call this function with the FALSE parameter to disable WEP
encryption. This call is an alias for EncryptionStatus(). See the following:
EnableWEP(TRUE) = EncryptionStatus(NDIS_ENCRYPTION_1_ENABLED)
EnableWEP(FALSE) = EncryptionStatus(NDIS_ENCRYPTION_DISABLED)
Definitions
#ifdef DYNAMIC_LOADING
typedef UINT (*PFN_EnableWep)(BOOL);
#else
UINT EnableWep(BOOL);
#endif
CN2B Mobile Computer User’s Manual
171
Chapter 7 — Programming
EncryptionStatus()
Call this function to set the desired encryption status.
Syntax
UINT EncryptionStatus( UINT mode );
Parameters
NDIS_ENCRYPTION_1_ENABLED
WEP is enabled; TKIP and AES are not enabled,
and a transmit key may or may not be available.
(same as NDIS_RADIO_WEP_ENABLED)
NDIS_ENCRYPTION_DISABLED
Indicates that AES, TKIP, and WEP are disabled, and a transmit key is available. (Same as
NDIS_RADIO_WEP_DISABLED)
NDIS_ENCRYPTION_NOT_SUPPORTED
Indicates that encryption (WEP, TKIP, and
AES) is not supported. (Same as
NDIS_RADIO_WEP_NOT_SUPPORTED)
NDIS_ENCRYPTION_1_KEY_ABSENT
Indicates that AES, TKIP, and WEP are disabled, and a transmit key is not available. (Same
as NDIS_RADIO_WEP_ABSENT)
NDIS_ENCRYPTION_2_ENABLED
Indicates that TKIP and WEP are enabled; AES
is not enabled, and a transmit key is available.
NDIS_ENCRYPTION_2_KEY_ABSENT
Indicates no transmit keys available for use by
TKIP or WEP (enabled) and AES is not enabled.
NDIS_ENCRYPTION_3_ENABLED
Indicates that AES, TKIP, and WEP are enabled,
and a transmit key is available.
NDIS_ENCRYPTION_3_KEY_ABSENT
Indicates there are no transmit keys available for
use by AES, TKIP, or WEP, which are enabled.
Return Values
ERROR_SUCCESS when successful, ERR_QUERY_FAILED when the query failed, or
ERR_CONNECT_FAILED if a connection with the radio failed.
Remarks
None.
Definitions
#ifdef DYNAMIC_LOADING
typedef UINT (*PFN_EncryptionStatus)(UINT mode);
#else
UINT EncryptionStatus(UINT mode);
#endif
172
CN2B Mobile Computer User’s Manual
Chapter 7 — Programming
SetAuthenticationMode()
Call this function to set the desired authentication mode.
Syntax
UINT SetAuthenticationMode( ULONG );
Parameters
NDIS_RADIO_AUTH_MODE_OPEN
802.11 Open Authentication. Indicates that
the radio is using an open system.
NDIS_RADIO_AUTH_MODE_SHARED
802.11 Shared Authentication. Indicates that
the radio is using a shared key.
NDIS_RADIO_AUTH_MODE_AUTO
Auto switch between Open/Shared. Indicates
automatic detection is used when available.
NDIS_RADIO_AUTH_MODE_ERROR
Defined as error value. Indicates the authentication mode was not determined at this time or
is unknown.
NDIS_RADIO_AUTH_MODE_WPA
WPA Authentication
NDIS_RADIO_AUTH_MODE_WPA_PSK
WPA Preshared Key Authentication
NDIS_RADIO_AUTH_MODE_WPA_NONE
WPA None
Return Values
ERROR_SUCCESS when successful, ERR_QUERY_FAILED when the query failed, or
ERR_CONNECT_FAILED if a connection with the radio failed.
Remarks
None.
Definitions
#ifdef DYNAMIC_LOADING
typedef UINT (*PFN_SetAuthenticationMode)(ULONG);
#else
UINT SetAuthenticationMode(ULONG);
#endif
SetChannel()
This function is currently not implemented. Ad-hoc networks automatically select a channel or use the already existing channel.
Syntax
UINT SetChannel( USHORT );
Parameters
USHORT value that should populate with the desired channel (114).
Return Values
None.
Remarks
None.
Definitions
#ifdef DYNAMIC_LOADING
typedef UINT (*PFN_SetChannel)(USHORT);
#else
UINT SetChannel(USHORT);
#endif
CN2B Mobile Computer User’s Manual
173
Chapter 7 — Programming
SetNetworkMode()
Call this function to set the desired Network Mode.
Syntax
UINT SetNetworkMode( ULONG );
Parameters
NDIS_NET_MODE_IBSS
802.11 Ad-Hoc Mode.
NDIS_NET_MODE_ESS
802.11 Infrastructure Mode.
NDIS_NET_MODE_UNKNOWN
Anything Else/Unknown Error
NDIS_NET_AUTO_UNKNOWN
Automatic Selection. Use of this option is not
supported or recommended.
NDIS_NET_TYPE_OFDM_5G
5 Gigahertz 54 Mbps
NDIS_NET_TYPE_OFDM_2_4G
802.11 2.4 Gigahertz
Return Values
ERROR_SUCCESS when successful, ERR_QUERY_FAILED when the query failed, or
ERR_CONNECT_FAILED if a connection with the radio failed.
Remarks
None.
Definitions
#ifdef DYNAMIC_LOADING
typedef UINT (*PFN_SetNetworkMode)(ULONG);
#else
UINT SetNetworkMode(ULONG);
#endif
SetPowerMode()
Call this function to set the desired power mode.
Syntax
UINT SetPowerMode( ULONG mode );
Parameters
NDIS_RADIO_POWER_MODE_CAM
Continuous Access Mode (ie: always on).
NDIS_RADIO_POWER_MODE_PSP
Power Saving Mode.
NDIS_RADIO_POWER_UNKNOWN
Unknown power mode.
NDIS_RADIO_POWER_AUTO
Auto.
NDIS_RADIO_POWER_MODE_FAST_PSP
Fast PSP, good savings, fast
Return Values
ERROR_SUCCESS when successful, ERR_QUERY_FAILED when the query failed, or
ERR_CONNECT_FAILED if a connection with the radio failed.
Remarks
None.
Definitions
#ifdef DYNAMIC_LOADING
typedef UINT (*PFN_SetPowerMode)(ULONG mode);
#else
UINT SetPowerMode(ULONG mode);
#endif
174
CN2B Mobile Computer User’s Manual
Chapter 7 — Programming
SetSSID()
Call this function with a pointer to a null-terminated TCHAR array containing the desired SSID to set the desired SSID of the adapter.
Syntax
UINT SetSSID( TCHAR * );
Parameters
Pointer to a character array that contains the desired SSID. This should be null-terminated.
Return Values
ERROR_SUCCESS when successful, ERR_QUERY_FAILED when the query failed, or
ERR_CONNECT_FAILED if a connection with the radio failed.
Remarks
If an “ANY” network is desired, pass in _T(“ANY”).
Definitions
#ifdef DYNAMIC_LOADING
typedef UINT (*PFN_SetSSID)(TCHAR *);
#else
UINT SetSSID(TCHAR *);
#endif
SetCCXStatus()
Call this function to set the desired CCX / Network EAP status.
Syntax
UINT SetCCXStatus( ULONG );
Parameters
NDIS_NETWORK_EAP_MODE_OFF
Disable Network EAP / CCX
NDIS_NETWORK_EAP_MODE_ON
Enable Network EAP / CCX
Return Values
ERROR_SUCCESS when successful, ERR_QUERY_FAILED when the query failed, or
ERR_CONNECT_FAILED if a connection with the radio failed.
Remarks
None.
Definitions
#ifdef DYNAMIC_LOADING
typedef UINT (*PFN_SetCCXStatus)(ULONG);
#else
UINT SetCCXStatus(ULONG);
#endif
SetMixedCellMode()
Call this function to set the desired mixed cell mode.
Syntax
UINT SetMixedCellMode( ULONG );
Parameters
NDIS_MIXED_CELL_OFF
Disable Mixed Cell
NDIS_MIXED_CELL_ON
Enable Mixed Cell
Return Values
ERROR_SUCCESS when successful, ERR_QUERY_FAILED when the query failed, or
ERR_CONNECT_FAILED if a connection with the radio failed.
Remarks
None.
Definitions
#ifdef DYNAMIC_LOADING
typedef UINT (*PFN_SetMixedCellMode)(ULONG);
#else
UINT SetMixedCellMode(ULONG);
#endif
CN2B Mobile Computer User’s Manual
175
Chapter 7 — Programming
RemoveWep()
Call this with a key index of 0-3 to remove the WEP key at that index.
Syntax
UINT RemoveWep( ULONG );
Parameters
ULONG value that specifies the key index to set. Valid values are 0-3.
Return Values
ERROR_SUCCESS when successful, ERR_QUERY_FAILED when fails, or
ERR_CONNECT_FAILED if connection with radio fails.
Remarks
On disassociation with all BSSIDs of the current service set, WEP key is removed by the adapter.
Definitions
#ifdef DYNAMIC_LOADING
typedef UINT (*PFN_RemoveWEP)(ULONG);
#else
UINT RemoveWEP(ULONG);
#endif
Helper Functions
ConfigureProfile()
If using the Intermec 802.11 Profile Management system, you can pass a
specific profile name to program the API to configure the radio.
Syntax
UINT ConfigureProfile( TCHAR * );
Parameters
Pointer to a character array that contains the profile name. This should be null-terminated.
Return Values
ERROR_SUCCESS when successful, ERR_QUERY_FAILED when the query failed, or
ERR_CONNECT_FAILED if a connection with the radio failed.
Remarks
Call this function with a pointer to a null-terminated TCHAR array that contains the name of the
profile you wish to configure. This function reads profile data from the profile manager, sets that
profile as the default active profile, and configures the radio appropriately. If needed, the supplicant
and any other related services are automatically started and stopped.
Definitions
#ifdef DYNAMIC_LOADING
typedef UINT (*PFN_ConfigureProfile)(TCHAR *);
#else
UINT ConfigureProfile(TCHAR *);
#endif
176
CN2B Mobile Computer User’s Manual
Chapter 7 — Programming
EnableZeroConfig()
This enables or disables the Wireless Zero Configuration Wizard from
Microsoft. After calling this function, a warm-boot is required for the
change to take effect. Note that enabling this effectively disables all SET commands in this API.
Syntax
UINT EnableZeroConfig( USHORT );
Parameters
TRUE
Enable Wireless Zero Config
FALSE
Disable Wireless Zero Config
Return Values
ERROR_SUCCESS when successful, ERR_ZERO_CONFIG_CHANGE_FAILED when the
query failed.
Remarks
Call this function to set the desired Zero Config status.
Definitions
#ifdef DYNAMIC_LOADING
typedef UINT (*PFN_EnableZeroConfig)(USHORT);
#else
UINT EnableZeroConfig(USHORT);
#endif
isZeroConfigEnabled()
Call this function to determine whether Zero Config is currently enabled.
Syntax
UINT isZeroConfigEnabled( );
Parameters
None.
Return Values
TRUE if ZeroConfig is enabled, and FALSE if it is disabled.
Remarks
None.
Definitions
#ifdef DYNAMIC_LOADING
typedef UINT (*PFN_isZeroConfigEnabled)();
#else
UINT isZeroConfigEnabled();
#endif
isSupplicantRunning()
Call this function to determine whether the security supplicant is running.
Syntax
UINT isSupplicantRunning( );
Parameters
None.
Return Values
TRUE if the security supplicant is running, FALSE if not running.
Remarks
None.
Definitions
#ifdef DYNAMIC_LOADING
typedef UINT (*PFN_isSupplicantRunning)();
#else
UINT isSupplicantRunning();
#endif
CN2B Mobile Computer User’s Manual
177
Chapter 7 — Programming
StartScanList()
If a scan list is configured on the system, this causes the API to begin the
process of scanning for an available network. This call can take quite a
while to process (depending upon the length of the scan list and how long it
takes to find a valid network), you may wish to call it from a separate thread.
Syntax
UINT StartScanList( );
Parameters
None.
Return Values
ERROR_SUCCESS when successful.
Remarks
Call this function to start the scan list functionality of the system.
Definitions
#ifdef DYNAMIC_LOADING
typedef UINT (*PFN_StartScanList)();
#else
UINT StartScanList();
#endif
StartSupplicant()
Call this to start the supplicant service if it is installed on the system.
Syntax
UINT StartSupplicant( );
Parameters
None.
Return Values
ERROR_SUCCESS when successful.
Remarks
None.
Definitions
#ifdef DYNAMIC_LOADING
typedef UINT (*PFN_StartSupplicant)();
#else
UINT StartSupplicant();
#endif
StopSupplicant()
Call this function to stop the supplicant service.
Syntax
UINT StopSupplicant( );
Parameters
None.
Return Values
ERROR_SUCCESS when successful.
Remarks
None.
Definitions
#ifdef DYNAMIC_LOADING
typedef UINT (*PFN_StopSupplicant)();
#else
UINT StopSupplicant();
#endif
178
CN2B Mobile Computer User’s Manual
Chapter 7 — Programming
isDHCPEnabled()
Call this to determine whether DHCP is enabled on the current adapter.
Syntax
UINT isDHCPEnabled( );
Parameters
None.
Return Values
TRUE if DHCP is enabled, FALSE if it is not.
Remarks
None.
Definitions
#ifdef DYNAMIC_LOADING
typedef UINT (*PFN_isDHCPEnabled)();
#else
UINT isDHCPEnabled();
#endif
RenewDHCP()
Call this to force a DHCP renewal on the current network adapter.
Syntax
UINT RenewDHCP( );
Parameters
None.
Return Values
ERROR_SUCCESS when successful.
Remarks
You should not have to call this function.
Definitions
#ifdef DYNAMIC_LOADING
typedef UINT (*PFN_RenewDHCP)();
#else
UINT RenewDHCP();
#endif
GetCurrentDriverName()
Call this function to populate the TCHAR array with the driver name.
Syntax
UINT GetCurrentDriverName( TCHAR * );
Parameters
Pointer to a TCHAR array which contains the name of the driver when successful.
Return Values
ERROR_SUCCESS when successful.
Remarks
This function is called with a pointer to a TCHAR array that is large enough to hold the name of the
driver PLUS the null terminator.
Definitions
#ifdef DYNAMIC_LOADING
typedef UINT (*PFN_GetCurrentDriverName)(TCHAR *);
#else
UINT GetCurrentDriverName(TCHAR *);
#endif
CN2B Mobile Computer User’s Manual
179
Chapter 7 — Programming
ResetRadioToSystemSave()
Call this function to force the radio to reset to the last desired active profile.
Syntax
UINT ResetRadioToSystemSave( );
Parameters
None.
Return Values
ERROR_SUCCESS when successful.
Remarks
None.
Definitions
#ifdef DYNAMIC_LOADING
typedef UINT (*PFN_ResetRadioToSystemSave)();
#else
UINT ResetRadioToSystemSave();
#endif
EnableSuppLogging()
Call this function to set the desired supplicant logging mode.
Syntax
UINT EnableSuppLogging( ULONG );
Parameters
NDIS_SUPP_LOGGING_ON
Supplicant Logging Enabled
NDIS_SUPP_LOGGING_OFF
Supplicant Logging Disabled
Return Values
ERROR_SUCCESS when successful.
Remarks
None.
Definitions
#ifdef DYNAMIC_LOADING
typedef UINT (*PFN_EnableSuppLogging)(ULONG);
#else
UINT EnableSuppLogging(ULONG);
#endif
SwitchPacketDriver()
Call this function to switch between available packet drivers on the system.
Syntax
UINT SwitchPacketDriver( USHORT );
Parameters
INTERMEC_PACKET_DRIVER
Intermec Packet Driver (ZNICZIO)
NDISUIO_PACKET_DRIVER
Microsoft Packet Driver (NDISUIO)
Return Values
ERROR_SUCCESS when successful.
Remarks
After switching to a new packet driver, perform a warm boot for changes to take effect.
Definitions
#ifdef DYNAMIC_LOADING
typedef UINT (*PFN_SwitchPacketDriver)(USHORT);
#else
UINT SwitchPacketDriver(USHORT);
#endif
180
CN2B Mobile Computer User’s Manual
Chapter 7 — Programming
Notifications
Use the following information to programmatically control the vibrator, to
write an application to turn on the vibrator when a message is received via
the WLAN radio link, and turn it off when the user hits a key.
Vibrator support is implemented in the NLED driver as a false LED. The
vibrator is LED 5 and is identified with an CycleAdjust of -1. The vibrate
option is only available in the notifications panel when the vibrator is
present in the system.
Regarding an applications interface to NLED.DLL, LEDs must be available for use by applications. This is possible via two functions exported by
the COREDLL.DLL file. To use the LED functions, declare these as extern
“C” as follows:
extern ”C” BOOL WINAPI NLEDGetDeviceInfo(UINT nInfoId,
void *pOutput);
extern ”C” BOOL WINAPI NLEDSetDevice( UINT nDeviceId, void
*pInput);
The LEDs are enumerated for access through the data structures associated
with these APIs: Notification LED (0), Alpha Lock LED (2), Scanner LED
(3), or Low Battery (4).
NLEDGetDeviceInfo
Usage
#include “nled.h”
Syntax
BOOL NLEDGetDeviceInfo ( UINT nInfoId, void *pOutput );
Parameters
nInfoId
pOutput
Integer specifying the information to return. These values are defined:
NLED_COUNT_INFO
Indicates the pOutput buffer specifies the number of LEDs
on the device.
NLED_SUPPORTS_INFO_ID
Indicates the pOutput buffer specifies information about the
capabilities supported by the LED.
NLED_SETTINGS_INFO_ID
Indicates the pOutput buffer contains information about the
LED current settings.
Pointer to the buffer to which the information is returned. The buffer points to various structure
types defined in “nled.h”, depending on the value of nId, as detailed in the following table:
Value of nID
LED_COUNT_INFO
NLED_SUPPORTS_INFO
NLED_SETTINGS_INFO
CN2B Mobile Computer User’s Manual
Structure in pOutput
NLED_COUNT_INFO
NLED_SUPPORTS_INFO
NLED_SETTINGS_INFO
181
Chapter 7 — Programming
NLEDSetDevice
Usage
#include “nled.h”
Syntax
BOOL NLEDSetDevice ( UINT nDeviceId, void *pInput );
Parameters
nDeviceId
Integer specifying the device identification. The following is defined:
NLED_SETTINGS_INFO_ID
pInput
Contains information about the desired LED settings.
Pointer to the buffer that contains the NLED_SETTINGS_INFO structure.
Reboot Functions
There are several methods, via Kernel I/O Control functions, that an application program can use to force the CN2B Computer to reboot.
IOCTL_HAL_REBOOT
IOCTL_HAL_REBOOT performs a warm-boot. See page 159.
IOCTL_HAL_COLDBOOT
Invoking with this forces a cold reboot, resets the CN2B Computer, reloads
Windows CE as if a power-up was performed, and discards the contents of
the Windows CE RAM-based object. See page 157.
IOCTL_HAL_WARMBOOT
This function is supported on CN2B Computers. It performs a warm boot
of the system, preserving the object store. See page 156.
Remapping the Keypad
Note: Use caution when remapping the keypad. Improper remapping may
render the keypad unusable. Data within the CN2B Computer could also
be lost, should any problems occur.
Applications have the ability to remap keys on the CN2B keypad. This
allows applications to enable keys that would otherwise not be available,
such as the [F1] function key. Also, to disable keys that should not be available, such as the alpha key because no alpha entry is required. Use caution
when attempting to remap the keypad because improper remapping may
cause the keypad to become unusable. This can be corrected by performing
a cold-boot on the device that reloads the default keymap.
182
CN2B Mobile Computer User’s Manual
Chapter 7 — Programming
Note that remapping the keys in this way affects the key mapping for the
entire system, not just for the application that does the remapping.
There are three “planes” supported for the CN2B keypad. Keys used in
more than one shift plane must be described in each plane.
Unshifted Plane
The unshifted plane contains values from the keypad when not pressed
with other keys, such as the following:
Press the Key
To Enter This
[1]
[5]
[9]
Orange Plane
The orange plane contains values from the keypad when a key is simultaneously pressed with the orange key, such as the following:
Press the Keys
To Enter This
orange [0]
Start menu
orange [6]
A4
orange [9]
PgDn
Alpha (Green) Plane
The alpha plane contains values from the keypad when the keypad has been
placed in alpha mode by pressing the green [Alpha] key, such as:
Press the Keys
To Enter This
[Alpha] [1]
Caps
[Alpha] [5]
[Alpha] [9]
Key Values
Key values for each plane are stored in the registry. All units ship with a
default key mapping loaded in the registry. Applications that change the
default mapping need to read the appropriate key from the registry into an
array of words, modify the values required and then write the updated values back into the registry. The registry access can be done with standard
CN2B Mobile Computer User’s Manual
183
Chapter 7 — Programming
Microsoft API calls, such as RegOpenKeyEx(), RegQueryValueEx(), and
RegSetValueEx(). These registry keys contain the plane mappings:
• The unshifted plane mapping can be found in the registry at:
HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP\KEYBD\Vkey
• The orange plane mapping can be found in the registry at:
HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP\KEYBD\VkeyGold
• The alpha plane mapping can be found in the registry at:
HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP\KEYBD\VkeyAlpha
How Key Values Are Stored in Registry
To know which fields to update in the registry, you must know what Scan
Codes are assigned to each physical key (see page 185). The Scan Code is
used at the lowest level of the system to let the keypad driver know which
physical key is pressed. The keypad driver takes that scan code and looks it
up in a table (a copy of the table in the registry) to determine the values to
pass to the operating system.
Each registry key is just an array that describes to the keypad driver what
value needs to be passed for each physical key. The key values are indexed
by the scan code, this is a zero-based index. For example in the unshifted
plane, the [4] key has a scan code of 0x06. This means that the seventh
word under the “Vkey” registry key has the value for the [4] key. Taking a
sample of the “Vkey” registry key shows the following values:
00,00,0B,05,02,03,C1,07,04,03,BE,00,34,00,00,00,. . .
The value is 34,00. The values are in reverse byte order because that is the
way the processor handles data. When writing an application, nothing
needs to be done to swap the bytes, as this will happen automatically when
the data is read into a byte value. This is something you just need to be
aware of when looking at the registry. Knowing this, we can see that the
value that the keypad driver will pass to the system is a hex 34. Looking that
up on an UNICODE character chart, we see that it maps to a “4”. If you
wanted the key, labeled “4”, to output the letter “A” instead, you would
need to change the seventh word to “41” (the hexadecimal representation
of “A” from the UNICODE chart), then put the key back into the registry.
Note: Do not remap scan codes 0x01, 0x41, 0x42, 0x43, or 0x44, or the
CN2B Computer becomes unit unusuable until a cold-boot is performed.
If you wish to disable a certain key, remap its scan code to 0x00.
Change Notification
Just changing the registry keys do not immediately change the key mappings. Signal the “ITC_KEYBOARD_CHANGE” named event using the
CreateEvent() API to notify the keypad driver the registry was updated.
184
CN2B Mobile Computer User’s Manual
Chapter 7 — Programming
Advanced Keypad Remapping
It is also possible to map multiple key presses to one button and to map
named system events to a button. The multiple key press option could be
useful to cut down on the number of keys needed to press in a given situation or to remap which key behaves like the action key. Mapping events to
a button could be useful to change which buttons will fire the scanner, control volume, and allow for suspending and resuming the device. If you need
help performing one of these advanced topics please contact Intermec
Technical Support.
Scan Codes
At the lowest driver level, the CN2B keypad identifies keys as scan codes.
These scan codes are sent via the keypad microcontroller, and cannot be
changed without modifying the keypad firmware.
Keypad Scan Codes and Meanings
Press this Key
Meaning
Scan Code
Reserved
0x00
I/O button
0x01
Scanner Handle Trigger
0x02
Scanner Left
0x03
Scanner Right
0x04
4/GHI/A2
0x06
None
0x07
Left arrow/Back Tab
0x08
None
0x09
[BkSp]
BkSp// (forward slash)
0x0A
orange
orange key
0x0B
None
0x0C
[Esc]
Esc/– (minus sign)
0x0D
[v]
Down arrow
0x0E
[1]
1/Caps
0x0F
[7]
7/PQRS/PgUp
0x10
[Alpha]
[Alpha] key
0x11
None
0x12
[I/O]
[4]
CN2B Mobile Computer User’s Manual
185
Chapter 7 — Programming
Keypad Scan Codes and Meanings (continued)
186
Press this Key
Meaning
Scan Code
[^]
Up arrow/Volume increase
0x13
Right arrow/Tab
0x14
[2]
2/ABC
0x15
[8]
8/TUV/* (asterisk)
0x16
[0]
0/Win
0x17
[5]
5/JKL/A3
0x18
None
0x19
[Action]
Action/+ (plus symbol)
0x1A
[3]
3/DEF/backlight
0x1B
[9]
9/WXYZ/PgDn
0x1C
[ENTER]
Enter/@ (at symbol)
0x1D
[6]
6/MNO/A4
0x1E
None
0x1F-0x40
Charge Detect
0x41
LCD frontlight
0x42
Ambient light
0x42
Threshold crossed
0x42
Headset detected
0x43
Keypad Backlight
0x44
Ambient Light
0x44
Threshold Crossed
0x44
CN2B Mobile Computer User’s Manual
Chapter 7 — Programming
Sample View of Registry Keys
The following is a sample view of the current default key mapping for the
CN2B keypad. See the registry on your device for the latest key mappings.
[HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP\KEYBD]
”ResumeMask”=dword:7
”Vkey”=hex: 00,00,0B,05,02,03,C1,07,04,03,BE,00,34,00,00,00,\
25,00,00,00,08,00,03,02,00,00,1B,00,28,00,31,00,\
37,00,01,02,00,00,26,00,27,00,32,00,38,00,30,00,\
35,00,00,00,01,03,33,00,39,00,0D,00,36,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,07,05,01,05,03,05,02,05
”VkeyGold”=hex:00,00,0B,05,02,03,C1,07,04,03,BE,00,34,00,00,00,\
09,01,00,00,BF,00,03,02,00,00,BD,00,75,00,72,00,\
21,00,01,02,00,00,76,00,09,00,73,00,38,01,5B,00,\
35,00,00,00,BB,01,09,05,22,00,32,01,36,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,07,05,01,05,03,05,02,05
”VkeyAlpha”=hex:00,00,0B,05,02,03,C1,07,04,03,BE,00,47,00,00,00,\
25,00,00,00,08,00,03,02,00,00,1B,00,28,00,02,02,\
50,00,01,02,00,00,26,00,27,00,41,00,54,00,20,00,\
4A,00,00,00,01,03,44,00,57,00,0D,00,4D,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
00,00,07,05,01,05,03,05,02,05
CN2B Mobile Computer User’s Manual
187
Chapter 7 — Programming
188
CN2B Mobile Computer User’s Manual
A
Configurable Settings
This appendix contains information about the Intermec Settings, Utilities,
and Wireless Network applets that may be on the CN2B Mobile Computer. Information about using reader commands and configuration bar
codes to configure some of your settings is also in this appendix.
Note: Information about the settings you can configure with the Intermec
Settings applet is described in the Intermec Computer Command Reference
Manual (P/N: 073529). The online manual is available from the Intermec
web site at www.intermec.com.
CN2B Mobile Computer User’s Manual
189
Appendix A — Configurable Settings
Configuration Parameters
A configuration parameter changes the way the CN2B Computer operates,
such as configuring a parameter to have the CN2B Computer emit a very
loud beep in a noisy environment. Use either of the following methods to
execute configuration parameters:
• Send parameters from an SNMP management station. See “SNMP Configuration on the Mobile Computer” on page 109.
• Scan EasySet bar codes. You can use the EasySet bar code creation software from Intermec Technologies Corporation to print configuration
labels. Scan the labels to change the scanner configuration and data
transfer settings.
Use the Intermec EasySet software to print configuration labels you can
scan to change your configuration settings. For more information, see
the EasySet online help. EasySet is available from the Intermec Data
Capture web site.
Menus of available parameters for each group are listed. Use the scroll bars
to go through the list. Expand each menu (+) to view its parameter settings.
Tap a parameter to select, or expand a parameter to view its subparameters.
Note that each parameter or subparameter is shown with its default setting
or current setting in (< >) brackets. Tap a parameter or subparameter to
select that parameter, then do any of the following to change its setting:
Tap Apply to apply any changes.
• Typing a new value in an entry field.
• Choosing a new value from the drop-down list.
• Selecting a different option. The selected option contains a bullet.
• Tap Defaults, then Apply to restore factory-default settings. Tap Yes
when you are prompted to verify this action.
• Tap Refresh to discard changes and start again. Tap Yes when you are
prompted to verify this action.
190
CN2B Mobile Computer User’s Manual
Appendix A — Configurable Settings
Intermec Settings Applet
You may have the Intermec Settings applet. Information about the settings
you can configure with this applet is described in the Intermec Computer
Command Reference Manual. The online manual is available from the Intermec web site at www.intermec.com.
See the Data Collection Resource Kit in the IDL for information about
data collection functions. The IDL is available as a download from the
Intermec web site at www.intermec.com. Contact your Intermec representative for more information.
To access the settings from the CN2B Computer, tap Start > Settings >
the System tab > Intermec Settings to access its applet.
Utilities Applet
The Utilities applet examines and modifies settings and operational modes
of specific hardware and software on the CN2B Computer, including the
registry storage, wakeup mask, and application launch keys.
To access the settings from the CN2B Computer, tap Start > Settings >
the System tab > Utilities to access its applet. These tabs represent the following groups of settings or parameters:
• Registry Save (next paragraph)
• Wakeup Mask (page 192)
• App Launch (page 193)
Registry Save
From the CN2B Computer, tap Start > Settings > the System tab > Utilities > the Registry Save tab to access the Registry Save page.
For Windows Mobile 2003, the only medium available for saving the registry is the Flash File System (PSM). Registry data is stored in the
CN2B Mobile Computer User’s Manual
191
Appendix A — Configurable Settings
“\Flash_File_Store\Registry” path. Check Enable Registry Storage to
enable this function.
Wakeup Mask
From the CN2B Computer, tap Start > Settings > the System tab > Utilities > the Wakeup Mask tab to access the Wakeup Mask page.
This page programs three scanner buttons and the A1 and A2 application
keys to be “wakeup” or resume keys. That is, to prompt the CN2B Computer to “wake up” or resume activity after going to “sleep” as a result of
being inactive after a length of time. This information remains between
warm and cold boots. Check the appropriate box, then tap ok to apply.
Based on the setting, do the following to “wake up” the CN2B Computer.
192
Middle Scanner Button
Squeeze the button on the Scan Handle
Left Scanner Button
Squeeze the left scanner button
Right Scanner Button
Squeeze the right scanner button
GOLD + A1 (Application 1)
Press orange [period]
GOLD + A2 (Application 2)
Press orange [4]
CN2B Mobile Computer User’s Manual
Appendix A — Configurable Settings
App Launch
From the CN2B Computer, tap Start > Settings > the System tab > Utilities > the App Launch tab to access the Application Launch page.
This page programs or maps two scanner buttons and four application keys
to start up to six applications. Note that the left scanner button also acts as the
record button.
For CN2B Computers with an imager,
default mappings are shown in the following illustration.
For CN2B Computers without an imager,
the default maps the Record, Calendar, Contacts, and Tasks applications
the top four and the A3 and A4 buttons are “unassigned.”
Note: Record, Calendar, Contacts, and Tasks are Pocket PC applications.
See Chapter 2, “Windows Mobile 2003” for information.
• To assign an application to a button, select an application from the
applicable drop-down list box.
• To assign a new application, select the “Add new application” option,
which brings up an Open File dialog and browse Secure Digital storage
cards for new applications.
• To disable or unmap a currently mapped application from a corresponding button, select “unassigned” from the applicable drop-down list.
• Tap Defaults in the lower right corner to restore defaults.
Note: You cannot map an application to more than one button. Should
you assign the same application to two buttons, a verification prompt
appears after the second button to confirm whether you want to remap the
application. If you tap Yes, the applet changes the first button to “unassigned” and maps the application to the second button.
Note: All changes are activated immediate upon selection.
CN2B Mobile Computer User’s Manual
193
Appendix A — Configurable Settings
Wireless Network Applet
Note: See Chapter 4, “Network Support” for information about the
802.11b/g radio module.
About the Wireless Network
Your wireless adapter (network interface card) connects to wireless networks of two types: infrastructure networks and ad-hoc networks.
• Infrastructure networks get you onto your corporate network and the
internet. Your CN2B Computer establishes a wireless connection to an
access point, which links you to the rest of the network. When you connect to a network via an access point, you are using the 802.11b/g infrastructure mode.
• Ad-hoc networks are private networks shared between two or more clients, even with no access point.
Each wireless network is assigned a name (or Service Set Identifier —
SSID) to allow multiple networks to coexist in the same area without
infringement.
Intermec Technologies recommends using security measures with wireless
networks to prevent unauthorized access to your network and to ensure
your privacy of transmitted data. The following are required elements for
secure networks:
• Authentication by both the network and the user
• Authentication is cryptographically protected
• Transmitted data
There are many schemes available for implementing these features.
Terminology
Below are terms you may encounter when configuring the wireless network:
• CKIP (Cisco Key Integrity Protocol)
This is Cisco’s version of the TKIP protocol, compatible with Cisco Airnet products.
• EAP (Extensible Authentication Protocol)
802.11b/g uses this protocol to perform authentication. This is not necessarily an authentication mechanism, but is a common framework for
transporting actual authentication protocols. Intermec provides a number of EAP protocols for you to choose the best for the network.
• TKIP (Temporal Key Integrity Protocol)
This protocol is part of the IEEE 802.11b/g encryption standard for
wireless LANs., which provides per-packet key mixing, a message integ-
194
CN2B Mobile Computer User’s Manual
Appendix A — Configurable Settings
rity check and a re-keying mechanism, thus overcoming most of the
weak points of WEP. This encryption is more difficult to crack than the
standard WEP. Weak points of WEP include:
• No Installation Vector (IV) reuse protection
• Weak keys or no key updates
• No protection against message replay
• No detection of message tampering
• WEP (Wired Equivalent Privacy) encryption
With preconfigured WEP, both the client CN2B Computer and access
point are assigned the same key, which can encrypt all data between the
two devices. WEP keys also authenticate the CN2B Computer to the
access point — unless the CN2B Computer can prove it knows the WEP
key, it is not allowed onto the network.
WEP keys are only needed if they are expected by your clients. There are
two types available: 64-bit (5-character strings, 12345) (default) and
128-bit (13-character strings, 1234567890123). Enter these as either
ASCII (12345) or Hex (0x3132333435).
• WPA (Wi-Fi Protected Access)
This is an enhanced version of WEP that does not rely on a static, shared
key. It encompasses a number of security enhancements over WEP,
including improved data encryption via TKIP and 802.11b/g authentication with EAP.
Configuring Your Wireless Network
To start 802.11b/g communications on the CN2B Computer, tap Start >
Settings > the System tab > Wireless Network to access the Profile Wizard
for the 802.11b/g radio module.
A profile contains all the information necessary to authenticate you to the
network, such as login name, password or certificate, and protocols by
which you are authenticated.
You can have up to four profiles for different networks. For example, you
may have different login names or passwords on different networks, or you
may use a password on one network, and a certificate on another.
CN2B Mobile Computer User’s Manual
195
Appendix A — Configurable Settings
Use the Profiles page to select and configure between the networking environments assigned to this 802.11b/g radio.
• Profile:
Tap the drop-down list to choose between four different profiles
assigned to this unit, then tap Edit Select Profile, make the changes
needed for this profile (starting on the next page), then tap OK to return
to the Profiles page.
• Enable Microsoft’s Wireless Zero Config
Check this box to enable Microsoft’s Wireless Zero Config application.
This effectively disables the Intermec software solution for 802.11b/g,
including configuration via the Wireless Network applet.
Basic
Use the Basic page to set the network type, name, and manage battery
power for this profile. Tap ok or OK to return to the Profiles page.
• Profile Label:
Enter a unique name for your profile.
• Network type:
Tap the drop-down list to select either “Infrastructure” if your network
uses access points to provide connectivity to the corporate network or
internet; or “Ad-Hoc” to set up a private network with one or more participants.
• Channel:
If you selected “Ad-Hoc” for the network type, select the channel on
which you are communicating with others in your network. There are
up to 11 channels available.
• SSID (Network Name):
This assumes the profile name unless another name is entered in this field.
If you want to connect to the next available network or are not familiar
with the network name, enter “ANY” in this field. Consult your LAN
administrator for network names.
196
CN2B Mobile Computer User’s Manual
Appendix A — Configurable Settings
• Enable Power Management:
Check this box to conserve battery power (default), or clear this box to
disable this feature.
Security
The following are available from the 8021x Security drop-down list. Note
that the last four methods are available if you have purchased the security package. Contact your Intermec representative for information.
• None (next paragraph)
• PEAP (page 198)
• TLS (page 201)
• TTLS (page 203)
• LEAP (page 207)
• EAP-FAST (page 209)
None
Use “None” to disable 802.11b/g Security and enable WEP encryption.
To Disable 802.1x Security
1 Set 8021x Security as “None.”
2 Set Association to “Open.”
CN2B Mobile Computer User’s Manual
197
Appendix A — Configurable Settings
3 Set Encryption to “None.”
To Enable WEP Encryption
1 Set 8021x Security as “None.”
2 Set Association to either “Open” if WEP keys are not required; or
“Shared” when WEP keys are required for association.
3 Set Encryption to “WEP.” See page 195 for information about WEP
encryption.
4 If you had set Association to “Shared,” then select a data transmission
key from the Data TX Key drop-down list near the bottom of this
screen, then enter the encryption key for that data transmission in the
appropriate Key # field.
PEAP (Protected EAP)
This protocol is suitable for performing secure authentication against Windows domains and directory services. It is comparable to EAP-TTLS (see
page 18), both in its method of operation and its security, though not as
flexible. This does not support the range of inside-the-tunnel authentication methods supported by EAP-TTLS. Microsoft and Cisco both support
this protocol.
Use “PEAP” to configure the use of PEAP as an authentication protocol
and to select “Open,” “WPA,” or “Network EAP” as an association mode.
198
CN2B Mobile Computer User’s Manual
Appendix A — Configurable Settings
To Enable PEAP with an Open Association
1 Set 8021x Security as “PEAP.”
2 Set Association to “Open.”
3 Skip Encryption as it is automatically set to “WEP.” See page 195 for
information about WEP encryption.
4 Enter your unique user name and password to use this protocol. Select
Prompt for password to have the user enter this password each time to
access the protocol; or leave Use following password as selected to automatically use the protocol without entering a password.
5 Tap Get Certificates to obtain or import server certificates. See page 207
for more information.
6 Tap Additional Settings to assign an inner PEAP authentication and set
options for server certificate validation and trust. See page 201 for more
information.
To Enable PEAP with WPA Encryption
1 Set 8021x Security as “PEAP.”
2 Set Association to “WPA.” See page 195 for information about WPA
encryption.
3 Skip Encryption as it is automatically set to “TKIP.” See page 194 for
more information about TKIP.
4 Enter your unique user name and password to use this protocol. Select
Prompt for password to have the user enter this password each time to
access the protocol, or leave Use following password as selected to automatically use the protocol without entering a password.
5 Tap Get Certificates to obtain or import server certificates. See page 207
for more information.
CN2B Mobile Computer User’s Manual
199
Appendix A — Configurable Settings
6 Tap Additional Settings to assign an inner PEAP authentication and set
options for server certificate validation and trust. See page 201 for more
information.
To Enable PEAP with Network EAP
1 Set 8021x Security as “PEAP.”
2 Set Association to “Network EAP.” See page 194 for information about
EAP.
3 Set Encryption to either “WEP” or “CKIP.” See page 194 for information about CKIP and page 195 for information about WEP encryption.
4 Enter your unique user name and password to use this protocol. Select
Prompt for password to have the user enter this password each time to
access the protocol, or leave Use following password as selected to automatically use the protocol without entering a password.
5 Tap Get Certificates to obtain or import server certificates. See page 207
for more information.
6 Tap Additional Settings to assign an inner PEAP authentication and set
options for server certificate validation and trust. See below for more
information.
200
CN2B Mobile Computer User’s Manual
Appendix A — Configurable Settings
Additional Settings
1 Select an authentication method from the Inner PEAP Authentication
drop-down list.
• EAP/MS-CHAP-V2
Authenticates against a Windows Domain Controllre and other nonWindows user databases. This is Microsoft’s implementation of
PEAP.
• EAP/Token Card
Use with token cards. The password value entered is never cached.
This is Cisco’s implementation of PEAP.
• EAP/MD5-Challenge
Message Digest 5. A secure hashing authentication algorithm.
2 Check Validate Server Certificate to verify the identity of the authentication server based on its certificate when using TTLS or PEAP.
3 Enter the Common Names of trusted servers. Note that if these fields are
left blank, the server certificate trust validation is not performed or required.
Click ok to return to the Security page.
TLS (EAP-TLS)
EAP-TLS is a protocol that is based on the TLS (Transport Layer Security)
protocol widely used to secure web sites. This requires both the user and
authentication server have certificates for mutual authentication. While
cryptically strong, this requires corporations that deploy this to maintain a
certificate infrastructure for all their users.
Use “TLS” to configure the use of EAP-TLS as an authentication protocol,
and to select “Open,” “WPA,” or “Network EAP” as an association mode.
To Enable TLS with an Open Association
1 Set 8021x Security as “TLS,” and Association to “Open.” Skip Encryption as it is automatically set to “WEP.” See page 195 for information
about WEP encryption.
2 Enter your unique Subject Name and User Name to use this protocol.
CN2B Mobile Computer User’s Manual
201
Appendix A — Configurable Settings
3 Tap Get Certificates to obtain or import server certificates. See page 207
for more information.
4 Tap Additional Settings to set options for server certificate validation
and trust. See page 203 for more information.
To Enable TLS with WPA Encryption
1 Set 8021x Security as “TLS” and Association to “WPA.” See page 195
for information about WPA encryption. Skip Encryption as it is automatically set to “TKIP.” See page 194 for more information about
TKIP.
2 Enter a unique Subject Name and User Name as credentials.
3 Tap Get Certificates to obtain or import server certificates. See page 207
for more information.
4 Tap Additional Settings to set options for server certificate validation
and trust. See page 203 for more information.
To Enable TLS with Network EAP
1 Set 8021x Security as “TLS” and Association to “Network EAP.” See
page 194 for information about EAP.
2 Set Encryption to either “WEP” or “CKIP.” See page 194 for information about CKIP and page 195 for information about WEP encryption.
Enter a unique Subject Name and User Name as credentials.
202
CN2B Mobile Computer User’s Manual
Appendix A — Configurable Settings
3 Tap Get Certificates to obtain or import server certificates. See page 207
for more information. Tap Additional Settings to assign an inner TLS
authentication and set options for server certificate validation and trust.
See page 203 for more information.
Additional Settings
1 Check Validate Server Certificate to verify the identity of the authentication server based on its certificate when using TLS.
2 Enter the Common Names of trusted servers. Note that if these fields are
left blank, the server certificate trust validation is not performed or required.
3 Click ok to return to the Security page.
TTLS (EAP-Tunneled TLS)
This protocol provides authentication like EAP-TLS (see page 201) but
does not require certificates for every user. Instead, authentication servers
are issued certificates. User authentication is done using a password or other
credentials that are transported in a securely encrypted “tunnel” established
using server certificates.
EAP-TTLS works by creating a secure, encrypted tunnel through which
you present your credentials to the authentication server. Thus, inside EAPTTLS there is another inner authentication protocol that you must configure
via Additional Settings.
CN2B Mobile Computer User’s Manual
203
Appendix A — Configurable Settings
Use “TTLS” to configure the use of EAP-TTLS as an authentication protocol, and select “Open,” “WPA,” or “Network EAP” as an association mode.
To Enable TTLS with an Open Association (default configuration)
1 Set 8021x Security as “TTLS.”
2 Set Association to “Open.”
3 Skip Encryption as it is automatically set to “WEP.” See page 195 for
information about WEP encryption.
4 Enter your unique user name and password to use this protocol. Select
Prompt for password to have the user enter this password each time to
access the protocol, or leave Use following password as selected to automatically use the protocol without entering a password.
5 Tap Get Certificates to obtain or import server certificates. See page 207
for more information.
6 Tap Additional Settings to assign an inner TTLS authentication and an
inner EAP, and set options for server certificate validation and trust. See
page 206 for more information.
To Enable TTLS with WPA Encryption
1 Set 8021x Security as “TTLS.”
2 Set Association to “WPA.” See page 195 for information about WPA
encryption.
3 Skip Encryption as it is automatically set to “TKIP.” See page 194 for
more information about TKIP.
4 Enter your unique user name and password to use this protocol. Select
Prompt for password to have the user enter this password each time to
access the protocol, or leave Use following password as selected to automatically use the protocol without entering a password.
5 Tap Get Certificates to obtain or import server certificates. See page 207
for more information.
204
CN2B Mobile Computer User’s Manual
Appendix A — Configurable Settings
6 Tap Additional Settings to assign an inner TTLS authentication and an
inner EAP, and set options for server certificate validation and trust. See
page 206 for more information.
To Enable TTLS with Network EAP
1 Set 8021x Security as “TTLS.”
2 Set Association to “Network EAP.” See page 194 for information about
EAP.
3 Set Encryption to either “WEP” or “CKIP.” See page 194 for information about CKIP and page 195 for information about WEP encryption.
4 Enter your unique user name and password to use this protocol. Select
Prompt for password to have the user enter this password each time to
access the protocol, or leave Use following password as selected to automatically use the protocol without entering a password.
5 Tap Get Certificates to obtain or import server certificates. See page 207
for more information.
6 Tap Additional Settings to assign an inner TTLS authentication and set
options for server certificate validation and trust. See below for more
information.
CN2B Mobile Computer User’s Manual
205
Appendix A — Configurable Settings
Additional Settings
1 Select an authentication protocol from the Inner TTLS Authentication
drop-down list:
• PAP (Password Authentication Protocol)
A simple authentication protocol that sends security information in
the clear.
• CHAP (Challenge Handshake Authentication Protocol)
Use of Radius to authenticate a terminal without sending security data
in the clear. Authenticates against non-Windows user databases. You
cannot use this if authenticating against a Windows NT Domain or
Active Directory.
• MS-CHAP, MS-CHAP-V2
Authenticates against a Windows Domain Controller and other nonWindows user databases.
• PAP/Token Card
Use with token cards. The password value entered is never cached.
• EAP (Extensible Authentication Protocol)
See page 194 for information about EAP.
2 If you select “EAP” for the inner authentication protocol, then select an
inner EAP protocol from the Inner EAP drop-down list.
3 Enter the Common Names of trusted servers. Note that if these fields are
left blank, the server certificate trust validation is not performed or required.
4 Check Validate Server Certificate to verify the identity of the authentication server based on its certificate when using TTLS, PEAP, and TLS.
5 Enter the Anonymous EAP-TTLS Name as assigned for public usage.
Use of this outer identity protects your login name or identity.
6 Click ok to return to the Security page.
206
CN2B Mobile Computer User’s Manual
Appendix A — Configurable Settings
To Get Certificates
Certificates are pieces of cryptographic data that guarantee a public key is
associated with a private key. They contain a public key and the entity
name that owns the key. Each certificate is issued by a certificate authority.
Use this page to import a certificate onto the CN2B Computer.
Root Certificates
1 Tap the <<< button next to the Import Root Certificate field to select
the root certificate (DER-encoded .CER file) to import.
2 Click Import Root Cert to install the selected certificate.
User Certificate
1 Tap the <<< button next to the Certificate Path field to select the user
certificate (DER-encoded .CER file without the private key) to import.
2 Tap the <<< button next to the Key Path field to select the private key
(.PVK file) which corresponds to the user certificate chosen in step 1.
3 Tap Import User Cert to install the selected certificate.
Web Enrollment
Tap Web Enrollment to obtain a user certificate over the network from an
IAS Server. Tap ok to return to the Security page.
LEAP (Cisco Lightweight EAP)
LEAP is the Cisco Lightweight version of EAP. See page 194 for information about EAP.
Use “LEAP” to configure the use of LEAP as an authentication protocol,
select “Open,” “WPA,” or “Network EAP” as an association mode, or
assign Network EAP. Note that this defaults to the Network EAP.
To Enable LEAP with an Open Association
1 Set 8021x Security as “LEAP.”
2 Set Association to “Open.”
3 Skip Encryption as it is automatically set to “WEP.” See page 195 for
information about WEP encryption.
CN2B Mobile Computer User’s Manual
207
Appendix A — Configurable Settings
4 Enter your unique User Name to use this protocol.
5 Select Prompt for password to have the user enter this password each
time to access the protocol, or leave Use following password as selected
to automatically use the protocol without entering a password.
To Enable LEAP with WPA Encryption
1 Set 8021x Security as “LEAP.”
2 Set Association to “WPA.” See page 195 for information about WPA
encryption.
3 Skip Encryption as it is automatically set to “TKIP.” See page 194 for
more information about TKIP.
4 Enter your unique User Name to use this protocol.
5 Select Prompt for password to have the user enter this password each
time to access the protocol, or leave Use following password as selected
to automatically use the protocol without entering a password.
To Enable LEAP with Network EAP
1 Set 8021x Security as “LEAP” and Association to “Network EAP,” an
EAP protocol for the network. See page 194 for information about EAP.
2 Set Encryption to either “WEP” or “CKIP.” See page 194 for information about CKIP and page 195 for information about WEP encryption.
208
CN2B Mobile Computer User’s Manual
Appendix A — Configurable Settings
3 Enter your unique User Name to use this protocol.
4 Select Prompt for password to have the user enter this password each
time to access the protocol, or leave Use following password as selected
to automatically use the protocol without entering a password.
EAP-FAST (EAP-Flexible Authentication via Secured Tunnel )
The EAP-FAST protocol is a client-server security architecture that
encrypts EAP transactions with a TLS tunnel. While similar to PEAP in
this respect, it differs significantly in that EAP-FAST tunnel establishment
is based upon strong secrets that are unique to users. These secrets are called
Protected Access Credentials (PACs), which CiscoSecure ACS generates
using a master key known only to CiscoSecure ACS. Because handshakes
based upon shared secrets are intrinsically faster than handshakes based
upon PKI, EAP-FAST is the significantly faster of the two solutions that
provide encrypted EAP transactions. No certificate management is required
to implement EAP-FAST.
Use “EAP-FAST” to configure the use of EAP-FAST as an authentication
protocol, select “Open,” “WPA,” or “Network EAP” as an association
mode.
To Enable EAP-FAST with an Open Association
1 Set 8021x Security as “EAP-FAST.”
2 Set Association to “Open.”
3 Skip Encryption as it is automatically set to “WEP.” See page 195 for
information about WEP encryption.
4 Enter your unique User Name to use this protocol.
5 Select Prompt for password to have the user enter this password each
time to access the protocol, or leave Use following password as selected
to automatically use the protocol without entering a password.
CN2B Mobile Computer User’s Manual
209
Appendix A — Configurable Settings
6 Tap Additional Settings to set options for PAC management and assign
an anonymous EAP-FAST name. See page 211 for more information.
To Enable EAP-FAST with WPA Encryption
1 Set 8021x Security as “EAP-FAST.”
2 Set Association to “WPA.” See page 195 for information about WPA
encryption.
3 Skip Encryption as it is automatically set to “TKIP.” See page 194 for
more information about TKIP.
4 Enter your unique User Name to use this protocol.
5 Select Prompt for password to have the user enter this password each
time to access the protocol, or leave Use following password as selected
to automatically use the protocol without entering a password.
6 Tap Additional Settings to set options for PAC management and assign
an anonymous EAP-FAST name. See page 211 for more information.
To Enable EAP-FAST with Network EAP
1 Set 8021x Security as “EAP-FAST.”
2 Set Association to “Network EAP,” an EAP protocol for the network.
See page 194 for information about EAP.
210
CN2B Mobile Computer User’s Manual
Appendix A — Configurable Settings
3 Set Encryption to either “WEP” or “CKIP.” See page 194 for information about CKIP and page 195 for information about WEP encryption.
4 Enter your unique User Name to use this protocol.
5 Select Prompt for password to have the user enter this password each
time to access the protocol, or leave Use following password as selected
to automatically use the protocol without entering a password.
6 Tap Additional Settings to set options for PAC management and assign
an anonymous EAP-FAST name. See next page for more information.
Additional Settings
1 Tap PAC Manager to view the PAC files currently installed on your
CN2B. Tap ok to return to the Additional Settings screen.
2 If you already have a PAC on your CN2B, clear Allow Automatic PAC
provisioning to avoid receiving additional PACs from the server.
3 If Allow Automatic PAC provisioning is checked, and you want notification of any incoming PACs, then check Prompt before acquiring a
new PAC.
4 If Allow Automatic PAC provisioning is checked, and you want notification whether to replace a current PAC with an incoming PAC, check
Prompt before replacing a PAC.
5 Enter the Anonymous EAP-FAST Name as assigned for public usage.
Use of this outer identity protects your login name or identity.
CN2B Mobile Computer User’s Manual
211
Appendix A — Configurable Settings
6 Click ok to return to the Security page.
Advanced
Use this page to configure additional settings for this profile. Tap ok to
return to the Profiles page.
• Detect Rogue APs (Access Points):
Wireless NICs and access points associate based on the SSID configured
for the NIC. Given an SSID, the BSSID with the strongest signal is
often chosen for association. After association, 802.1x authentication
may occur and during authentication credentials to uniquely identify a
user — these are passed between the NIC and the access point.
The base 802.1x technology does not protect the network from “rogue
APs.” These can mimic a legitimate access point to authentication protocols and user credentials. This provides illegal users ways to mimic legitimate users and steal network resources and compromise security.
Check this box to detect and report client behavior suspected of being
rogue access points. Once detected, your CN2B Computer no longer
associates with that access point until you perform a warm-boot.
Clear this box to solve access point connection problems that result when
an access point gets put on the rogue access point list due to inadvertant
failed authentications and not because it is a real rouge.
• Enable mixed cell:
Mixed cell is a profile-dependent setting. If enabled, you can connect to
mixed cell without using WEP, then you can query the cell to determine
whether you can use encryption.
• Allow fast roaming (CCKM):
When using a wireless LAN that uses Cisco Access Points, a LEAPenabled client device can roam from one access point to another without
involving the authentication (RADIUS) server. If enabled, Cisco Centralized Key Management (CCKM), an access point configured to provide Wireless Domain Services (WDS) takes the place of the RADIUS
server (caching credentials of an initial authentication with the RADIUS
212
CN2B Mobile Computer User’s Manual
Appendix A — Configurable Settings
server) and authenticates the client without perceptible delay in voice or
other time-sensitive applications.
• Enable Logging:
Check this box to log what activity incurs for this profile.
Other Configurable Parameters
Configure the following parameters by sending reader commands through
the network or from an application. See next page for information.
Reader Command
Description
Option
Audio Volume
Changes the volume of all audio signals.
0 - Off
1 - Very quiet
2 - Quiet
3 - Normal (default)
4 - Loud
5 - Very loud
Automatic Shutoff
Sets the length of time the CN2B Computer remains
on with no activity. When you turn on the CN2B
Computer, it either resumes exactly where it was when
you turned it off or boots and restarts your application.
1 - 1 minute
2 - 2 minutes
3 - 3 minutes (default)
4 - 4 minutes
5 - 5 minutes
Backlight Timeout
Sets the length of time that the display backlight
remains on. If you set a longer timeout value, you use
the battery power at a faster rate.
10 - 10 seconds
30 - 30 seconds
60 - 1 minute (default)
120 - 2 minutes
180 - 3 minutes
240 - 4 minutes
300 - 5 minutes
Date/Time
Sets the current date and time.
Date
Year - 0000–9999 (1999)
Month - 1–12 (6)
Day - 1–31 (1)
Time
Hour - 0–23 (0)
Minute - 0–59 (00)
Second - 0–59 (00)
CN2B Mobile Computer User’s Manual
213
Appendix A — Configurable Settings
Reader Command
Description
Option
Key Clicks
Enables or disables the keypad clicks. The CN2B Computer emits a click each time you press a key or decode a
row of a two-dimensional symbology.
0 - Disable clicks
1 - Enable soft key clicks
2 - Enable loud key clicks (default)
Using Reader Commands
After the CN2B Computer is connected to your network, you can send the
CN2B Computer a reader command from an application to perform a task,
such as changing the time and date. Some reader commands temporarily
override configuration settings and some change the configuration settings.
Change Configuration
The Change Configuration command must precede any configuration
command. If you enter a valid string, the CN2B Computer configuration is
modified and the computer emits a high beep. To send the Change Configuration command through the network, use the $+ [command] syntax
where command is the two-letter command syntax for the configuration
command followed by the value to be set for that command.
You can also make changes to several different commands by using the
$+ [command]...[command n] syntax. There are seven configuration
command settings that you can change in this way. See each command for
information on respective acceptable “data” values.
Command
Syntax
Audio Volume
BVdata
Automatic Shutoff
EZdata
Backlight Timeout
DFdata
Key Clicks
KCdata
Virtual Wedge Grid
AFdata
Virtual Wedge Postamble
AEdata
Virtual Wedge Preamble
ADdata
Example 1
To change the Beep Volume to Off, you can send this string to the CN2B
Computer through the network: $+BV0
where:
$+
Indicates Change Configuration.
BV
Specifies the Audio Volume parameter.
Specifies a value of Off.
214
CN2B Mobile Computer User’s Manual
Appendix A — Configurable Settings
Example 2
To change the Beep Volume to Very Quiet and the Virtual Wedge Grid to
123:
$+BV1AF123:
$+
Indicates Change Configuration
BV1
Specifies Audio Volume, set to Very Quiet (1)
AF123
Specifies Virtual Wedge Grid, set to a value of 123.
Set Time and Date
This command sets the date and time on the CN2B Computer. The
default date and time is June 1, 1999 at 12:00 AM.
From the network, send the following:
/+ yyyymmddhhmmss
where acceptable values for the date are:
yyyy
mm
dd
hh
mm
ss
0000-9999
01-12
01-31
00-23
00-59
00-59
Year
Month of the year
Day of the month
Hour
Minutes
Seconds
You can also set the time and date by using the Clock applet in the Settings
menu. To access this applet, tap Start > Settings > the System tab > the
Clock icon.
Configuration Bar Codes
You can change some settings on your CN2B Computer by scanning the
following Code 39 bar code labels.
Note: When you use a bar code creation utility to make a scannable bar
code label, the utility probably adds opening and closing asterisks automatically. Asterisks are included here for translation purposes.
CN2B Mobile Computer User’s Manual
215
Appendix A — Configurable Settings
Audio Volume
Note: The Audio Volume parameter information is on page 213.
Turn Audio Off
*$+BV0*
*$+BV0*
Set Audio Volume to very quiet
*$+BV1*
*$+VB1*
Set Audio Volume to quiet
*$+BV2*
*$+BV2*
Set Audio Volume to normal (default)
*$+BV3*
*$+BV3*
Set Audio Volume to loud
*$+BV4*
*$+BV4*
Set Audio Volume to very loud
*$+BV5*
*$+BV5*
Automatic Shutoff
Note: The Automatic Shutoff parameter information is on page 213.
Set Automatic Shutoff to 1 minute
*$+EZ1*
*$+EZ1*
Set Automatic Shutoff to 2 minutes
*$+EZ2*
*$+EZ2*
216
CN2B Mobile Computer User’s Manual
Appendix A — Configurable Settings
Set Automatic Shutoff to 3 minutes (default)
*$+EZ3*
*$+EZ3*
Set Automatic Shutoff to 4 minutes
*$+EZ4*
*$+EZ4*
Set Automatic Shutoff to 5 minutes
*$+EZ5*
*$+EZ5*
Backlight Timeout
Note: The Backlight Timeout parameter information is on page 213.
Backlight Timeout 10 seconds
*$+DF10*
*$+DF10*
Backlight Timeout 30 seconds
*$+DF30*
*$+DF30*
Backlight Timeout 1 minute (default)
*$+DF60*
*$+DF60*
Backlight Timeout 2 minutes
*$+DF120*
*$+DF120*
Backlight Timeout 3 minutes
*$+DF180*
*$+DF180*
Backlight Timeout 4 minutes
*$+DF240*
*$+DF240*
Backlight Timeout 5 minutes
*$+DF300*
*$+DF300*
CN2B Mobile Computer User’s Manual
217
Appendix A — Configurable Settings
Key Clicks
Note: The Key Clicks parameter information is on page 214.
Disable key clicks
*$+KC0*
*$+KC0*
Enable soft key clicks
*$+KC1*
*$+KC1*
Enable loud key clicks (default)
*$+KC2*
*$+KC2*
Virtual Wedge Grid, Preamble, Postamble
The following parameters are user-configurable strings. Refer to a full
ASCII chart for more information.
Grid
For Virtual Wedge Grid, the first part of the bar code would be the following, which can include a string of up to 240 characters.
*$+AF
*$+AF
Preamble
For Virtual Wedge Preamble, the first part of the bar code would be below,
followed by a string of up to 31 characters (no ) and an asterisk.
*$+AD
*$+AD
Postamble
For Virtual Wedge Postamble, the first part of the bar code would be
below, followed by a string of up to 31 characters (no ) and an
asterisk.
*$+AE
*$+AE
218
CN2B Mobile Computer User’s Manual
B
Troubleshooting the CN2B
Computer
Use this appendix to solve problems you may encounter while using the
CN2B Computer.
CN2B Mobile Computer User’s Manual
219
Appendix B — Troubleshooting the CN2B Computer
Problems and Solutions
These tables offer solutions to the problems you may encounter.
Problems While Operating the CN2B Computer
Problem
Solution
You press Power to turn on the
CN2B and nothing happens.
Try these possible solutions in order:
You press Power to turn off the
CN2B and nothing happens.
To turn off (or suspend) the CN2B Compuyter, hold the Power key for 2 or 3
seconds, then release it.
If the CN2B Computer is processing data, it may not turn off when you press
Power. Wait until the CN2B Computer finishes processing.
If the CN2B Computer appears to be locked up, perform a warm-boot on the
CN2B Computer.
If the CN2B Computer does not respond to a warm-boot, perform a cold-boot.
The CN2B Computer is not
responding to the stylus.
Press and hold the Power key for 2 to 3 seconds, then release it to turn off the
CN2B Computer. Press Power again to turn on the CN2B Computer.
You place the CN2B Computer
in the communications dock, and
the Battery light turns on and is
orange.
• The temperature may not be within the charging range. Make sure that the
temperature is from 0°C to 45°C (32°F to 113°F).
The CN2B Computer appears
locked up and you cannot enter
data.
Try these possible solutions in order:
220
1 Make sure the battery door is installed correctly and completely closed.
2 Make sure you have a charged battery installed correctly.
3 The battery may be discharged. Replace the battery with a spare charged battery, or charge the battery and try again.
4 Perform a warm-boot on the CN2B Computer.
• The battery may be damaged. Replace the battery.
1 Wait at least 10 seconds and try again. If the CN2B Computer is still connecting to the Intermec Application Server or the host, it ignores any input from
the keypad or scanner.
2 Press and hold the Power key for 2 to 3 seconds, and then release it to turn off
the CN2B Computer. Press Power again to turn on the CN2B Computer.
3 Perform a warm-boot on the CN2B Computer.
4 Perform a cold-boot on the CN2B Computer.
5 Try reloading the firmware.
6 If the CN2B Computer does not boot or reset, contact your local Intermec
service representative for help.
CN2B Mobile Computer User’s Manual
Appendix B — Troubleshooting the CN2B Computer
Problems While Configuring Security
Problem
Solution
The CN2B Computer does not
appear to be authenticating.
The CN2B Computer may not be communicating with your access point. Make
sure the network name on the CN2B Computer is the same as the network name
(SSID) of the access point that you are trying to communicate with. The default
network name is “INTERMEC.”
The 802.1x security network may not be active. Make sure that the server software is properly loaded and configured on the server PC. For help, see the documentation that shipped with your server software.
The access point that you are trying to communicate with may not be communicating with the server. Make sure your access point is turned on, properly configured, and has 802.1x security enabled.
The CN2B Computer indicates
that it is not authenticated.
Make sure that:
• The User Name and Password parameters on your CN2B Computer match
the user name and password on your authentication server. You may need to
re-enter the password on both your CN2B Computer and the authentication
server.
• On your authentication server, the user and group are allowed and the group
policy is allowed to log in to the server. For help, see the documentation for
your authentication server software.
• The IP address and secret key for your access point must match the IP address
and secret key on your authentication server. You may need to re-enter the IP
address and secret key on both your access point and authentication server.
• The authentication server software is running on the server PC.
The CN2B Computer indicates
that it is authenticated, but it does
not communicate with the host.
Make sure that the CN2B IP address, host IP address, subnet mask, and default
router are properly configured for your network.
You are setting up multiple access
points in a network, with different
SSIDs, and the connection fails.
The CN2B Computer does not save WEP key values when you change the SSID.
Re-enter the WEP key value after you change the SSID and save your changes.
You should now be able to connect to the different access points.
Problems with Wireless Connectivity
Problem
Solution
A Network Connection icon
appears on the status bar, but the
host computer is not receiving any
data from the CN2B Computer.
In a UDP Plus network, there may be a problem with the connection between
the Intermec Application Server and the host computer. Check with your network administrator or see the user’s manual for the Intermec Application Server.
In a TCP/IP network, there may be a problem with the connection between the
access point and the host computer. Check with your network administrator or
use your access point user’s manual.
When you turn on the CN2B
Computer after it was suspended
for a while (10-15 minutes or
longer), it can no longer send or
receive messages over the network.
The CN2B Computer may not recognize the network card. Turn off the CN2B
Computer, and then turn it on again.
The host may have deactivated or lost your current terminal emulation session.
In a TCP/IP direct connect network, you need to turn off the “Keep Alive” message (if possible) from the host so that the TCP session is maintained while a
CN2B Computer is suspended.
CN2B Mobile Computer User’s Manual
221
Appendix B — Troubleshooting the CN2B Computer
Problems with Wireless Connectivity (continued)
Problem
Solution
The CN2B Computer is connected to the Intermec Application Server or host computer and
you move to a new site to collect
data. A Network Connection icon
was visible but now the no network connection icon is visible.
You may have gone out of range of an access point.
Try moving closer to an access point or to a different location to re-establish
communications. Once you are in range again, the network connection icon
appears again. Any data you collected while out of range is transmitted over the
network.
The no network connection icon
appears on the status bar.#
The no network connection icon appears in three situations:
• The CN2B Computer may not have an IP address. You must configure an IP
address for the CN2B Computer or make sure that DHCP assigned an
address. Use Intermec Settings and select the radio tab to make sure an IP
address is assigned.
• The CN2B Computer may not be connected to the access point. Try these
possible solutions in order:
• Make sure the access point is turned on and operating.
• Make sure you are not using the CN2B Computer out of range of an
access point. Try moving closer to an access point to re-establish communications.
• Make sure the CN2B Computer is configured correctly for your network.
The radio parameters on the CN2B Computer must match the values set
for all access points the CN2B Computer may communicate with.
• If you have an 802.11b/g radio, the radio initialization process may have
failed. Try resetting the CN2B Computer.
• If you have tried these possible solutions and the no network connection icon
still appears, you may have a defective radio card. For help, contact your local
Intermec representative.
Problems While Scanning Bar Codes
Problem
Solution
You cannot see a red beam of light
from the scanner when you press
the Scan button or one of the
Side Scan buttons and aim the
scanner at a bar code label.
There are three possible problems:
• You may be too far away from the bar code label. Try moving closer to the bar
code label and scan it again.
• You may be scanning the bar code label “straight on.” Change the scanning
angle and try again.
• The PSM files may not be correctly installed.
You can test the effective range of the scanner. Move within 61 cm (2 ft) of a wall
and test the scanner. You need to be within the scanning range to scan bar code
labels.
When you release the Scan button or Side Scan button, the
Good Read light does not turn
off.
The Good Read light remains on if you configure the CN2B Computer to use
continuous/edge triggering. If you configure the CN2B Computer for level triggering and the Good Read light remains on, there may be a problem. Press the
Scan button or one of the Side Scan buttons again without scanning a bar code
label. If the light is still on, contact your local Intermec service representative.
222
CN2B Mobile Computer User’s Manual
Appendix B — Troubleshooting the CN2B Computer
Problems While Scanning Bar Codes (continued)
Problem
Solution
The scanner will not read the bar
code label.
Make sure you aim the scanner beam so it crosses the entire bar code label in one
pass.
The angle you are scanning the bar code label may not be working well, or you
may be scanning the label “straight on.” Try scanning the bar code label again,
but vary the scanning angle.
The bar code label print quality may be poor or unreadable. To check the quality
of the bar code label, try scanning a bar code label that you know will scan. Compare the two bar code labels to see if the bar code quality is too low. You may
need to replace the label that you cannot scan.
Make sure the bar code symbology you are scanning is enabled. Use Intermec
Settings to check the symbologies. If your bar code symbology is disabled, enable
it and then try scanning the bar code label again.
Note: If you restored the CN2B Computer to factory default settings, some of the symbologies may be disabled. Make sure that the application you are running on the computer is expecting input from a bar code. You may need to use the input panel to enter
this information instead of scanning it.
The scanner does not read the bar
code labels quickly, or the scanning beam seems faint or
obscured.
The scanner window may be dirty. Clean the window with a solution of ammonia and water. Wipe dry. Do not allow abrasive material to touch the window.
You scan a valid bar code label to
enter data for your application.
The data decoded by the CN2B
Computer does not match the
data encoded in the bar code
label.
The computer may have decoded the bar code label in a symbology other than
the label’s actual symbology. Try scanning the bar code label again. Make sure
you scan the entire label.
To operate the computer quickly and efficiently, you should only enable the bar
code symbologies that you are going to scan.
Sending the CN2B Computer to Intermec for Service
If you send the CN2B Computer in for service, it is your responsibility to
save the computer data and configuration. Intermec is responsible only for
ensuring that the keypad and other hardware features match the original
configuration when repairing or replacing your computer.
For help understanding your warranty and finding help, see “Global Services and Support” on page xi.
You may be asked for the version of the operating system running on your
CN2B Computer. For help finding this information, see “Software Build
Version” on page 14
CN2B Mobile Computer User’s Manual
223
Appendix B — Troubleshooting the CN2B Computer
Cleaning the Scanner Window and the Touch Screen
To keep the computer in good working order, you may need to clean the
scanner window and touch screen with a solution of ammonia and water.
You can clean the scanner window and the touch screen as often as needed
for the environment in which you are using the computer. You can help
keep the touch screen clean by using the stylus, instead of your fingertip, to
tap the screen.
There are no user-serviceable parts inside the CN2B Computer. Opening the unit voids the warranty and may cause damage to the internal
components.
To clean the scanner window and touch screen
1 Press and hold the Power key for 2 to 3 seconds, and then release it to
turn off the CN2B Computer.
2 Dip a clean towel or rag in the ammonia solution and wring out the
excess. Wipe off the scanner window and touch screen. Do not allow any
abrasive material to touch these surfaces.
3 Wipe dry.
To clean the scanner window
• You can use the Screen Cleaner Kit (P/N 346-065-101) to clean the
scanner window.
224
CN2B Mobile Computer User’s Manual
I
Index
CN2B Mobile Computer User’s Manual
225
Index
Symbols
__RESETMEPLEASE__.TXT, 136
Numerics
6820 printers
NPCP driver, 114
printer support, 113
6920 Communications Server
ManifestName parameter, 144
802.11
API, 161
channel, 196
communications setup, 94, 195
configuration profiles, 162
EAP-FAST
network EAP, 210
WPA encryption, 210
LEAP
network EAP, 208
WPA encryption, 208
network type, 196
PEAP
network EAP, 200
WPA encryption, 199
profile label, 196
profile security information
WEP encryption, 198
profiles, 196
advanced settings, 212
basic information, 196
security information, 197
SSID (network name), 196
TLS
network EAP, 202
TTLS
network EAP, 205
WPA encryption, 204
WPA authentication with pre-shared key
Zero Configuration, 98
zero configuration
WEP encryption, 97
802.11b/g communications, 93
80211API.DLL, 162
80211CONF.EXE, 162
80211SCAN.EXE, 162
802PM.DLL, 162
abrasive material, avoiding, 224
Abstract Syntax Notation.1 See ASN.1
Accessory list, 15
Accounts
via Inbox, 58
ActiveSync
226
adding programs, 33
Folder behavior connected to email server, 56
installing applications, 77
Microsoft Reader, 69
Pocket Internet Explorer
favorite links, 71
mobile favorites, 72
Mobile Favorites folder, 71
replicating registry settings, 79
Start menu icon, 22
URL, 35
Windows Mobile, 35
add_registry_section
AddReg
flags, 132
registry_root_string, 132
value_name, 132
Adding programs
ActiveSync, 33
to the Start menu, 34
via File Explorer, 34
Windows Mobile, 32
AddReg
add_registry_section
flags, 132
registry_root_string, 132
value_name, 132
DefaultInstall, 129
AddWep(), 171
Adjusting settings
Windows Mobile, 32
AllDay events
Calendar
creating, 40
ammonia and water for cleaning, 224
Annotations index
Microsoft Reader, 70
APIs
802.11, 161
Applets
clock, 32, 215
intemec settings
beeper volume, 9, 109
intermec settings, 191
smartsystems, 9, 109
menu, 32
owner information, 32
password, 32
power, 32
battery status, 3
RAM maintenance, 4
system
wireless network, 94, 195
CN2B Mobile Computer User’s Manual
Index
today, 32
utilities, 191
app launch, 193
registry save, 191
wakeup mask, 192
wireless network, 194
Application keys
utilities applet, 192, 193
Application launch applet, 193
AppName
CEStrings, 127
Appointments
Calendar
assigning to a category, 43
changing, 39
creating, 39
setting a reminder, 41
viewing, 39
ASCII
printing, 114
printing to a port
port print method, 114
raw text to printer, 114
ASN.1, 109
Asset management
DeviceURL parameter, 143
Attaching notes to text
Microsoft Reader, 70
Audio files
Windows Media Player, 68
Audio system
external headset jack, 3
microphone, 2
speaker, 2
AutoCab
command line syntax, 83
AutoFTP, 149
AutoIP, 100
Automatic Private IP See AutoIP
Automatic shutoff
bar code configuration, 213, 216
configuration parameter, 213
Autostart FTP, 149
AUTOUSER.DAT, 78
AvantGo channels
Pocket Internet Explorer, 73
Backlight timeout
bar code configuration, 213, 217
configuration parameter, 213
Bar code configuration
audio volume, 213
CN2B Mobile Computer User’s Manual
automatic shutoff, 213
backlight timeout, 213
key clicks, 214
Bar codes
configuration
audio volume, 216
automatic shutoff, 216
backlight timeout, 217
Code 39, 215
key clicks, 218
internal scanner supported symbologies, 124
scanning labels, 215
Basic connect/disconnect functions, 162
Battery
capacity, 17
low battery conditions, 3
RAM maintenance, 4
specifications, 17
status, 3
Beeper
silencing the volume, 8
volume
turning it on, 8
BlockSize
FTP Server, 143
Bluetooth
accessing, 86
activating, 86
connecting with remote devices, 89
WPport, 87
Bluetooth compatibility
network support, 86
Books
Microsoft Reader
adding bookmarks, 70
adding drawings, 70
annotations index, 70
attaching notes, 70
copying, 70
highlighting, 70
reading, 70
removing, 71
searching, 70
Browsing the Internet
Pocket Internet Explorer, 74
Build information
software, 14
BuildMax
CEDevice, 128
BuildMin
CEDevice, 128
227
Index
CAB files
after the extraction, 136
creating, 126
creating INF files, 126
creating with CAB Wizard, 139
installation functions
SETUP.DLL, 136
Cabinet Wizard
creating CAB files, 139
troubleshooting, 140
using the application, 126
CABWIZ.EXE, 126
Calendar
all day events
creating, 40
appointments
assigning to a category, 43
changing, 39
creating, 39
setting a reminder, 41
viewing, 39
categories, 37
options
changing, 45
recurrence pattern, 38
Start menu icon, 22
synchronizing, 37
Capacitor, internal super, 3
Card support
radios, 15
Categories
calendar, 37
CEDevice
BuildMax, 128
BuildMin, 128
ProcessorType, 127
UnsupportedPlatforms, 127
VersionMax, 128
VersionMin, 128
CESelfRegister
DefaultInstall, 129
CESetupDLL
DefaultInstall, 129
CEShortcuts
DefaultInstall, 129
shortcut_list_section
shortcut_filename, 133
shortcut_type_flag, 133
target_file_path, 133
CESignature
SourceDiskNames, 129
Version, 126
228
CEStrings
AppName, 127
InstallDir, 127
Channel
802.11 radio module, 196
ClassID field values
VN_CLASS_ASIC, 152
VN_CLASS_BOOTSTRAP, 152
VN_CLASS_KBD, 152
cleaning the scanner window and touch screen, 224
Clock applet
setting date and time, 215
Windows Mobile settings, 32
CloseHandle()
DTR printing, 119, 120
IrDA printing, 114
NPCP printing, 114, 116
Closing drivers
NPCP, 116
Cold boot
IOCTL_HAL_COLDBOOT, 157
Cold boot, performing, 13
COM1
NPCP parameter, 115
COM1 port, 114
Command line syntax
AutoCab, 83
Communications
DTR, 120
NPCP, 117
CompactFlash cards
installing applications, 78
Computer shutdown, 3
Configuration parameters
automatic shutoff, 213
backlight timeout, 213
date/time, 213
key clicks, 214
volume, 213
ConfigureProfile(), 176
Connecting to
an ISP, 101
email server, 109
Connecting to a mail server
via Inbox, 57
Connections
directly to email server, 109
ending, 108
to an ISP, 101
via modem, 101
via modem
to an ISP, 101
Connections See Getting connected, 101
CN2B Mobile Computer User’s Manual
Index
Contacts
adding to speed dial, 51
changing options, 51
copying, 49
creating, 46
MSN Messenger
managing, 67
sending messages, 68
working with, 67
sending a message, 49
Start menu icon, 22
synchronizing, 47
viewing, 47
Control panel applets
intermec settings, 191
Converting writing to text, 28
CopyFiles
file_list_section
destination_filename, 131
flags, 131
source_filename, 131
Copyfiles
DefaultInstall, 129
Copying
contacts, 49
COREDLL.DLL, 181
CPL802.CPL, 162
CreateEvent(), 184
CreateFile()
DTR printing, 119, 120
IrDA printing, 114
NPCP printing, 114, 115
Date, setting, 215
Date/Time
configuration parameter, 213
DefaultInstall
AddReg, 129
CESelfRegister, 129
CESetupDLL, 129
CEShortcuts, 129
Copyfiles, 129
DeregisterDevice(), 115
DTR printing, 119
DestinationDirs
file_list_section, 130
Detect rogue APs, 212
DEVICEID.H, 154
DeviceIOControl(), 161
DTR printing, 119
NPCP printing, 114
DeviceIoControl()
NPCP printing, 116
CN2B Mobile Computer User’s Manual
DeviceName
FTP Server, 143
DeviceURL
FTP Server, 143
DHCP, 100
replicating registry settings, 79
disk_ordinal
SourceDiskNames, 129
Display specifications, 16
DllRegisterServer, 129
DllUnregisterServer, 129
Documents
creating via Pocket Word, 60
DRAM
low battery shutdown, 4
maintenance, 4
Drawing
creating, 29
Drawing mode
Pocket Word, 63
Drawing on the screen
Pocket Word, 63
Drawings
adding via Microsoft Reader, 70
Drivers
DTR
communications, 120
installing, 119
opening, 120
removing, 119
writing to, 120
NPCP
closing, 116
communications, 117
I/O controls, 116
installing, 115
opening, 115
reading from, 116
removing, 115
writing to, 116
DTR printing, 119
closing driver, 120
communications, 120
opening driver, 120
removing driver, 119
writing to driver, 120
EAP-FAST
802.11 radio module
network EAP, 210
WPA encryption, 210
profile security information, 209
WEP encryption, 209
229
Index
Editing a profile, 196
EnableSuppLogging(), 180
EnableWep(), 171
EnableZeroConfig(), 177
EncryptionStatus(), 172
Ending a connection, 108
Environmental specifications, 16
Epson Escape Sequences, 114
ERROR_INSUFFICIENT_BUFFER
IOCTL_HAL_ITC_READ_PARM, 151
IOCTL_HAL_ITC_WRITE_SYSPARM, 153
ERROR_INVALID_PARAMETER
IOCTL_HAL_ITC_READ_PARM, 151
IOCTL_HAL_ITC_WRITE_SYSPARM, 153
EXITME.BIN, 148
Expansion slot specifications, 16
Favorite links
Pocket Internet Explorer, 71
File Explorer
adding programs to Start menu, 34
File Transfer Protocol See FTP
file_list_section
CopyFiles
destination_filename, 131
flags, 131
source_filename, 131
DestinationDirs, 130
filename
SourceDiskFiles, 130
Find feature
Windows Mobile, 31
fingerprints, cleaning, 224
Flash File Store
packaging an application, 76
Flash file system, utilities applet, 191
Folder behavior connected to email server
ActiveSync, 56
IMAP4, 57
POP3, 57
SMS, 56
FRAME_NOT_ACKED, 117
FTP
client, 145
configurable parameters, 143
BlockSize, 143
DeviceName, 143
DeviceURL, 143
IDNATarget, 144
ManifestName, 144
PauseAtStartup, 144
Root, 144
FTPDCMDS subdirectory, 148
230
heartbeat, 145
RTC 959, 147
server, 145
installing applications, 78
server requests
CDUP, 145
CWD, 145
DELE, 145
HELP, 145
LIST, 145
MKD, 145
MODE, 145
NLST, 145
NOOP, 145
PASS, 145
PWD, 145
QUIT, 145
RETR, 145
RMD, 145
RNFR, 145
RNTO, 145
SITE, 146
SITE ATTRIB, 146
SITE BOOT, 146
SITE COPY, 146
SITE EKEY, 147
SITE EVAL, 147
SITE EXIT, 146
SITE GVAL, 147
SITE HELP, 146
SITE KILL, 146
SITE LOG, 147
SITE PLIST, 147
SITE PVAL, 147
SITE RUN, 147
SITE STATUS, 147
SITE TIMEOUT, 147
STOR, 145
SYST, 145
TYPE, 145
USER, 145
XCUP, 145
XCWD, 145
XMKD, 145
XPWD, 145
XRMD, 145
stopping server from application, 148
support, 145
web browsers, 147
FTPDCE.EXE, 145, 148
AutoFTP, 149
FTP Server, 141
FTPDCE.TXT, 148
CN2B Mobile Computer User’s Manual
Index
FTPDCMDS subdirectory
FTP support, 148
GDI approach, 114
GetAssociationStatus(), 163
GetAuthenticationMode(), 164
GetBSSID(), 164
GetCCXStatus(), 170
GetCurrentDriverName(), 179
GetDiversity(), 165
GetLinkSpeed(), 165
GetMac(), 166
GetNetworkMode(), 166
GetNetworkType(), 167
GetPowerMode(), 168
GetRadioIpAddress(), 170
GetRSSI(), 168
GetSSID(), 167
Getting connected
ISP, 101
to an ISP, 101
creating a modem connection, 101
Windows Mobile, 101
GetTXPower(), 169
GetWepStatus(), 169
Good Read light
troubleshooting, 222
HAL
verion of Pocket PC
IOCTL_HAL_GET_BOOTLOADER_VE
RINFO, 155
IOCTL_HAL_GET_OAL_VERINFO, 155
Headset jack, external, 3
Helper functions, 176
Highlighting text
Microsoft Reader, 70
host computer not receiving data, troubleshooting,
221
I/O controls
NPCP driver, 116
ID field values
IOCTL_HAL_ITC_READ_PARM
ITC_NVPARM_80211_INSTALLED, 152
ITC_NVPARM_80211_RADIOTYPE,
152
ITC_NVPARM_BLUETOOTH_INSTAL
LED, 153
ITC_NVPARM_CONTRAST, 152
ITC_NVPARM_DISPLAY_TYPE, 151
CN2B Mobile Computer User’s Manual
ITC_NVPARM_ECN, 152
ITC_NVPARM_INTERMEC_DATACOL
LECTION_HW, 152
ITC_NVPARM_INTERMEC_DATACOL
LECTION_SW, 152
ITC_NVPARM_INTERMEC_SOFTWAR
E_CONTENT, 152
ITC_NVPARM_MANF_DATE, 151
ITC_NVPARM_MCODE, 152
ITC_NVPARM_SERIAL_NUM, 151
ITC_NVPARM_SERIAL2_INSTALLED,
153
ITC_NVPARM_SERVICE_DATE, 151
ITC_NVPARM_SIM_PROTECT_HW_I
NSTALLED, 153
ITC_NVPARM_SIM_PROTECT_SW_IN
STALLED, 153
ITC_NVPARM_VERSION_NUMBER,
152
ITC_NVPARM_WAN_RI, 152
IOCTL_HAL_ITC_WRITE_SYSPARM
ITC_ WAKEUP_MASK, 154
ITC_REGISTRY_SAVE_ENABLE, 154
IDNA
DeviceName, 143
DeviceURL, 143
IDNATarget, 144
ManifestName, 144
IDNATarget
FTP Server, 144
IMAP4
Folder behavior connected to email server, 57
Inbox
accounts, 58
connecting to a mail server, 57
downloading messages from server, 58
getting connected, 101
managing email messages and folders, 56
Start menu icon, 22
synchronizing email messages, 56
using My Text, 31
INF files
creating, 126
Input panel
letter recognizer, 26
Pocket Word, 61
selecting typed text, 26
Windows Mobile, 22
Installation functions
SETUP.DLL, 136
InstallDir
CEStrings, 127
231
Index
Installing applications
using a storage card, 78
using Secure Digital cards, 78
with ActiveSync, 77
with FTP Server, 78
Installing drivers
DTR, 119
NPCP, 115
Instant messaging, 65
Integrated scanners See Internal scanners
Intermec Device Network Announcement See
IDNA
Intermec part numbers, 15
Intermec settings, 191
beeper volume, 9, 109
Intermec settings applet
smartsystems, 9, 109
INTERMEC.MIB, 110
INTERMEC_PACKET_DRIVER
SwitchPacketDriver(), 180
Internal scanners
configuring, 123
specifications, 16
supported symbologies, 124
Internet explorer
software build version, 14
Internet Service Provider See ISP, 101
IOCTL_GET_CPU_ID, 160
IOCTL_HAL_COLDBOOT, 157, 182
IOCTL_HAL_GET_BOOT_DEVICE, 158
IOCTL_HAL_GET_BOOTLOADER_VERINF
O, 155
IOCTL_HAL_GET_DEVICE_INFO, 150
IOCTL_HAL_GET_DEVICEID, 154
IOCTL_HAL_GET_OAL_VERINFO, 155
IOCTL_HAL_GET_RESET_INFO, 157
IOCTL_HAL_ITC_READ_PARM, 151
IOCTL_HAL_ITC_WRITE_SYSPARM, 153
IOCTL_HAL_REBOOT, 159, 182
IOCTL_HAL_WARMBOOT, 156, 182
IOCTL_LOAD_NDIS_MINIPORT, 161
IOCTL_NPCP_BIND, 117
IOCTL_NPCP_CANCEL, 117
IOCTL_NPCP_CLOSE, 117
IOCTL_NPCP_ERROR, 117
IOCTL_NPCP_FLUSH, 117
IOCTL_PROCESSOR_INFORMATION, 159
IOCTL_UNLOAD_NDIS_MINIPORT, 161
IP address
replicating registry settings, 79
isDHCPEnabled(), 179
ISP
connecting to via Windows Mobile, 101
232
creating
a modem connection, 101
Pocket Internet Explorer, 71
Windows Mobile, 101
isSupplicantRunning(), 177
isZeroConfigEnabled(), 177
ITC_ WAKEUP_MASK, 154
ITC_DEVID_80211RADIO_INTEL_2011B,
152
ITC_DEVID_80211RADIO_MAX values
ITC_DEVID_80211RADIO_INTEL_2011B,
152
ITC_DEVID_80211RADIO_NONE, 152
ITC_DEVID_80211RADIO_NONE, 152
ITC_DEVID_INTERMEC_EVIO, 152
ITC_DEVID_SCANHW_MAX values
ITC_DEVID_INTERMEC_EVIO, 152
ITC_DEVID_SCANHW_NONE, 152
ITC_DEVID_SCANHW_NONE, 152
ITC_IFTP_STOP, 148
ITC_KEYBOARD_CHANGE
CreateEvent(), 184
ITC_NVPARM_80211_INSTALLED, 152
ITC_NVPARM_80211_RADIOTYPE, 152
ITC_NVPARM_BLUETOOTH_INSTALLED,
153
ITC_NVPARM_CONTRAST, 152
ITC_NVPARM_DISPLAY_TYPE, 151
ITC_NVPARM_ECN, 152
ITC_NVPARM_INTERMEC_DATACOLLEC
TION_HW, 152
ITC_NVPARM_INTERMEC_DATACOLLEC
TION_SW, 152
ITC_NVPARM_INTERMEC_SOFTWARE_C
ONTENT, 152
ITC_NVPARM_MANF_DATE, 151
ITC_NVPARM_MCODE, 152
ITC_NVPARM_SERIAL_NUM, 151
ITC_NVPARM_SERIAL2_INSTALLED, 153
ITC_NVPARM_SERVICE_DATE, 151
ITC_NVPARM_SIM_PROTECT_HW_INSTA
LLED, 153
ITC_NVPARM_SIM_PROTECT_SW_INSTAL
LED, 153
ITC_NVPARM_VERSION_NUMBER, 152
ITC_NVPARM_WAN_RI, 152
ITC_REGISTRY_SAVE_ENABLE, 154
ITCADC.MIB, 110
ITCSNMP.MIB, 110
ITCTERMINAL.MIB, 110
Keep Alive message, 221
CN2B Mobile Computer User’s Manual
Index
KernelIoControl
IOCTL_GET_CPU_ID, 160
IOCTL_HAL_COLDBOOT, 157, 182
IOCTL_HAL_GET_BOOT_DEVICE, 158
IOCTL_HAL_GET_BOOTLOADER_VERI
NFO, 155
IOCTL_HAL_GET_DEVICE_INFO, 150
IOCTL_HAL_GET_DEVICEID, 154
IOCTL_HAL_GET_OAL_VERINFO, 155
IOCTL_HAL_GET_RESET_INFO, 157
IOCTL_HAL_ITC_READ_PARM, 151
IOCTL_HAL_ITC_WRITE_SYSPARM, 153
IOCTL_HAL_REBOOT, 159, 182
IOCTL_HAL_WARMBOOT, 156, 182
IOCTL_PROCESSOR_INFORMATION,
159
KernelIoControl(), 150
Key clicks
bar code configuration, 214, 218
configuration parameter, 214
Key sequences
alpha (green) keys, 10
orange keys, 9
Keypad
advanced remapping, 185
alpha (green) key sequences, 10
alpha plane, 183
change notification, 184
driver registry settings, 184
orange key sequences, 9
orange plane, 183
planes, 183
registry settings
alpha plane, 184
orange plane, 184
unshifted plane, 184
remapping, 182
sample registry keys, 187
scan codes, 185
specifications, 16
LEAP
802.11 radio module
network EAP, 208
WPA encryption, 208
profile security information, 207
WEP encryption, 207
CN2B Mobile Computer User’s Manual
LEAP security
fast roaming (CCKM), 212
LED status, 10
Letter recognizer
Windows Mobile input panel, 26
Library
Microsoft Reader, 69
Line printing, 114
lpBytesReturned
IOCTL_GET_CPU_ID, 160
IOCTL_HAL_GET_BOOT_DEVICE, 158
IOCTL_HAL_GET_BOOTLOADER_VERI
NFO, 156
IOCTL_HAL_GET_DEVICE_INFO, 150
IOCTL_HAL_GET_DEVICEID, 154
IOCTL_HAL_GET_OAL_VERINFO, 155
IOCTL_HAL_GET_RESET_INFO, 157
IOCTL_HAL_ITC_READ_PARM, 151
IOCTL_HAL_ITC_WRITE_SYSPARM, 153
IOCTL_PROCESSOR_INFORMATION,
160
lpInBuf
IOCTL_GET_CPU_ID, 160
IOCTL_HAL_COLDBOOT, 157
IOCTL_HAL_GET_BOOT_DEVICE, 158
IOCTL_HAL_GET_BOOTLOADER_VERI
NFO, 156
IOCTL_HAL_GET_DEVICE_INFO, 150
IOCTL_HAL_GET_DEVICEID, 154
IOCTL_HAL_GET_OAL_VERINFO, 155
IOCTL_HAL_GET_RESET_INFO, 157
IOCTL_HAL_ITC_READ_PARM, 151
IOCTL_HAL_ITC_WRITE_SYSPARM, 153
IOCTL_HAL_REBOOT, 159
IOCTL_HAL_WARMBOOT, 156
IOCTL_PROCESSOR_INFORMATION,
160
lpInBufSize
IOCTL_GET_CPU_ID, 160
IOCTL_HAL_COLDBOOT, 157
IOCTL_HAL_GET_BOOT_DEVICE, 158
IOCTL_HAL_GET_DEVICE_INFO, 150
IOCTL_HAL_GET_DEVICEID, 154
IOCTL_HAL_GET_OAL_VERINFO, 155
IOCTL_HAL_GET_RESET_INFO, 157
IOCTL_HAL_REBOOT, 159
IOCTL_HAL_WARMBOOT, 156
233
Index
lpOutBuf
IOCTL_GET_CPU_ID, 160
IOCTL_HAL_COLDBOOT, 157
IOCTL_HAL_GET_BOOT_DEVICE, 158
IOCTL_HAL_GET_BOOTLOADER_VERI
NFO, 156
IOCTL_HAL_GET_DEVICE_INFO, 150
IOCTL_HAL_GET_DEVICEID, 154
IOCTL_HAL_GET_OAL_VERINFO, 155
IOCTL_HAL_GET_RESET_INFO, 157
IOCTL_HAL_ITC_READ_PARM, 151
IOCTL_HAL_ITC_WRITE_SYSPARM, 153
IOCTL_HAL_REBOOT, 159
IOCTL_HAL_WARMBOOT, 156
IOCTL_PROCESSOR_INFORMATION,
160
LPT9 printer device, 115
Managing email messages and folders
via Inbox, 56
ManifestName
FTP Server, 144
Memory and storage
specifications, 17
Menu applet
Windows Mobile settings, 32
Messages
sending to
contacts, 49
via Inbox
downloading from server, 58
MIBs
ASN.1, 109
files, 109
object identifier, 110
OIDs, 110
Microphone, 2
Microprocessor
specifications, 17
Microsoft Developer Network Library See MSDN
library
Microsoft Exchange email account, 65
Microsoft Passport account, 65
Microsoft Reader
adding bookmarks, 70
adding drawings, 70
annotations index, 70
attaching notes, 70
books
reading, 70
removing, 71
features, 70
234
highlighting text, 70
searching for text, 70
using the library, 69
Windows Mobile, 69
Microsoft security
allow fast roaming (CCKM), 212
detect rogue APs, 212
enable mixed cell, 212
Migrating from another computer, 82
Mixed cell
enable via Microsoft security, 212
Mobile Favorites
Pocket Internet Explorer, 72
Modems
creating a connection
to an ISP, 101
MSDN library, 148
MSDN Windows CE documentation, 100
MSN Messenger
about, 65
accounts
Microsoft Exchange email, 65
Microsoft Passport, 65
contacts
managing, 67
sending messages, 68
working with, 67
using My Text, 31
nDeviceId
NLEDGetDeviceInfo, 182
NDIS_ENCRYPTION_1_ENABLED
EncryptionStatus(), 172
GetWepStatus(), 169
NDIS_ENCRYPTION_1_KEY_ABSENT
EncryptionStatus(), 172
GetWepStatus(), 169
NDIS_ENCRYPTION_2_ENABLED
EncryptionStatus(), 172
GetWepStatus(), 169
NDIS_ENCRYPTION_2_KEY_ABSENT
EncryptionStatus(), 172
GetWepStatus(), 169
NDIS_ENCRYPTION_3_ENABLED
EncryptionStatus(), 172
GetWepStatus(), 169
NDIS_ENCRYPTION_3_KEY_ABSENT
EncryptionStatus(), 172
GetWepStatus(), 169
NDIS_ENCRYPTION_DISABLED
EncryptionStatus(), 172
GetWepStatus(), 169
CN2B Mobile Computer User’s Manual
Index
NDIS_ENCRYPTION_NOT_SUPPORTED
EncryptionStatus(), 172
GetWepStatus(), 169
NDIS_MIXED_CELL_OFF
SetMixedCellMode(), 175
NDIS_MIXED_CELL_ON
SetMixedCellMode(), 175
NDIS_NET_AUTO_UNKNOWN
GetNetworkMode(), 166
SetNetworkMode(), 174
NDIS_NET_MODE_ESS
GetNetworkMode(), 166
SetNetworkMode(), 174
NDIS_NET_MODE_IBSS
GetNetworkMode(), 166
SetNetworkMode(), 174
NDIS_NET_MODE_UNKNOWN
GetNetworkMode(), 166
SetNetworkMode(), 174
NDIS_NET_TYPE_DS
GetNetworkType(), 167
NDIS_NET_TYPE_FH
GetNetworkType(), 167
NDIS_NET_TYPE_OFDM_2_4G
GetNetworkMode(), 166
SetNetworkMode(), 174
NDIS_NET_TYPE_OFDM_5G
GetNetworkMode(), 166
SetNetworkMode(), 174
NDIS_NET_TYPE_UNDEFINED
GetNetworkType(), 167
NDIS_NETWORK_EAP_MODE_OFF
GetCCXStatus(), 170
SetCCXStatus(), 175
NDIS_NETWORK_EAP_MODE_ON
GetCCXStatus(), 170
SetCCXStatus(), 175
NDIS_POWER_LEVEL_1
GetTXPower(), 169
NDIS_POWER_LEVEL_15
GetTXPower(), 169
NDIS_POWER_LEVEL_30
GetTXPower(), 169
NDIS_POWER_LEVEL_5
GetTXPower(), 169
NDIS_POWER_LEVEL_63
GetTXPower(), 169
NDIS_POWER_LEVEL_UNKNOWN
GetTXPower(), 169
NDIS_RADIO_ASSOCIATED
GetAssocationStatus(), 163
CN2B Mobile Computer User’s Manual
NDIS_RADIO_AUTH_MODE_AUTO
GetAuthenticationMode(), 164
SetAuthenticationMode(), 173
NDIS_RADIO_AUTH_MODE_ERROR
GetAuthenticationMode(), 164
SetAuthenticationMode(), 173
NDIS_RADIO_AUTH_MODE_OPEN
GetAuthenticationMode(), 164
SetAuthenticationMode(), 173
NDIS_RADIO_AUTH_MODE_SHARED
GetAuthenticationMode(), 164
SetAuthenticationMode(), 173
NDIS_RADIO_AUTH_MODE_WPA
GetAuthenticationMode(), 164
SetAuthenticationMode(), 173
NDIS_RADIO_AUTH_MODE_WPA_NONE
GetAuthenticationMode(), 164
SetAuthenticationMode(), 173
NDIS_RADIO_AUTH_MODE_WPA_PSK
GetAuthenticationMode(), 164
SetAuthenticationMode(), 173
NDIS_RADIO_POWER_AUTO
GetPowerMode(), 168
SetPowerMode(), 174
NDIS_RADIO_POWER_MODE_CAM
GetPowerMode(), 168
SetPowerMode(), 174
NDIS_RADIO_POWER_MODE_FAST_PSP
GetPowerMode(), 168
SetPowerMode(), 174
NDIS_RADIO_POWER_MODE_PSP
GetPowerMode(), 168
SetPowerMode(), 174
NDIS_RADIO_POWER_UNKNOWN
GetPowerMode(), 168
SetPowerMode(), 174
NDIS_RADIO_SCANNING
GetAssociationStatus(), 163
NDIS_SUPP_LOGGING_OFF
EnableSuppLogging(), 180
NDIS_SUPP_LOGGING_ON
EnableSuppLogging(), 180
NDISUIO_PACKET_DRIVER
SwitchPacketDriver(), 180
NETWLAN.DLL, 162
Network adapters
no networking, 94
wireless 802.11, 94
wireless printing, 86
Network Connection icon, 221, 222
235
Index
Network EAP
EAP-FAST security method, 210
LEAP security method, 208
PEAP security method, 200
TLS security method, 202
TTLS security method, 205
Network type
802.11 radio module, 196
nInBufSize
IOCTL_HAL_GET_BOOTLOADER_VERI
NFO, 156
IOCTL_HAL_ITC_READ_PARM, 151
IOCTL_HAL_ITC_WRITE_SYSPARM, 153
IOCTL_PROCESSOR_INFORMATION,
160
nInfoId
NLEDGetDeviceInfo, 181
NLED driver
vibrator, 181
NLED.H, 181, 182
NLEDGetDeviceInfo, 181
NLEDSetDevice, 182
NLED_COUNT_INFO
NLEDGetDeviceInfo, 181
NLED_SETTINGS_INFO_ID
NLEDGetDeviceInfo, 181
NLEDSetDevice, 182
NLED_SUPPORTS_INFO_ID
NLEDGetDeviceInfo, 181
NLEDGetDeviceInfo, 181
NLEDSetDevice, 182
Notes
drawing on the screen, 29
creating a drawing, 29
recording a message, 30
Start menu icon, 22
synchronizing notes, 54
writing on the screen, 27
alternate writing, 28
converting writing to text, 28
tips for good recognition, 28
nOutBufSize
IOCTL_GET_CPU_ID, 160
IOCTL_HAL_COLDBOOT, 157
IOCTL_HAL_GET_BOOT_DEVICE, 158
IOCTL_HAL_GET_BOOTLOADER_VERI
NFO, 156
IOCTL_HAL_GET_DEVICE_INFO, 150
IOCTL_HAL_GET_DEVICEID, 154
IOCTL_HAL_GET_OAL_VERINFO, 155
IOCTL_HAL_GET_RESET_INFO, 157
IOCTL_HAL_ITC_READ_PARM, 151
236
IOCTL_HAL_ITC_WRITE_SYSPARM, 153
IOCTL_HAL_REBOOT, 159
IOCTL_HAL_WARMBOOT, 156
IOCTL_PROCESSOR_INFORMATION,
160
NPCP printing, 114, 115
closing driver, 116
COM1 parameters, 115
communications, 117
driver I/O controls, 116
installation, 115
LPT9, 115
opening driver, 115
reading from driver, 116
removal, 115
sample code, 118
writing to driver, 116
NPCPPORT.DLL, 114
Object Store
packaging an application, 76
Object store
IOCTL_HAL_COLDBOOT, 157
IOCTL_HAL_REBOOT, 159
IOCTL_HAL_WARMBOOT, 156
OEMIOCTL.H
IOCTL_GET_CPU_ID, 160
IOCTL_HAL_COLDBOOT, 157
IOCTL_HAL_GET_BOOT_DEVICE, 158
IOCTL_HAL_GET_BOOTLOADER_VERI
NFO, 155
IOCTL_HAL_GET_OAL_VERINFO, 155
IOCTL_HAL_GET_RESET_INFO, 157
IOCTL_HAL_ITC_READ_PARM, 151
IOCTL_HAL_ITC_WRITE_SYSPARM, 153
IOCTL_HAL_REBOOT, 159
IOCTL_HAL_WARMBOOT, 156
Oldstyle device ID, 154
ONeil printing
installing driver, 119
ONEIL.DLL, 119
Opening drivers
DTR, 120
NPCP, 115
Operating system
specifications, 17
OSVERSIONINFO.dwBuildNumber, 128
OSVERSIONINFO.dwVersionMajor, 128
OSVERSIONINFO.dwVersionMinor, 128
Owner Information applet
Windows Mobile settings, 32
CN2B Mobile Computer User’s Manual
Index
Packaging an application
Flash File Store, 76
Object Store, 76
Persistent Storage Manager, 76
Secure Digital storage cards, 76
Page format printing, 114
Password applet
Windows Mobile settings, 32
Patent information, v
PauseAtStartup
FTP Server, 144
PB20 printers
DTR driver, 119
printer support, 113
PB40 printers
DTR driver, 119
printer support, 113
PB42 printers
DTR driver, 119
printer support, 113
PEAP
802.11 radio module
network EAP, 200
WPA encryption, 199
profile security information, 198
WEP encryption, 199
Phone application
CDMA radios
adding contact to speed dial, 51
Physical dimensions
specifications, 17
pInput
NLEDSetDevice, 182
PKFUNCS.H
IOCTL_HAL_GET_DEVICEID, 154
IOCTL_PROCESSOR_INFORMATION,
159
Planes, keypad, 183
Pocket Excel
about, 63
creating a workbook, 64
Pocket Internet Explorer
about, 71
AvantGo channels, 73
browsing the Internet, 74
favorite links, 71
getting connected, 101
mobile favorites, 72
Mobile Favorites folder, 71
software build, 14
Start menu icon, 22
viewing mobile favorites and channels, 74
CN2B Mobile Computer User’s Manual
Pocket Outlook, 36
Pocket PC
IOCTL_HAL_GET_BOOTLOADER_VERI
NFO, 155
IOCTL_HAL_GET_OAL_VERINFO, 155
Pocket Word
about, 60
creating a document, 60
drawing mode, 63
synchronizing, 63
typing mode, 61
writing mode, 62
POP3
Folder behavior connected to email server, 57
pOutput
NLEDGetDeviceInfo, 181
Power applet
battery status, 3
RAM maintenance, 4
Windows Mobile settings, 32
Printer support, 114
NPCP printer driver, 114
ONeil printer driver, 119
PRISMNDS.DLL, 162
problems, finding and solving, 223
Processor information
IOCTL_PROCESSOR_INFORMATION,
159
ProcessorType
CEDevice, 127
Profile label
802.11 radio module, 196
Profiles
802.11 radio module, 196
advanced settings, 212
basic information, 196
security information, 197
editing, 196
Programs, adding or removing
Windows Mobile, 32
Provider
Version, 126
PSM
determining build version, 12
packaging an application, 76
Query Information functions, 163
RadioConnect(), 162
RadioDisassociate(), 163
RadioDisconnect(), 163
237
Index
Radios
card support, 15
Reader commands, 214
configuration change, 214
date and time settings, 215
ReadFile()
NPCP printing, 114
Reading from drivers
NPCP, 116
Reboot methods
IOCTL_HAL_COLDBOOT, 182
IOCTL_HAL_REBOOT, 182
IOCTL_HAL_WARMBOOT, 182
REBOOTME.BIN, 148
Recharging time, 17
Record button
recording a message, 30
Recording
via Notes, 30
via Pocket Word, 62
Recovery CD
AutoCab method, 83
RegFlushKey() API, 141
updating the system software, 82
Recurrence pattern
Calendar, 38
REGFLUSH.CAB, 79
RegFlushKey(), 141
RegisterDevice(), 115
DTR printing, 119
Registry
confirm the new regisry file, 80
delete the old registry save, 79, 80
FTP Server parameters, 143
keypad remapping, 184
load the application, 80
replicating settings, 79
sample view of key mapping, 187
save location
IOCTL_HAL_ITC_WRITE_SYSPARM,
153
update other computers, 81
Registry Save applet, 191
Registry settings
AutoCfg, 100
AutoFTP, 149
AutoInterval, 100
AutoIP/DHCP, 100
DhcpMaxRetry, 100
DhcpRetryDialogue, 100
keypad driver, 184
keypad planes
alpha, 184
238
orange, 184
unshifted, 184
RegOpenKeyEx(), 183
RegQueryValueEx(), 183
RegSetValueEx(), 183
Regulatory approvals
specifications, 17
RemoveWep(), 176
Removing drivers
DTR, 119
NPCP, 115
Removing programs
Windows Mobile, 32
RenewDHCP(), 179
Replicating registry settings, 79
Reset button, 13
ResetRadioToSystemSave(), 180
RFC 959, 147
Roaming
Microsoft security, 212
Root
FTP Server, 144
RPM.EXE, 130
RPMCE212.INI, 130
Sample code
NPCP printing, 118
Scan codes, 185
Scanner
beeper volume
turning it off, 8
turning it on, 8
specifications, 16
unit configuration parameters
automatic shutoff, 213
backlight timeout, 213
date/time, 213
key clicks, 214
volume, 213
utilities configuration
button wakeup mask, 192
scanner
cleaning the window, 224
window, illustrated, 224
screen
cleaning, 224
Secure Digital cards
installing applications, 78
packaging an application, 76
specifications, 16
Set information functions, 171
SetAuthenticationMode(), 173
SetCCXStatus(), 175
CN2B Mobile Computer User’s Manual
Index
SetChannel(), 173
SetMixedCellMode(), 175
SetNetworkMode(), 174
SetPowerMode(), 174
SetSSID(), 175
Setting date and time, 215
SETUP.DLL, 129, 136
DllMain, 136
installation functions, 136
SHFullScreen(), 141
shortcut_list_section
CEShortcuts
shortcut_filename, 133
shortcut_type_flag, 133
target_file_path, 133
Signature
Version, 126
SIM cards
protection hardware, 153
protection software, 153
software installed, 153
Simple Network Management Protocol See SNMP
SmartSystems, 9, 109
SMS
Folder behavior connected to email server, 56
SNMP, 109
Software versions, 14
SourceDiskFiles
filename, 130
SourceDiskNames
CESignature, 129
disk_ordinal, 129
SourceDisksNames.MIPS, 130
SourceDisksNames.SH3, 130
Speaker, 2
Specifications, 16
battery, 17
display, 16
environmental, 16
expansion slots, 16
integrated scanner options, 16
integrated wireless, 16
keypad options, 16
memory and storage, 17
microprocessor, 17
operating system, 17
physical dimensions, 17
regulatory approvals, 17
standard communications, 17
SSID (network name)
CN2B Mobile Computer User’s Manual
802.11 radio module, 196
Standard communications
specifications, 17
Start Menu
adding programs, 34
via File Explorer, 34
StartScanList(), 178
StartSupplicant(), 178
Static IP
replicating registry settings, 79
StopSupplicant(), 178
Storage media, 15
specifications, 16
Stream device driver
NPCPPORT.DLL, 114
ONEIL.DLL, 119
string_key
Strings, 127
Strings
string_key, 127
SwitchPacketDriver(), 180
Symbologies
internal scanner supported symbologies, 124
scanning labels, 215
symbologies
disabled incorrectly, 223
Synchronizing
AvantGo channels, 73
Calendar, 37
contacts, 47
email messages, 56
favorite links, 71
mobile favorites, 72
notes, 54
Pocket Word, 63
SYSTEMINFO.dwProcessorType, 127
TAHOMA.TTF, 130
Tasks
Start menu icon, 22
TCP/IP, 93
TCP/IP client
DHCP server, 100
technical support
sending CN2 for repair, 223
Text messages
Windows Mobile, 31
Time, setting, 215
239
Index
TLS
802.11 profile
certificates, 207
WPA encryption, 202
802.11 radio module
network EAP, 202
profile security information
WEP encryption, 201
WPA encryption, 202
Today applet
Windows Mobile settings, 32
Today screen
Windows Mobile, 21
Tools CD
CAB files, 77
MIB files, 110
sample NPCP code, 118
touch screen
cleaning, 224
illustrated, 224
Troubleshooting
CAB Wizard, 140
troubleshooting
bar code symbologies, 223
lost network connection after suspend, 221
Network Connection icon, 221
TTLS
802.11 radio module
network EAP, 205
WPA encryption, 204
profile security information
WEP encryption, 203, 204
Typing mode
Pocket Word, 61
UDP
FTPDCE, 145
UDP broadcasts
IDNATarget parameter, 144
UDP Plus, 93
Unit
configuration parameters
automatic shutoff, 213
backlight timeout, 213
date/time, 213
key clicks, 214
volume, 213
Unit Manager
date/time, 213
Unshifted plane on keypad, 183
UnsupportedPlatforms
CEDevice, 127
Updating
240
bootloader, 77
URLs
ActiveSync, 35
full screen display, 141
MIBs, 110
Microsoft Exchange email account, 65
Microsoft Passport account, 65
Microsoft support, 20
MSDN library, 148
MSDN Windows CE documentation, 100
Windows Mobile, 20
Windows Mobile support, 20
URODDSVC.EXE, 162
USB communications, 92
Utilities applet
app launch, 193
registry save, 191
wakeup mask, 192
UUID, 154
Version
CESignature, 126
Provider, 126
Signature, 126
VersionMax
CEDevice, 128
VersionMin
CEDevice, 128
Vibrator
programming, 181
Video files
Windows Media Player, 68
Viewing mobile favorites and channels
Pocket Internet Explorer, 74
Virtual wedge
bar code configuration
grid, 218
postamble, 218
preamble, 218
VN_CLASS_ASIC, 152
VN_CLASS_BOOTSTRAP, 152
VN_CLASS_KBD, 152
Volume
bar code configuration, 213, 216
configuration parameter, 213
Wakeup mask applet, 192
WAP pages, 71
connecting to an ISP, 101
Warm boot
IOCTL_HAL_REBOOT, 159
IOCTL_HAL_WARMBOOT, 156
CN2B Mobile Computer User’s Manual
Index
Warm boot, performing, 13
WAV files, 62
WCESTART.INI, 130
Web browsers
FTP support, 147
Web pages, 71
connecting to an ISP, 101
WEP encryption
EAP-FAST security method, 209
LEAP security method, 207
PEAP security method, 199
profile security information, 197, 198
TLS security method, 201
TTLS security method, 203, 204
zero configuration, 97
Windows CE documentation (MSDN), 100
Windows Media Player
Start menu icon, 22
Windows Mobile, 68
Windows Mobile
ActiveSync, 35
basic skills, 21
command bar, 22
getting connected, 101
MSN Messenger, 65
navigation bar, 22
notifications, 23
Pocket Excel, 63
Pocket Word, 60
popup menus, 23
programs, 21
support URLs, 20
Today screen, 21
where to find information, 20
Windows Media Player, 68
writing on the screen, 27
Wireless network, 94, 195
CN2B Mobile Computer User’s Manual
specifications, 16
Wireless printing
Bluetooth compatible module, 86
Wireless TCP/IP installations
BlockSize parameter, 143
Workbook
creating via Pocket Excel, 64
WPA authentication
with pre-shared key
Zero Configuration, 98
WPA encryption
EAP-FAST security method, 210
LEAP security method, 208
PEAP security method, 199
TLS security method, 202
TTLS security method, 204
WPport, 87
WriteFile()
DTR printing, 119, 120
IrDA printing, 114
NPCP printing, 114, 116
Writing mode
Pocket Word, 62
Writing on the screen
Pocket Word, 62
Writing on the screen See Notes, 27
Writing to drivers
DTR, 120
NPCP, 116
Xscale processor ID
IOCTL_GET_CPU_ID, 160
Zero Configuration
enabling, 196
enabling WPA authentication, 98
241
Index
242
CN2B Mobile Computer User’s Manual
Corporate Headquarters
6001 36th Avenue West
Everett, Washington 98203
U.S.A.
tel 425.348.2600
fax 425.355.9551
www.intermec.com
CN2B Mobile Computer User's Manual
*935-001-001*
P/N 935-001-001

Source Exif Data:
File Type                       : PDF
File Type Extension             : pdf
MIME Type                       : application/pdf
PDF Version                     : 1.4
Linearized                      : No
Modify Date                     : 2005:11:30 12:00:41-08:00
Create Date                     : 2005:11:30 08:21:18Z
Page Count                      : 120
Page Mode                       : UseOutlines
Has XFA                         : No
About                           : uuid:1c4d9e60-f3d7-425c-ad97-8574a8576cc6
Producer                        : Acrobat Distiller 6.0 (Windows)
Mod Date                        : 2005:11:30 12:00:41-08:00
Creation Date                   : 2005:11:30 08:21:18Z
Author                          : ThingA
Creator Tool                    : FrameMaker 7.2
Metadata Date                   : 2005:11:30 12:00:41-08:00
Document ID                     : uuid:51fc9d87-ba07-4474-a466-4ece35769341
Format                          : application/pdf
Title                           : CN2Busermanual.book
Creator                         : ThingA
EXIF Metadata provided by EXIF.tools
FCC ID Filing: EHABTM210

Navigation menu