You are on page 1of 60

MOTOROLA SCANNER WINDOWS MANAGEMENT INSTRUMENTATION DRIVER DEVELOPERS GUIDE

MOTOROLA SCANNER WMI DRIVER DEVELOPERS GUIDE


72E-149785-01 Rev. A May 2011

ii

WMI DRIVER DEVELOPERS GUIDE

No part of this publication may be reproduced or used in any form, or by any electrical or mechanical means, without permission in writing from Motorola. This includes electronic or mechanical means, such as photocopying, recording, or information storage and retrieval systems. The material in this manual is subject to change without notice. The software is provided strictly on an as is basis. All software, including firmware, furnished to the user is on a licensed basis. Motorola grants to the user a non-transferable and non-exclusive license to use each software or firmware program delivered hereunder (licensed program). Except as noted below, such license may not be assigned, sublicensed, or otherwise transferred by the user without prior written consent of Motorola. No right to copy a licensed program in whole or in part is granted, except as permitted under copyright law. The user shall not modify, merge, or incorporate any form or portion of a licensed program with other program material, create a derivative work from a licensed program, or use a licensed program in a network without written permission from Motorola. The user agrees to maintain Motorolas copyright notice on the licensed programs delivered hereunder, and to include the same on any authorized copies it makes, in whole or in part. The user agrees not to decompile, disassemble, decode, or reverse engineer any licensed program delivered to the user or any portion thereof. Motorola reserves the right to make changes to any software or product to improve reliability, function, or design. Motorola does not assume any product liability arising out of, or in connection with, the application or use of any product, circuit, or application described herein. No license is granted, either expressly or by implication, estoppel, or otherwise under any Motorola, Inc., intellectual property rights. An implied license only exists for equipment, circuits, and subsystems contained in Motorola products.

iii

Revision History
Changes to the original guide are listed below:
Change Date Description

-01 Rev A

5/2011

Initial release.

iv

WMI DRIVER DEVELOPERS GUIDE

TABLE OF CONTENTS
Revision History .............................................................................................................................. Introduction ..................................................................................................................................... Chapter Descriptions ...................................................................................................................... Notational Conventions................................................................................................................... Service Information ......................................................................................................................... iii vii vii viii ix

Chapter 1: INTRODUCTION TO THE MOTOROLA SCANNER WMI DRIVER Overview ........................................................................................................................................ Motorola Scanner WMI Driver Architecture .............................................................................. Managed Objects and Providers ........................................................................................ WMI Infrastructure .............................................................................................................. WMI Management Applications and Scripts ...................................................................... Motorola WMI Plug-in ......................................................................................................... Supported Devices ............................................................................................................. System Requirements ........................................................................................................

1-1 1-2 1-2 1-3 1-3 1-3 1-3 1-3

Chapter 2: INSTALLATION INSTRUCTIONS Overview ........................................................................................................................................ Basic Installation Verification ......................................................................................................... Configuration .................................................................................................................................. Scanner Configuration Bar Codes ........................................................................................... USB Communication Protocol ............................................................................................ RS-232 Communication Protocol .......................................................................................

2-1 2-2 2-3 2-3 2-3 2-3

Chapter 3: MOTOROLA WMI PROVIDER SCHEMA IN COMMON INFORMATION MODEL (CIM) Motorola Scanner WMI MOF File .................................................................................................. Properties, Methods and Events .................................................................................................... Properties ................................................................................................................................. Methods ................................................................................................................................... Events ...................................................................................................................................... Motorola Driver WMI MOF File ................................................................................................

3-1 3-1 3-1 3-6 3-8 3-8

Table of Contents

vi

Chapter 4: TEST UTILITIES AND SOURCE CODE Overview ........................................................................................................................................ Test Utilities Provided in the SDK .................................................................................................. Scanner WMI C# Sample Application ...................................................................................... Driver WMI C# Sample Application ..........................................................................................

4-1 4-2 4-2 4-5

Appendix A: XML SCHEMAS Overview ........................................................................................................................................ GetAllAttributes .............................................................................................................................. GetAttributes .................................................................................................................................. Schema for AttNumberList ....................................................................................................... Schema for AttValueList .......................................................................................................... GetNextAttribute ............................................................................................................................ Schema for startAttribute ......................................................................................................... Schema for nextAttribute ......................................................................................................... SetAttributes and StoreAttributes ................................................................................................... UpdateAttribMetaFile ..................................................................................................................... GetDeviceTopology ....................................................................................................................... ScanDataEvent .............................................................................................................................. ScanCmdResponseEvent .............................................................................................................. ScanRMDEvent ............................................................................................................................. SCANNER_UF_SESS_START and SCANNER_UF_SESS_END .......................................... SCANNER_DEVICE_FOUND and SCANNER_DEVICE_LOST ............................................. SCANNER_UF_DL_START and END ..................................................................................... SCANNER_UF_DL_PROGRESS ............................................................................................

A-1 A-2 A-3 A-3 A-4 A-5 A-5 A-5 A-6 A-7 A-8 A-9 A-10 A-12 A-12 A-13 A-14 A-15

Index Glossary

ABOUT THIS GUIDE


Introduction
This guide provides information about Windows Management Instrumentation (WMI), a free component of the Microsoft Windows operating system, that provides a scalable system management infrastructure.

Chapter Descriptions
Topics covered in this guide are as follows:

Chapter 1, INTRODUCTION TO THE MOTOROLA SCANNER WMI DRIVER provides an overview of


Windows Management Instrumentation (WMI) and the Motorola Scanner Driver Architecture. WMI provider and provides configuration bar codes.

Chapter 2, INSTALLATION INSTRUCTIONS describes how to verify successful installation of the Motorola Chapter 3, MOTOROLA WMI PROVIDER SCHEMA IN COMMON INFORMATION MODEL (CIM) provides

information about the Motorola scanner WMI schema, Managed Object Format (symbscnr.mof) file, and the properties, methods, and events exposed by the instance/method provider. demonstrate subscription for scanner discovery events and firmware update events.

Chapter 4, TEST UTILITIES AND SOURCE CODE provides information about the sample applications which Appendix A, XML SCHEMAS provides the XML schemas to communicate with an RSM-ready scanner.

viii

WMI DRIVER DEVELOPERS GUIDE

Notational Conventions
The following conventions are used in this document:

Courier New font is used for code segments. Italics are used to highlight:
Chapters and sections in this and related documents Dialog box, window and screen names Drop-down list and list box names Screen field names Check box and radio button names File names Directory names.

Bold text is used to highlight:


Parameter and option names Icons on a screen Key names on a keypad Button names on a screen.

bullets () indicate:
Action items Lists of alternatives Lists of required steps that are not necessarily sequential

Sequential lists (e.g., those that describe step-by-step procedures) appear as numbered lists. Notes, caution and warning statements appear as follows:
NOTE This symbol indicates something of special interest or importance to the reader. Failure to read the note will not result in physical harm to the reader, equipment or data.

CAUTION

This symbol indicates that if this information is ignored, the possibility of data or material damage may occur.

WARNING!

This symbol indicates that if this information is ignored the possibility that serious personal injury may occur.

About This Guide

ix

Service Information
If you have a problem contact Motorola support for your region. Contact information is available at: http://supportcentral.motorola.com. When contacting Mobility support, please have the following information available:

Serial number of the unit Model number or product name Software type and version number.
Motorola responds to calls by E-mail, telephone or fax within the time limits set forth in support agreements. If your problem cannot be solved by Motorola support, you may need to return your equipment for servicing and will be given specific directions. Motorola is not responsible for any damages incurred during shipment if the approved shipping container is not used. Shipping the units improperly can possibly void the warranty. If you purchased your business product from a Motorola business partner, contact that business partner for support.

WMI DRIVER DEVELOPERS GUIDE

CHAPTER 1 INTRODUCTION TO THE MOTOROLA SCANNER WMI DRIVER


Overview
Windows Management Instrumentation (WMI) is a free component of the Microsoft Windows operating system that provides a scalable system management infrastructure. Using a free provider (plug-in) from Motorola, WMI enables local and network remote management of a scanner. System administrators can leverage WMI to query and set information on desktop systems, applications, networks, components, and accessories, such as a scanner. Developers can use the underlying WMI Application Programmers Interfaces (APIs) to create system management applications/tools that organize system information for the purposes of asset management or other enterprise level activities. The WMI API supports the use of several high level languages such as C++, C#, VB, VBScript, and Jscript. For more information, search for WMI on http://msdn.microsoft.com.

1-2

WMI DRIVER DEVELOPERS GUIDE

Motorola Scanner WMI Driver Architecture

Figure 1-1 Motorola Scanner WMI Driver Architecture

Managed Objects and Providers


A provider is a COM object that monitors one or more managed objects for WMI. Similar to a driver, a provider supplies WMI with data from a managed object. A provider also handles messages from WMI to the managed object. A managed object is a logical or physical enterprise component, such as a hard drive, network adapter, database system, operating system, process, or service. A managed object communicates with WMI through a WMI provider that calls methods in the COM API for WMI. For example, the Platform SDK ships with the Registry provider, which accesses data in the system registry. WMI passes information from the providers to the WMI infrastructure when client applications and scripts request registry data. The Registry provider has one WMI class, StdRegProv, with many methods but no properties. Other providers, such as the Win32 provider, usually have classes with many properties but few methods, such as Win32_Process or Win32_LogicalDisk.

INTRODUCTION TO THE MOTOROLA SCANNER WMI DRIVER

1-3

WMI Infrastructure
The WMI infrastructure is a Microsoft Windows operating system component comprised of two components: the Windows Management service, including the WMI Core, and the WMI repository. The Windows Management service acts as an intermediary between the providers, management applications, and the WMI repository. The repository contains only static data about objects, such as the classes defined by providers. WMI obtains most data dynamically from the provider when a client requests it. Most provider classes, such as Win32_LogicalDisk, are defined in Managed Object Format (MOF) files, are then compiled into the WMI repository by mofcomp.exe. A provider also has a DLL file which contains the code that implements the classes.

WMI Management Applications and Scripts


A management application or script is an application that interacts with the WMI infrastructure. A management application can query or enumerate management data by calling either the COM API for WMI or the Scripting API for WMI. Management applications can call methods in either API to send instructions or reconfigure a managed object. The only data or actions available for a managed object such as a disk drive or a service are those that a provider supplies.

Motorola WMI Plug-in


Motorola's driver provides a WMI interface with a mechanism to view and program settings. It also enables an administrator to perform actions such as firmware updates, event reporting on the progress of a firmware update and the discovery of scanners, as defined in the Symbol Scanner Managed Object Format (MOF) file. By leveraging the WMI infrastructure built into the Windows Operating System, an application developer can write a management application to perform the following enterprise level activities:

Discovery (asset management) Configuration deployment In system firmware update.

Supported Devices
Any RSM-ready Motorola scanner.

System Requirements
For system requirements, refer to the Scanner SDK Developers Guide.

1-4

WMI DRIVER DEVELOPERS GUIDE

CHAPTER 2 INSTALLATION INSTRUCTIONS


Overview
The Motorola WMI providers are installed as part of the Motorola Scanner SDK Installshield package. There are two WMI providers: Scanner WMI provider; and, Driver WMI provider. Two Windows services (Symbol Scanner Management and RSM Driver Provider Service) are installed and start automatically. These two services are called Motorola's WMI provider, also called the WMI plug-in. For general installation instructions to install the Motorola Scanner SDK, refer to the installation instructions in the Motorola Scanner SDK Programmer's Guide.

NOTE The Motorola CoreScanner Driver is a prerequisite for the Motorola WMI provider. The Motorola Scanner SDK Installshield package automatically installs the CoreScanner Driver if it is not already on the system. A complete installation of the SDK installs the Motorola WMI provider. If you select the custom installation, you must select the Scanner WMI provider and Driver WMI provider components.

2-2

WMI DRIVER DEVELOPERS GUIDE

Basic Installation Verification


You can perform a basic inspection on your system process list to verify a successful installation of the Motorola WMI provider. To do a simple check of the Motorola WMI provider's operation:
1.

Right click on the Windows Task Bar and select Task Manager.

Figure 2-1 Task Bar Menu - Task Manger 2.

Select the Processes tab.

Figure 2-2 Task Manager - Processes 3.

In the Image Name list, find RSMDriverProviderService.exe and ScannerService.exe. The presence of these two processes in the list indicates a successful installation.

INSTALLATION INSTRUCTIONS

2-3

Configuration
Scanner Configuration Bar Codes
Scan the Set All Defaults bar code below to return all parameters to the scanner's default values. Refer to the scanner's Product Reference Guide for default values.

Set All Defaults Scan the appropriate bar code below to configure the scanner for either USB or RS-232 communication protocols.

USB Communication Protocol

USB (OPOS Hand Held)

USB SNAPI

RS-232 Communication Protocol

Wincor-Nixdorf RS-232 Mode B

2-4

WMI DRIVER DEVELOPERS GUIDE

CHAPTER 3 MOTOROLA WMI PROVIDER SCHEMA IN COMMON INFORMATION MODEL (CIM)


Motorola Scanner WMI MOF File
The Motorola scanner WMI schema is defined using Managed Object Format (MOF) insymbscnr.mof. This file is located in the directory \Motorola Scanner\Common. The symbscnr.mof describes and lists the properties, methods, and events exposed by the instance/method provider. If a specific device or class of device does not support a property, its property value is defined as null.

Properties, Methods and Events


Properties
Table 3-1 Properties Descriptions

Name PartNumber

Type String

Access Allowed R (key)

Description Part number (model number) on the label (P/N) attached to the device. This is an 18 digit number but comes from the COM API trimmed. Serial Number (S/N) on the label attached to the device. This is a 16 digit number but comes from the COM API trimmed. Manufacturing date of the device. Format DDMMMYY. Date of last repair within a Motorola Authorized repair facility. Format DDMMMYY.

Valid Values Matches exactly against the label on the tag.

SerialNumber

String

R (key)

Matches exactly against the label on the tag.

DateOfManufacture DateOfService

String String

R R

3-2

WMI DRIVER DEVELOPERS GUIDE

Table 3-1 Properties Descriptions (Continued)

Name DeviceClass

Type String

Access Allowed R

Description Description of the device's hardware.

Valid Values "1D Laser" "2D Laser" "Imager" "Cordless 1D Laser" "Cordless 2D Laser" "Cordless Imager" "Cordless Base Station"

Caption Description FirmwareVersion FirmwareUpdateStatus FirmwareUpdateBlockCount

String String String String Integer

R R R R R

This property is identical to PartNumber This property is identical to PartNumber Version of firmware in the scanner. Status of the last firmware update operation. Count of firmware blocks downloaded to scanner in the current firmware update operation. Total number of blocks the firmware file used in current update operation. Status code of the last completed stage of the firmware update operation. 0 - Success 106 - Invalid file path 107 - Management failure 108 - Firmware update failure 109 - File checksum error 118 - Firmware update underway 0 - Success 111 - Firmware resident 110 - Firmware unknown

FirmwareUpdateTotalBlocks

Integer

FirmwareUpdateStatusCode

Integer

FirmwareUpdateStatusCodeEx

Integer

Download status of software component contained in the firmware file. Zero indicates at least one component successfully downloaded. Non-zero value indicates no software component was downloaded, and the reason why. Indicates the version of the Management Suite.

MiddlewareDriverVersion

String

MOTOROLA WMI PROVIDER SCHEMA IN COMMON INFORMATION MODEL (CIM)

3-3

Table 3-1 Properties Descriptions (Continued)

Name LastDecodeData

Type String

Access Allowed R

Description Identifies the last successfully decoded bar code information. The scanner can scan the bar code if it supports its symbology and the symbology is enabled. Total bar codes the scanner decoded. The values reset to 0 when the WMI service stops. Total successful bar codes the scanner decoded. The values reset to 0 when the WMI service stops. Determines whether power remains on after a decode attempt. In low power mode, the scanner enters into a reduced power consumption mode to preserve battery life after each decode attempt. Sets the raster mode of the scanner. Reports if the cordless scanner is in a charging cradle (applies to cordless only). Reports if the scanner is being used in Hand-Held Mode or Hands-Free Mode. Enable/Disable this symbology. Enable/Disable this symbology. Enable/Disable this symbology. Enable/Disable this symbology. Enable/Disable this symbology. Enable/Disable this symbology. Enable/Disable this symbology. Enable/Disable this symbology. Enable/Disable this symbology. Enable/Disable this symbology. Enable/Disable this symbology.

Valid Values

TotalDecodes

Integer

TotalGoodDecodes

Integer

LowPowerMode

Boolean

R/W

TRUE, FALSE

RasterMode InCradle

Byte Boolean

R/W R

0, 1, 2 TRUE, FALSE

OperationMode

Byte

0, 1

UPCA UPCE UPCE1 EAN8 EAN13 ConvertUPCEtoA ConvertUPCE1toA UCCCouponExtendedCode Code 128 UCCEAN128 Code39

Boolean Boolean Boolean Boolean Boolean Boolean Boolean Boolean Boolean Boolean Boolean

R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W

TRUE, FALSE TRUE, FALSE TRUE, FALSE TRUE, FALSE TRUE, FALSE TRUE, FALSE TRUE, FALSE TRUE, FALSE TRUE, FALSE TRUE, FALSE TRUE, FALSE

3-4

WMI DRIVER DEVELOPERS GUIDE

Table 3-1 Properties Descriptions (Continued)

Name TriopticCode39 Code93 Code11 RedundancyLevel

Type Boolean Boolean Boolean Integer

Access Allowed R/W R/W R/W R/W

Description Enable/Disable this symbology. Enable/Disable this symbology. Enable/Disable this symbology. Sets the scanner's decode redundancy level. There are four levels. Select higher levels for decreasing levels of bar code quality. As redundancy levels increase, the scanner's aggressiveness decreases. Refer to the scanner Product Reference Guide. Defines the allowable lengths for the symbology. Range: L1 < L2;Two Lengths: L2 > L1; One Length: L1 = len; L2=0; Any Length: L1=0; L2=0 Defines the allowable lengths for the symbology. Range: L1 < L2Two Lengths:L2 > L1One Length:L1 = len; L2=0Any Length:L1=0; L2=0 Defines the allowable lengths for the symbology. Range:L1 < L2Two Lengths:L2 > L1One Length:L1 = len; L2=0Any Length:L1=0; L2=0 Defines the allowable lengths for the symbology. Range: L1 < L2Two Lengths:L2 > L1One Length:L1 = len; L2=0Any Length:L1=0; L2=0 Defines the allowable lengths for the symbology. Range: L1 < L2Two Lengths:L2 > L1One Length:L1 = len; L2=0Any Length:L1=0; L2=0 Defines the allowable lengths for the symbology. Range:L1 < L2Two Lengths:L2 > L1One Length:L1 = len; L2=0Any Length:L1=0; L2=0

Valid Values TRUE, FALSE TRUE, FALSE TRUE, FALSE 0, 1, 2, 3

Code11Length1

Byte

R/W

Code11Length2

Byte

R/W

Code39Length1

Byte

R/W

Code39Length2

Byte

R/W

Code93Length1

Byte

R/W

Code93Length2

Byte

R/W

MOTOROLA WMI PROVIDER SCHEMA IN COMMON INFORMATION MODEL (CIM)

3-5

Table 3-1 Properties Descriptions (Continued)

Name LaserOnTime

Type Byte

Access Allowed R/W

Description Defines the maximum time decode processing continues during a scan attempt. Sets decode security for delta bar codes, which include the Code 128 family, UPC/EAN, and Code 93. There are four levels. Select increasing levels of security for decreasing levels of bar code quality. As security levels increase, the scanner's aggressiveness decreases. Refer to the scanner Product Reference Guide. Gets/sets the Beeper Tone (Low = 2, Med = 1, High = 0) Valid values range from 0 to 2 for LS4208. May vary for other scanners. Gets/sets the Beeper Volume (Low = 2, Med = 1, High = 0) Valid values range from 0 to 2 for LS4208. May vary for other scanners.

Valid Values "99" = 9.9 seconds"

SecurityLevel

Byte

R/W

0, 1, 2, 3

BeeperFreq

Byte

R/W

Supports values from 0 to 127; which values within this range depend on the scanner. Supports values from 0 to 127; which values within this range depend on the scanner.

BeeperVolume

Byte

R/W

3-6

WMI DRIVER DEVELOPERS GUIDE

Methods
The methods in Table 3-2 are counterparts of the functions defined in the scanner driver COM API. See Appendix A, XML SCHEMAS for the XML schema, which is shared with the scanner driver COM API.
Table 3-2 Methods Descriptions

Name GetAllAttributes

Parameters [OUT] string attributes

Return Values Integer 0 = Success Non-zero=Failure

Description Returns all supported attributes of the selected scanner as an xml through the Attributes parameter. The attributes returned as an out value in the Attributes parameter must match the schema on page A-2. This function is an exact mapping of the GetAllAttributes method in the scanner COM API driver. Retrieves values of specific attribute numbers. Use this to query values of one or more attributes numbers. attrNumberList [in]: The attribute numbers whose values must be queried. See page on page A-3. for the schema for the attribute numbers. attrValueList [out]: The attribute values returned as output. See page A-3 for the schema for the attribute numbers. This function is an exact mapping of the GetAttributes function in the scanner COM API driver. Changes the value of writable attributes in the scanner. See page A-6 for the schema for attributeSettings. This function is an exact mapping of the SetAttributes function in the scanner COM API driver. Changes the value of writable attributes in the scanner. See page A-6 for the schema for attributeSettings. This function is an exact mapping of the StoreAttributes function in the scanner COM API driver. Update firmware on scanner devices. The firmware file must reside on the computer to which the scanner is connected, and the file path must be fully qualified. This function supports concurrent firmware update of scanner devices. A return value of 0 indicates the successful start of the firmware update, but does not guarantee overall firmware update success.

GetAttributes

[IN] string attNumberList [OUT] string attValueList

Integer 0 = Success Non-zero=Failure

SetAttributes

[OUT] string attributeSettings

Integer 0 = Success Non-zero=Failure

StoreAttributes

[OUT] string attributeSettings

Integer 0 = Success Non-zero=Failure

UpdateFirmware

[OUT] string filePath

Integer 0 = Success Non-zero=Failure

MOTOROLA WMI PROVIDER SCHEMA IN COMMON INFORMATION MODEL (CIM)

3-7

Table 3-2 Methods Descriptions (Continued)

Name StartNewFirmware

Parameters

Return Values Integer 0 = Success Non-zero=Failure

Description Reboots the scanner with the updated firmware activated. Updates the metafile that defines the names of the attributes. File path:Fully qualified path to the new meta-file. See page A-7 for metafile schema. Disables the scanner.

UpdateAttribMetaFile

[OUT] string filePath

Integer 0 = Success Non-zero=Failure Integer 0 = Success Non-zero=Failure Integer 0 = Success Non-zero=Failure

ScanDisable

ScanEnable

Enables the scanner.

Table 3-3 Return Values for WMI Methods Invocations

Return Value 0 106 107 108 109 114 116 117 118 119 120 Method succeeded.

Description

File path invalid (file not found). Management failure. Firmware update failure. Firmware file checksum error. Input parameter invalid. Input parameter validation schema not found. ScannerAttribMetaFile invalid. Another firmware update already in progress on the scanner. Unknown command in firmware file. Packet size not found in firmware file.

3-8

WMI DRIVER DEVELOPERS GUIDE

Events
The Motorola scanner WMI provider implements the events in Table 3-4. The events are defined in the scanner MOF file.
Table 3-4 Events Descriptions

Name SymbScnrFirmwareUpdateEvent

Description Occurs at different stages of firmware update activity. The following types are defined: 1 - Session start 2 - Download start 3 - Download progress (for every 10th block downloaded to scanner) 11 - Session end 12 - Download end 100 - Error Occurs when a scanner is connected or disconnected from the host, indicated using the following status values: 0 - Device lost 1 - Device found

SymbScnrDiscoveryEvent

Motorola Driver WMI MOF File


The Motorola Driver WMI schema is defined using Managed Object Format (MOF) in the file RSMDriverProvider.mof located in the directory \Motorola Scanner\Common. The RSMDriverProvider.mof describes and lists the properties, methods, and events exposed by the instance/method provider. If a specific device or class of device does not support a property, its property value is defined as null.

Properties Exposed by the Instance/Method Provider


Table 3-5 Properties Exposed by the Instance/Method Provider

Name HostAutoSwitchingEnabled

Type Boolean

Acces s Allow ed R (key)

Description If enabled, driver temporarily switches Non-RSM mode scanners to RSM mode, every time the scanner is attached or re-booted

Valid Values TRUE, FALSE

MOTOROLA WMI PROVIDER SCHEMA IN COMMON INFORMATION MODEL (CIM)

3-9

Methods Exposed by the Instance/Method Provider


Table 3-6 Methods Exposed by the Instance/Method Provider

Name GetDeviceTopology

Parameters [OUT] string DeviceTopology [IN] string ScannerIdentity, [IN] string TargetHostMode, [IN] boolean IsSilentSwitch, [IN] boolean IsPermanentChange [IN] string ScannerIdentity [IN] string AttributeMetaFilePath

Return Values Integer 0 = Success Non-zero=Failure Integer 0 = Success Non-zero=Failure

Description Get the Device Topology.

SwitchHostMode

Switch Host Mode of the scanner.

RebootScanner

Integer 0 = Success Non-zero=Failure Integer 0 = Success Non-zero=Failure

Reboot the given scanner.

UpdateAttributeMetaFile

Update Attribute MetaFile.

Events Exposed by the Instance/Method Provider


Table 3-7 Events Exposed by the Instance/Method Provider

Name ScannerPNPEvent

Description This event occurs when a Motorola scanner is attached or detached on the host computer. Attach - 0 Detach - 1 Reboot - 2

3 - 10 WMI DRIVER DEVELOPERS GUIDE

CHAPTER 4 TEST UTILITIES AND SOURCE CODE


Overview
The Motorola WMI provider includes C# sample applications that perform queries of the scanner properties and invoke methods. These sample applications, which include source code, demonstrate subscription for scanner discovery events and firmware update events. The Driver WMI Sample Application demonstrates an application communicating with the Motorola Scanner WMI Driver. The Scanner WMI Sample Application enables you to display management data received from the scanner through the Motorola Scanner SDK Driver.

4-2

WMI DRIVER DEVELOPERS GUIDE

Test Utilities Provided in the SDK


The Motorola WMI provider includes the following test utilities:

Scanner WMI C# Sample Application Driver WMI C# Sample Application.


Each test utility demonstrates the main functionalities of the Motorola WMI provider. You can gain an understanding of the Motorola WMI provider using these test utilities. This chapter also describes how to use the test utilities' functionality.
NOTE Microsoft.Net Framework v2.0 or later may need to be installed to execute C#.Net sample applications. If so, Microsoft detects and informs the user of this requirement.

Scanner WMI C# Sample Application


The Motorola Scanner WMI C#.Net sample application enables you to simulate an application which communicates with the Motorola Scanner WMI provider. The utility demonstrates the functionality of the Scanner WMI provider. It includes C#.Net source code and its solution, and project files for further reference. The Scanner WMI C# Sample Application is included with the standard installation of the Scanner SDK, or when the Scanner WMI Provider Sample Application option of the custom Scanner SDK installation is selected. To access this window, go to the Programs menu under Motorola Scanner > Scanner WMI Provider.

Figure 4-1 Scanner WMI Test Window

TEST UTILITIES AND SOURCE CODE

4-3

Table 4-1 Scanner WMI Test Utility - Button/Field Functionality

Button or Field (Host) Name or IP Address Connect

Description Specifies the name or IP address of the computer to connect. The default is localhost. Connects to the host specified in the Name or IP Address field, populates Method and Property lists, and registers to receive scanner discovery events and firmware update events. Discovers scanners connected to the host device. Extracted from the part number of all discovered scanners. The serial numbers of the scanners under the model selected from the Model Number drop-down list. The firmware version of the selected scanner. The manufacture date of the selected scanner. Drop-down list containing the following items:

Discover Model Number Serial Number Firmware Version Manufacture Date Method

GetAllAttributes: Gets all attribute identities in an XML string and displays them
in the output box.

GetAttributes: Gets detailed attribute information of attribute numbers specified


in the parameter input box, and displays them in the output box.

ScanDisable: Disables scanner. ScanEnable: Enables scanner. SetAttributes: Sets the list of attribute values specified in the parameter input
box. These values are volatile, and are discarded after a device reboot.

StartNewFirmware: Starts the scanner with newly downloaded firmware. StoreAttributes: Stores the list of attribute values specified in the parameter
input box. These values are non-volatile, and persist after a device reboot. specified in the parameter input box.

UpdateAttribMetaFile: Updates attribute meta data with contents of the file UpdateFirmware: Displays an Open window for selecting the firmware file.
IN Param Name IN Param Value Execute Query Properties Get Management Data Firmware Update Status Name of the input parameter of the item selected in the Method drop-down list, if applicable. Text field to enter the value of the input parameter required for the selected method, if applicable. Invokes the method selected in the Method drop-down list. If the method requires an input parameter value, enter it in the text box. List of properties that can be queried. This list is not comprehensive. Use the GetAttributes method to discover additional scanner attribute values. Queries one or more properties selected in the list box and display results in the output text area. You can select multiple items in the list box at a time. Displays the results of a method execution or property query. Displays the firmware update status received from Firmware Update Events.

4-4

WMI DRIVER DEVELOPERS GUIDE

Table 4-1 Scanner WMI Test Utility - Button/Field Functionality (Continued)

Button or Field Clear Retrieve from Scanner Retrieve from File Save to File Push Retrieve Clears text in the data output areas.

Description

Retrieves all storable attributes from the scanner and stores them in the clipboard. Opens a window to read in an .xml file containing attribute settings to the clipboard. Save clipboard contents to a file. Provides a Save as window to select the filename. Opens the Cloning window that you can use to push the clipboard contents to selected scanners. Retrieves all storable attributes from the scanner and populates the Parameters drop-down list with the attributes. When you select an attribute in the list, the Value drop-down list changes to match its content ( rue / False or text box). The Value list also T displays the current value. Stores the current value of the selected attribute.

Set Parameter

TEST UTILITIES AND SOURCE CODE

4-5

Driver WMI C# Sample Application


The Motorola Driver WMI C#.Net sample application enables you to simulate an application that communicates with the Motorola Driver WMI provider. The utility demonstrates the functionality of the Driver WMI provider. It includes C#.Net source code and its solution and project files for further reference. The Driver WMI C# Sample Application is included with the standard installation of the Scanner SDK, or when the Driver WMI Provider Sample Application option of the custom Scanner SDK installation is selected. To access this window select the Programs menu under Motorola Scanner > Driver WMI Provider.

Figure 4-2 Driver WMI Test Window Table 4-2 Driver WMI Test Utility - Button/Field Functionality

Button or Field (Host) Name or IP Address Connect

Description Specifies the name or IP address of the computer to connect. The default is localhost. Connects to the host specified in the Name or IP Address field, populates Method and Property lists, and registers to receive scanner discovery events and firmware update events. Drop-down list containing the following items:

Method

GetDeviceTopology: Get the topology that devices are connected to the


specified computer.

RebootScanner: Reboot a specified scanner or all scanners connected. SwitchHostMode: Switch the USB communication protocol of a specified
scanner. Permanent change and silent switch parameters can be set as input parameters.

UpdateAttribMetaFile: Updates attribute metadata with contents of the file


specified in the File Path text box. Input Parameters Name of the input parameter of the item selected in the Method drop-down list, if applicable.

4-6

WMI DRIVER DEVELOPERS GUIDE

Table 4-2 Scanner WMI Test Utility - Button/Field Functionality (Continued)

Button or Field Execute Query Properties Get Management Data Listen Scanner PNP Event Autoswitch Host Mode Clear

Description Invokes the method selected in the Method drop-down list. If the method requires an input parameter value, enter it in the text box. List of properties that can be queried. Queries a property selected in the list box and display results in the Management Data text area. Displays the results of a method execution or property query. Listen to the scanner attach and detach events and display the results in the text area. Automatically switch the HID Keyboard scanners to IBM handheld scanners. Clears the output.

APPENDIX A XML SCHEMAS


Overview
This appendix provides the XML schemas which Motorola Scanner WMI interfaces use to communicate with an RSM-ready scanner.
Table A-1 XML Schemas

Method GetAllAttributes GetAttributes


Page A-2 A-3

Schema for AttNumberList Schema for AttValueList A-5 Schema for startAttribute Schema for nextAttribute A-6 A-7 A-8 A-9 A-10 A-12

GetNextAttribute

SetAttributes and StoreAttributes UpdateAttribMetaFile GetDeviceTopology ScanDataEvent ScanCmdResponseEvent ScanRMDEvent


SCANNER_UF_SESS_START and SCANNER_UF_SESS_END SCANNER_DEVICE_FOUND and SCANNER_DEVICE_LOST SCANNER_UF_DL_START and END SCANNER_UF_DL_PROGRESS

A-2

WMI DRIVER DEVELOPERS GUIDE

GetAllAttributes
<?xml version="1.0" encoding="utf-8" ?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element name="attrib_list"> <xs:complexType> <xs:sequence> <xs:element name="attribute" maxOccurs="unbounded"> <xs:complexType> <xs:simpleContent> <xs:extension base="xs:unsignedShort"> <xs:attribute name="name" type="xs:string" use="required"/> </xs:extension> </xs:simpleContent> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> </xs:schema>

XML SCHEMAS

A-3

GetAttributes
Schema for AttNumberList
<?xml version="1.0" encoding="utf-8" ?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element name="attrib_list"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:pattern value="[0-9][0-9, ]*" /> <xs:whiteSpace value="collapse"/> </xs:restriction> </xs:simpleType> </xs:element> </xs:schema>

A-4

WMI DRIVER DEVELOPERS GUIDE

Schema for AttValueList


<?xml version="1.0" encoding="utf-8" ?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:annotation> <xs:documentation> Attribute values returned when GetAttributes Scanner COM API method is called </xs:documentation> </xs:annotation> <xs:element name="attrib_list"> <xs:complexType> <xs:sequence> <xs:element name="attribute" maxOccurs="unbounded"> <xs:complexType> <xs:sequence> <xs:annotation> <xs:documentation> When the id is not applicable other elements may not occur </xs:documentation> </xs:annotation> <xs:element name="id"> <xs:complexType> <xs:simpleContent> <xs:extension base="xs:unsignedShort"> <xs:attribute name="applicable" use="optional" default="true"> <xs:simpleType> <xs:restriction base="xs:boolean"> <xs:pattern value="true" /> <xs:pattern value="false" /> </xs:restriction> </xs:simpleType> </xs:attribute> </xs:extension> </xs:simpleContent> </xs:complexType> </xs:element> <xs:element name="name" type="xs:string" minOccurs="0" /> <xs:element name="datatype" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:pattern value="[ABCDFILSW]" /> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="permission" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:enumeration value="R W P" /> <xs:enumeration value="R W" /> <xs:enumeration value="R" /> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="value" type="xs:string" minOccurs="0" /> </xs:sequence> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> </xs:schema>

XML SCHEMAS

A-5

GetNextAttribute
Schema for startAttribute
<?xml version="1.0" encoding="utf-8" ?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:annotation> <xs:documentation> Input to GetNextAttribute Scanner COM API method </xs:documentation> </xs:annotation> <xs:element name="attribute" type="xs:unsignedShort" /> </xs:schema>

Schema for nextAttribute


<?xml version="1.0" encoding="utf-8" ?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:annotation> <xs:documentation> Attribute values returned when GetAttributes Scanner COM API method is called </xs:documentation> </xs:annotation> <xs:element name="attrib_list"> <xs:complexType> <xs:sequence> <xs:element name="attribute"> <xs:complexType> <xs:sequence> <xs:element name="id" type="xs:unsignedShort" /> <xs:element name="name" type="xs:string" /> <xs:element name="datatype"> <xs:simpleType> <xs:restriction base="xs:string" > <xs:pattern value="[ABCDFILSW]" /> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="permission"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:enumeration value="R W P" /> <xs:enumeration value="R W" /> <xs:enumeration value="R" /> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="value" type="xs:string" /> </xs:sequence> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> </xs:schema>

A-6

WMI DRIVER DEVELOPERS GUIDE

SetAttributes and StoreAttributes


<?xml version="1.0" encoding="utf-8" ?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element name="attrib_list"> <xs:complexType> <xs:sequence> <xs:element name="attribute" maxOccurs="unbounded"> <xs:complexType> <xs:sequence> <xs:element name="id" type="xs:unsignedShort" /> <xs:element name="name" type="xs:string" minOccurs="0" /> <xs:element name="datatype"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:pattern value="[ABCDFILSW]" /> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="permission" type="xs:string" minOccurs="0" /> <xs:element name="value"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:pattern value=".+" /> </xs:restriction> </xs:simpleType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> </xs:schema>

XML SCHEMAS

A-7

UpdateAttribMetaFile
<?xml version="1.0" encoding="utf-8" ?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element name="attrib_meta_data"> <xs:complexType> <xs:sequence> <xs:element name="version" type="xs:string" minOccurs="0" /> <xs:element name="attribute" maxOccurs="unbounded"> <xs:complexType> <xs:attribute name="id" type="xs:unsignedShort" use="required" /> <xs:attribute name="name" type="xs:string" use="required"/> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> </xs:schema>

A-8

WMI DRIVER DEVELOPERS GUIDE

GetDeviceTopology
<?xml version="1.0" encoding="utf-8" ?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element name="device"> <xs:complexType> <xs:sequence> <xs:element name="device" minOccurs="0" maxOccurs="unbounded"> <xs:complexType> <xs:sequence> <xs:element name="device" minOccurs="0" maxOccurs="unbounded"> <xs:complexType> <xs:attribute name="model" type="xs:string" use="required" /> <xs:attribute name="serial_num" type="xs:string" use="required" /> </xs:complexType> </xs:element> </xs:sequence> <xs:attribute name="model" type="xs:string" use="required" /> <xs:attribute name="serial_num" type="xs:string" use="required" /> </xs:complexType> </xs:element> </xs:sequence> <xs:attribute name="model" type="xs:string" use="optional"/> <xs:attribute name="serial_num" type="xs:string" use="optional"/> </xs:complexType> </xs:element> </xs:schema>

XML SCHEMAS

A-9

ScanDataEvent
<?xml version="1.0" encoding="utf-8" ?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element name="scandata" > <xs:complexType> <xs:sequence> <xs:element name="datatype" type="xs:string" /> <xs:element name="datalabel" type="xs:string" /> <xs:element name="model" type="xs:string" /> <xs:element name="serial" type="xs:string" /> <xs:element name="rawdata" type="xs:string" /> </xs:sequence> </xs:complexType> </xs:element> </xs:schema>

A - 10 WMI DRIVER DEVELOPERS GUIDE

ScanCmdResponseEvent
The following schema applies to responses from all asynchronously invoked commands except GetAllAttributes.
<?xml version="1.0" encoding="utf-8" ?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element name="response"> <xs:complexType> <xs:sequence> <xs:annotation> <xs:documentation> opcode can be 0x02, 0x03, 0x05, 0x06, 0x64, 0x65 </xs:documentation> </xs:annotation> <xs:element name="model" type="xs:string" /> <xs:element name="serial_num" type="xs:string" /> <xs:element name="opcode"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:pattern value="[0][xX][0][2356]" /> <xs:pattern value="[0][xX][6][45]" /> <xs:length value="4" /> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="attrib_list" minOccurs="0"> <xs:complexType> <xs:sequence> <xs:element name="attribute" minOccurs="0" maxOccurs="unbounded"> <xs:complexType> <xs:sequence> <xs:element name="id" type="xs:unsignedShort"/> <xs:element name="name"type="xs:string" /> <xs:element name="datatype"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:pattern value="[ABCDFILSW]" /> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="permission"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:enumeration value="R W P" /> <xs:enumeration value="R W" /> <xs:enumeration value="R" /> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="value" type="xs:string" /> </xs:sequence> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> </xs:schema>

XML SCHEMAS A - 11

ScanCmdResponseEvent (continued)
The following schema applies only to an asynchronously invoked GetAllAttributes command. <?xml version="1.0" encoding="utf-8" ?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element name="response"> <xs:complexType> <xs:sequence> <xs:element name="model" type="xs:string" /> <xs:element name="serial_num" type="xs:string" /> <xs:annotation> <xs:documentation>opcode can be 0x01 </xs:documentation> </xs:annotation> <xs:element name="opcode"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:pattern value="[0][xX][0][1]" /> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="attrib_list"> <xs:complexType> <xs:sequence> <xs:element name="attribute" maxOccurs="unbounded"> <xs:complexType> <xs:simpleContent> <xs:extension base="xs:unsignedShort"> <xs:attribute name="name" type="xs:string" use="required"/> </xs:extension> </xs:simpleContent> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> </xs:schema>

A - 12 WMI DRIVER DEVELOPERS GUIDE

ScanRMDEvent
SCANNER_UF_SESS_START and SCANNER_UF_SESS_END
<?xml version="1.0" encoding="utf-8" ?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:annotation> <xs:documentation> Firmware update session start event. In all firmware update events success is indicated by status value 0. And failure indicated by status 1 </xs:documentation> </xs:annotation> <xs:element name="sess_start"> <xs:complexType> <xs:sequence> <xs:element name="model" type="xs:string" /> <xs:element name="serial_num" type="xs:string" /> <xs:element name="size" type="xs:unsignedInt" /> <xs:annotation> <xs:documentation> 0 indicates success, any other value is a failure </xs:documentation> </xs:annotation> <xs:element name="status" type="xs:int" /> </xs:sequence> </xs:complexType> </xs:element> <xs:annotation> <xs:documentation> Firmware update session end event</xs:documentation> </xs:annotation> <xs:element name="sess_end"> <xs:complexType> <xs:sequence> <xs:element name="model" type="xs:string" /> <xs:element name="serial_num" type="xs:string" /> <xs:annotation> <xs:documentation> 0 indicates success, any other value is a failure </xs:documentation> </xs:annotation> <xs:element name="status" type="xs:int" /> </xs:sequence> </xs:complexType> </xs:element> </xs:schema>

XML SCHEMAS A - 13

SCANNER_DEVICE_FOUND and SCANNER_DEVICE_LOST


<?xml version="1.0" encoding="utf-8" ?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:annotation> <xs:documentation> Device discovery and loss event</xs:documentation> </xs:annotation> <xs:element name="discovery"> <xs:complexType> <xs:sequence> <xs:element name="model" type="xs:string" /> <xs:element name="serial_num" type="xs:string" /> <xs:element name="status"> <xs:annotation> <xs:documentation> Status 1 indicates device found, 0 indicates device lost </xs:documentation> </xs:annotation> <xs:simpleType> <xs:restriction base="xs:string"> <xs:pattern value="[01]" /> </xs:restriction> </xs:simpleType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> <xs:schema>

A - 14 WMI DRIVER DEVELOPERS GUIDE

SCANNER_UF_DL_START and END


<?xml version="1.0" encoding="utf-8" ?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:annotation> <xs:documentation> Firmware update download start event</xs:documentation> </xs:annotation> <xs:element name="dl_start"> <xs:complexType> <xs:sequence> <xs:element name="model" type="xs:string" /> <xs:element name="serial_num" type="xs:string" /> <xs:element name="software_component" type="xs:unsignedShort"/> <xs:annotation> <xs:documentation> 0 : success, 110 : sc resident , 111: sc unknown. Any other value is a failure </xs:documentation> </xs:annotation> <xs:element name="status" type="xs:int"/> </xs:sequence> </xs:complexType> </xs:element> <xs:annotation> <xs:documentation> Firmware update download end event</xs:documentation> </xs:annotation> <xs:element name="dl_end"> <xs:complexType> <xs:sequence> <xs:element name="model" type="xs:string" /> <xs:element name="serial_num" type="xs:string" /> <xs:element name="software_component" type="xs:unsignedShort"/> <xs:element name="size" type="xs:unsignedInt" /> <xs:annotation> <xs:documentation> 0 : success, 110 : sc resident , 111: sc unknown. Any other value is a failure </xs:documentation> </xs:annotation> <xs:element name="status" type="xs:int" /> </xs:sequence> </xs:complexType> </xs:element> </xs:schema>

XML SCHEMAS A - 15

SCANNER_UF_DL_PROGRESS
<?xml version="1.0" encoding="utf-8" ?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:annotation> <xs:documentation> Firmware update download progress event </xs:documentation> </xs:annotation> <xs:element name="dl_progress"> <xs:complexType> <xs:sequence> <xs:element name="model" type="xs:string" /> <xs:element name="serial_num" type="xs:string" /> <xs:element name="progress" type="xs:unsignedShort" /> <xs:annotation> <xs:documentation> 0 : success, 110 : sc resident , 111: sc unknown. Any other value is a failure </xs:documentation> </xs:annotation> <xs:element name="status" type="xs:int" /> </xs:sequence> </xs:complexType> </xs:element> </xs:schema>

A - 16 WMI DRIVER DEVELOPERS GUIDE

INDEX
B
BeeperFreq . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-5 BeeperVolume . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-5 bold text use in guide . . . . . . . . . . . . . . . . . . . . . . . . . viii bullets use in guide . . . . . . . . . . . . . . . . . . . . . . . . . . . viii SymbScnrDiscoveryEvent . . . . . . . . . . . . . . . . . . 3-8 SymbScnrFirmwareUpdateEvent . . . . . . . . . . . . 3-8 events Exposed by instance/method provider ScannerPNPEvent . . . . . . . . . . . . . . . . . . . . . . . 3-9

F
FirmwareUpdateBlockCount . . . . . . . . . . . . . . . . . . . 3-2 FirmwareUpdateStatus . . . . . . . . . . . . . . . . . . . . . . . 3-2 FirmwareUpdateStatusCode . . . . . . . . . . . . . . . . . . . 3-2 FirmwareUpdateStatusCodeEx . . . . . . . . . . . . . . . . . 3-2 FirmwareUpdateTotalBlocks . . . . . . . . . . . . . . . . . . . 3-2 FirmwareVersion . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-2 font use in guide . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .viii

C
Caption . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-2 Code11 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-4 Code11Length1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-4 Code11Length2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-4 CODE128 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-3 Code39 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-3 Code39Length1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-4 Code39Length2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-4 Code93 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-4 Code93Length1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-4 Code93Length2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-4 conventions notational . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . viii ConvertUPCE1toA . . . . . . . . . . . . . . . . . . . . . . . . . . 3-3 ConvertUPCEtoA . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-3

G
GetAllAttributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-6 GetAttributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-6 GetDeviceTopology . . . . . . . . . . . . . . . . . . . . . . . . . . 3-9

H
HostAutoSwitchingEnabled . . . . . . . . . . . . . . . . . . . . 3-8

D
DateOfManufacture . . . . . . . . . . . . . . . . . . . . . . . . . . DateOfService . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . DeviceClass . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-1 3-1 3-2 3-2

I
InCradle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-3 information, service . . . . . . . . . . . . . . . . . . . . . . . . . . . ix italics use in guide . . . . . . . . . . . . . . . . . . . . . . . . . . . .viii

E
EAN13 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-3 EAN8 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-3 events

L
LaserOnTime . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-5 LastDecodeData . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-3 LowPowerMode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-3

Index - 2

WMI DRIVER DEVELOPERS GUIDE

M
methods GetAllAttributes . . . . . . . . . . . . . . . . . . . . . . . . . . 3-6 GetAttributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-6 ScanDisable . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-7 ScanEnable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-7 SetAttributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-6 StartNewFirmware . . . . . . . . . . . . . . . . . . . . . . . 3-7 StoreAttributes . . . . . . . . . . . . . . . . . . . . . . . . . . 3-6 UpdateAttribMetaFile . . . . . . . . . . . . . . . . . . . . . 3-7 UpdateFirmware . . . . . . . . . . . . . . . . . . . . . . . . . 3-6 MiddlewareDriverVersion . . . . . . . . . . . . . . . . . . . . . 3-2 MOF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-3 mof file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-3, 3-1, 3-8

N
notational conventions . . . . . . . . . . . . . . . . . . . . . . . . . viii

O
OperationMode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-3

P
PartNumber . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . properties BeeperFreq . . . . . . . . . . . . . . . . . . . . . . . . . . . . . BeeperVolume . . . . . . . . . . . . . . . . . . . . . . . . . . Caption . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Code11 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Code11Length1 . . . . . . . . . . . . . . . . . . . . . . . . . Code11Length2 . . . . . . . . . . . . . . . . . . . . . . . . . CODE128 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Code39 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Code39Length1 . . . . . . . . . . . . . . . . . . . . . . . . . Code39Length2 . . . . . . . . . . . . . . . . . . . . . . . . . Code93 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Code93Length1 . . . . . . . . . . . . . . . . . . . . . . . . . Code93Length2 . . . . . . . . . . . . . . . . . . . . . . . . . ConvertUPCE1toA . . . . . . . . . . . . . . . . . . . . . . . ConvertUPCEtoA . . . . . . . . . . . . . . . . . . . . . . . . DateOfManufacture . . . . . . . . . . . . . . . . . . . . . . . DateOfService . . . . . . . . . . . . . . . . . . . . . . . . . . . Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . DeviceClass . . . . . . . . . . . . . . . . . . . . . . . . . . . . EAN13 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . EAN8 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . FirmwareUpdateBlockCount . . . . . . . . . . . . . . . . FirmwareUpdateStatus . . . . . . . . . . . . . . . . . . . . FirmwareUpdateStatusCode . . . . . . . . . . . . . . . . FirmwareUpdateStatusCodeEx . . . . . . . . . . . . . . FirmwareUpdateTotalBlocks . . . . . . . . . . . . . . . . 3-1 3-5 3-5 3-2 3-4 3-4 3-4 3-3 3-3 3-4 3-4 3-4 3-4 3-4 3-3 3-3 3-1 3-1 3-2 3-2 3-3 3-3 3-2 3-2 3-2 3-2 3-2

FirmwareVersion . . . . . . . . . . . . . . . . . . . . . . . . . 3-2 InCradle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-3 LaserOnTime . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-5 LastDecodeData . . . . . . . . . . . . . . . . . . . . . . . . . 3-3 LowPowerMode . . . . . . . . . . . . . . . . . . . . . . . . . . 3-3 MiddlewareDriverVersion . . . . . . . . . . . . . . . . . . . 3-2 OperationMode . . . . . . . . . . . . . . . . . . . . . . . . . . 3-3 PartNumber . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-1 RasterMode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-3 RedundancyLevel . . . . . . . . . . . . . . . . . . . . . . . . 3-4 SecurityLevel . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-5 SerialNumber . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-1 TotalDecodes . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-3 TotalGoodDecodes . . . . . . . . . . . . . . . . . . . . . . . 3-3 TriopticCode39 . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-4 UCCCouponExtendedCode . . . . . . . . . . . . . . . . . 3-3 UCCEAN128 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-3 UPCA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-3 UPCE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-3 UPCE1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-3 properties exposed by instance/method provider GetDeviceTopology . . . . . . . . . . . . . . . . . . . . . . . 3-9 HostAutoSwitchingEnabled . . . . . . . . . . . . . . . . . 3-8 RebootScanner . . . . . . . . . . . . . . . . . . . . . . . . . . 3-9 SwitchHostMode . . . . . . . . . . . . . . . . . . . . . . . . . 3-9 UpdateAttributeMetaFile . . . . . . . . . . . . . . . . . . . 3-9

R
RasterMode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-3 RebootScanner . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-9 RedundancyLevel . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-4 return values, WMI methods invocations . . . . . . . . . . 3-7 RSM Driver Provider Service . . . . . . . . . . . . . . . . . . . 2-1

S
ScanDisable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-7 ScanEnable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-7 Scanner Managed Object Format . . . . . . . . . . . . . . . 1-3 SDK Installshield package . . . . . . . . . . . . . . . . . . . . 2-1 SecurityLevel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-5 SerialNumber . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-1 service information . . . . . . . . . . . . . . . . . . . . . . . . . . . . ix SetAttributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-6 StartNewFirmware . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-7 StoreAttributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-6 SwitchHostMode . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-9 Symbol Scanner Management . . . . . . . . . . . . . . . . . . 2-1 SymbScnrDiscoveryEvent . . . . . . . . . . . . . . . . . . . . . 3-8 SymbScnrFirmwareUpdateEvent . . . . . . . . . . . . . . . . 3-8

Index - 3

T
test utilities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . TotalDecodes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . TotalGoodDecodes . . . . . . . . . . . . . . . . . . . . . . . . . . TriopticCode39 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-2 3-3 3-3 3-4

U
UCCCouponExtendedCode . . . . . . . . . . . . . . . . . . . UCCEAN128 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . UPCA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . UPCE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . UPCE1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . UpdateAttribMetaFile . . . . . . . . . . . . . . . . . . . . . . . . UpdateAttributeMetaFile . . . . . . . . . . . . . . . . . . . . . . UpdateFirmware . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-3 3-3 3-3 3-3 3-3 3-7 3-9 3-6

W
Windows Management Service . . . . . . . . . . . . . . . . . 1-3 windows services RSM Driver Provider Service . . . . . . . . . . . . . . . 2-1 Symbol Scanner Management . . . . . . . . . . . . . . 2-1 WMI components . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-3 driver architecture . . . . . . . . . . . . . . . . . . . . . . . . 1-2 Driver WMI provider . . . . . . . . . . . . . . . . . . . . . . 2-1 infrastructure . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-3 mof file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-1 overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-1 plug-in . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-3, 2-1 provider installation . . . . . . . . . . . . . . . . . . . . . . . 2-2 provider test utilities . . . . . . . . . . . . . . . . . . . . . . 4-2 providers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-1 repository . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-3 return values, methods invocations . . . . . . . . . . 3-7 Scanner WMI provider . . . . . . . . . . . . . . . . . . . . 2-1

Index - 4

WMI DRIVER DEVELOPERS GUIDE

GLOSSARY
A
API. An interface by means of which one software component communicates with or controls another. Usually used to refer to services provided by one software component to another, usually via software interrupts or function calls Aperture. The opening in an optical system defined by a lens or baffle that establishes the field of view. Application Programming Interface. See API. ANSI Terminal. A display terminal that follows commands in the ANSI standard terminal language. For example, it uses escape sequences to control the cursor, clear the screen and set colors. Communications programs support the ANSI terminal mode and often default to this terminal emulation for dial-up connections to online services. ASCII. American Standard Code for Information Interchange. A 7 bit-plus-parity code representing 128 letters, numerals, punctuation marks and control characters. It is a standard data transmission code in the U.S. Autodiscrimination. The ability of an interface controller to determine the code type of a scanned bar code. After this determination is made, the information content is decoded.

B
Bar. The dark element in a printed bar code symbol. Bar Code. A pattern of variable-width bars and spaces which represents numeric or alphanumeric data in machine-readable form. The general format of a bar code symbol consists of a leading margin, start character, data or message character, check character (if any), stop character, and trailing margin. Within this framework, each recognizable symbology uses its own unique format. See Symbology. Bar Code Density. The number of characters represented per unit of measurement (e.g., characters per inch). Bar Height. The dimension of a bar measured perpendicular to the bar width.

Glossary - 2

WMI DRIVER DEVELOPERS GUIDE

Bar Width. Thickness of a bar measured from the edge closest to the symbol start character to the trailing edge of the same bar. BIOS. Basic Input Output System. A collection of ROM-based code with a standard API used to interface with standard PC hardware. Bit. Binary digit. One bit is the basic unit of binary information. Generally, eight consecutive bits compose one byte of data. The pattern of 0 and 1 values within the byte determines its meaning. Bits per Second (bps). Bits transmitted or received. Bit. Binary digit. One bit is the basic unit of binary information. Generally, eight consecutive bits compose one byte of data. The pattern of 0 and 1 values within the byte determines its meaning. bps. See Bits Per Second. Byte. On an addressable boundary, eight adjacent binary digits (0 and 1) combined in a pattern to represent a specific character or numeric value. Bits are numbered from the right, 0 through 7, with bit 0 the low-order bit. One byte in memory is used to store one ASCII character. BOOTP. A protocol for remote booting of diskless devices. Assigns an IP address to a machine and may specify a boot file. The client sends a bootp request as a broadcast to the bootp server port (67) and the bootp server responds using the bootp client port (68). The bootp server must have a table of all devices, associated MAC addresses and IP addresses. boot or boot-up. The process a computer goes through when it starts. During boot-up, the computer can run self-diagnostic tests and configure hardware and software.

Motorola Solutions, Inc. One Motorola Plaza Holtsville, New York 11742, USA http://www.motorolasolutions.com MOTOROLA, MOTO, MOTOROLA SOLUTIONS and the Stylized M Logo are trademarks or registered trademarks of Motorola Trademark Holdings, LLC and are used under license. All other trademarks are the property of their respective owners. 2011 Motorola Solutions, Inc. All Rights Reserved.

72E-149785-01 Revision A - May 2011

You might also like