/*===========================================================================
FILE: 
   QCWWANCMAPI2k.h

DESCRIPTION:
   QUALCOMM Wireless WAN Connection Manager API for Gobi 2000

Copyright (C) 2009 QUALCOMM Incorporated. All rights reserved.
                   QUALCOMM Proprietary/GTDR

All data and information contained in or disclosed by this document is
confidential and proprietary information of QUALCOMM Incorporated and all
rights therein are expressly reserved.  By accepting this material the
recipient agrees that this material and the information contained therein
is held in confidence and in trust and will not be used, copied, reproduced
in whole or in part, nor its contents revealed in any manner to others
without the express written permission of QUALCOMM Incorporated.
==========================================================================*/

/*=========================================================================*/
// Definitions
/*=========================================================================*/
#ifdef GOBIAPI_EXPORTS
       #define QCIMPORT2K extern "C" __declspec( dllexport )   
#else  //GOBIAPI_EXPORTS
    #ifdef __cplusplus
       /* C++ callable DLL */
       #define QCIMPORT2K extern "C" __declspec( dllimport )   
    #else
       /* C callable DLL */
       #define QCIMPORT2K __declspec( dllimport )
    #endif
#endif //GOBIAPI_EXPORTS

// Calling convention for API
#define QCCALLBACK2K __stdcall
#define QCWWANAPI2K __stdcall

#ifdef __cplusplus
   extern "C" {
#endif

// Session state callback function
typedef void (QCCALLBACK2K * tFNSessionState)( 
   ULONG                      state,
   ULONG                      sessionEndReason );

// RX/TX Packet counts callback function
typedef void (QCCALLBACK2K * tFNPacketTotals)( 
   ULONG					  totalPacketTX,
   ULONG					  totalPacketRX );

// RX/TX byte counts callback function
typedef void (QCCALLBACK2K * tFNByteTotals)( 
   ULONGLONG                  totalBytesTX,
   ULONGLONG                  totalBytesRX );

// Dormancy status callback function
typedef void (QCCALLBACK2K * tFNDormancyStatus)( ULONG dormancyStatus );

// Mobile IP status callback function
typedef void (QCCALLBACK2K * tFNMobileIPStatus)( ULONG mipStatus );

// Activation status callback function
typedef void (QCCALLBACK2K * tFNActivationStatus)( ULONG activationStatus );

// Power operating mode callback function
typedef void (QCCALLBACK2K * tFNPower)( ULONG operatingMode );

// Serving system data capabilities callback function
typedef void (QCCALLBACK2K * tFNDataCapabilities)(
   BYTE                       dataCapsSize, 
   BYTE *                     pDataCaps );

// Data bearer technology callback function
typedef void (QCCALLBACK2K * tFNDataBearer)( ULONG dataBearer );

// Roaming indicator callback function
typedef void (QCCALLBACK2K * tFNRoamingIndicator)( ULONG roaming );

// Signal strength callback function
typedef void (QCCALLBACK2K * tFNSignalStrength)(
   INT8                       signalStrength, 
   ULONG                      radioInterface );

// RF information callback function
typedef void (QCCALLBACK2K * tFNRFInfo)( 
   ULONG                      radioInterface,
   ULONG                      activeBandClass,
   ULONG                      activeChannel );

// LU reject callback function
typedef void (QCCALLBACK2K * tFNLUReject)( 
   ULONG                      serviceDomain,
   ULONG                      rejectCause );

// New SMS message callback function
typedef void (QCCALLBACK2K * tFNNewSMS)( 
   ULONG                      storageType,
   ULONG                      messageIndex );

// New NMEA sentence callback function
typedef void (QCCALLBACK2K * tFNNewNMEA)( LPCSTR pNMEA );

// New NMEA sentence plus mode callback function
typedef void (QCCALLBACK2K * tFNNewNMEAPlus)( 
   LPCSTR                     pNMEA,
   ULONG                      mode );

// PDS session state callback function
typedef void (QCCALLBACK2K * tFNPDSState)( 
   ULONG                      enabledStatus,
   ULONG                      trackingStatus );

// CAT event callback function
typedef void (QCCALLBACK2K * tFNCATEvent)( 
   ULONG                      eventID,
   ULONG                      eventLen,
   BYTE *                     pEventData );

// OMA-DM network initiated alert callback function
typedef void (QCCALLBACK2K * tFNOMADMAlert)( 
   ULONG                      sessionType,
   USHORT                     sessionID );

// OMA-DM state callback function
typedef void (QCCALLBACK2K * tFNOMADMState)( 
   ULONG                      sessionState,
   ULONG                      failureReason );

// NAS PLMN mode state callback function
typedef void (QCCALLBACK2K * tFNPLMNMode)(ULONG mode);

#ifdef __cplusplus
   };
#endif

/*=========================================================================*/
// Prototypes
/*=========================================================================*/

/*===========================================================================
METHOD:
   QCWWAN2kEnumerateDevices

DESCRIPTION:
   This function enumerates the QC WWAN devices currently attached to the
   system

PARAMETERS:
   pDevicesSize   [I/O] - Upon input the maximum number of elements that the 
                          device array can contain.  Upon successful output 
                          the actual number of elements in the device array
   pDevices       [ O ] - The device array 

RETURN VALUE:
   ULONG - Return code
===========================================================================*/
QCIMPORT2K ULONG QCWWANAPI2K QCWWAN2kEnumerateDevices( 
   BYTE *                     pDevicesSize, 
   BYTE *                     pDevices );

/*===========================================================================
METHOD:
   QCWWANConnect (Deprecated)

DESCRIPTION:
   This function connects the CM API library to the first QC WWAN 
   device detected

RETURN VALUE:
   ULONG - Return code
===========================================================================*/
QCIMPORT2K ULONG QCWWANAPI2K QCWWANConnect();

/*===========================================================================
METHOD:
   QCWWAN2kConnect

DESCRIPTION:
   This function connects the CM API library to the specified QC WWAN 
   device

PARAMETERS:
   pDeviceID   [ I ] - The device ID as reported by Windows
   pDeviceKey  [ I ] - The device key (unique, stored on-device)

RETURN VALUE:
   ULONG - Return code
===========================================================================*/
QCIMPORT2K ULONG QCWWANAPI2K QCWWAN2kConnect(
   CHAR *                     pDeviceID,
   CHAR *                     pDeviceKey );

/*===========================================================================
METHOD:
   QCWWANDisconnect

DESCRIPTION:
   This function disconnects the CM API library from the currently 
   connected QC WWAN device

RETURN VALUE:
   ULONG - Return code
===========================================================================*/
QCIMPORT2K ULONG QCWWANAPI2K QCWWANDisconnect();

/*===========================================================================
METHOD:
   QCWWANGetConnectedDeviceID (Deprecated)

DESCRIPTION:
   This function returns the ID of the device the QC WWAN CM API library 
   is currently connected to

PARAMETERS:
   stringSize  [ I ] - The maximum number of characters (including NULL 
                       terminator) that the string array can contain
   pString     [ O ] - NULL terminated string
  
RETURN VALUE:
   ULONG - Return code
===========================================================================*/
QCIMPORT2K ULONG QCWWANAPI2K QCWWANGetConnectedDeviceID( 
   ULONG                      stringSize, 
   CHAR *                     pString );

/*===========================================================================
METHOD:
   QCWWAN2kGetConnectedDeviceID

DESCRIPTION:
   This function returns the ID/key of the device the QC WWAN CM API library 
   is currently connected to

PARAMETERS:
   deviceIDSize   [ I ] - The maximum number of characters (including NULL 
                          terminator) that the device ID array can contain
   pDeviceID      [ O ] - Device ID (NULL terminated string)
   deviceKeySize  [ I ] - The maximum number of characters (including NULL 
                          terminator) that the device key array can contain
   pDeviceKey     [ O ] - Device key (NULL terminated string)
  
RETURN VALUE:
   ULONG - Return code
===========================================================================*/
QCIMPORT2K ULONG QCWWANAPI2K QCWWAN2kGetConnectedDeviceID( 
   ULONG                      deviceIDSize, 
   CHAR *                     pDeviceID,
   ULONG                      deviceKeySize, 
   CHAR *                     pDeviceKey );

/*===========================================================================
METHOD:
   GetSessionState

DESCRIPTION:
   This function returns the state of the current packet data session

PARAMETERS:
   pState      [ O ] - State of the current packet session
  
RETURN VALUE:
   ULONG - Return code
===========================================================================*/
QCIMPORT2K ULONG QCWWANAPI2K GetSessionState( ULONG * pState );

/*===========================================================================
METHOD:
   GetSessionDuration

DESCRIPTION:
   This function returns the duration of the current packet data session

PARAMETERS:
   pDuration   [ O ] - Duration of the current packet session
  
RETURN VALUE:
   ULONG - Return code
===========================================================================*/
QCIMPORT2K ULONG QCWWANAPI2K GetSessionDuration( ULONGLONG * pDuration );

/*===========================================================================
METHOD:
   GetDormancyState

DESCRIPTION:
   This function returns the dormancy state of the current packet 
   data session (when connected)

PARAMETERS:
   pState      [ O ] - Dormancy state of the current packet session
  
RETURN VALUE:
   ULONG - Return code
===========================================================================*/
QCIMPORT2K ULONG QCWWANAPI2K GetDormancyState( ULONG * pState );

/*===========================================================================
METHOD:
   GetAutoconnect

DESCRIPTION:
   This function returns the current autoconnect data session setting

PARAMETERS:
   pSetting    [ O ] - NDIS autoconnect disabled (0) or enabled (1)
 
RETURN VALUE:
   ULONG - Return code
===========================================================================*/
QCIMPORT2K ULONG QCWWANAPI2K GetAutoconnect( ULONG * pSetting );

/*===========================================================================
METHOD:
   SetAutoconnect

DESCRIPTION:
   This function sets the autoconnect data session setting

PARAMETERS:
   setting    [ I ] - NDIS autoconnect disabled (0) or enabled (non-zero)
 
RETURN VALUE:
   ULONG - Return code
===========================================================================*/
QCIMPORT2K ULONG QCWWANAPI2K SetAutoconnect( ULONG setting );

/*===========================================================================
METHOD:
   SetDefaultProfile

DESCRIPTION:
   This function writes the default profile settings to the device, the 
   default profile is used during autoconnect

PARAMETERS:
   profileType       [ I ] - Profile type being written
   pPDPType          [ I ] - (Optional) PDP type
   pIPAddress        [ I ] - (Optional) Preferred assigned IPv4 address
   pPrimaryDNS       [ I ] - (Optional) Primary DNS IPv4 address 
   pSecondaryDNS     [ I ] - (Optional) Secondary DNS IPv4 address 
   pAuthentication   [ I ] - (Optional) Authentication algorithm bitmap
   pName             [ I ] - (Optional) The profile name or description 
   pAPNName          [ I ] - (Optional) Access point name 
   pUsername         [ I ] - (Optional) Username used during authentication
   pPassword         [ I ] - (Optional) Password used during authentication

RETURN VALUE:
   ULONG - Return code
===========================================================================*/
QCIMPORT2K ULONG QCWWANAPI2K SetDefaultProfile( 
   ULONG                      profileType,
   ULONG *                    pPDPType, 
   ULONG *                    pIPAddress, 
   ULONG *                    pPrimaryDNS, 
   ULONG *                    pSecondaryDNS, 
   ULONG *                    pAuthentication, 
   CHAR *                     pName, 
   CHAR *                     pAPNName, 
   CHAR *                     pUsername,
   CHAR *                     pPassword );

/*===========================================================================
METHOD:
   GetDefaultProfile

DESCRIPTION:
   This function reads the default profile settings from the device, the 
   default profile is used during autoconnect

PARAMETERS:
   profileType       [ I ] - Profile type being read
   pPDPType          [ O ] - PDP type
   pIPAddress        [ O ] - Preferred assigned IPv4 address
   pPrimaryDNS       [ O ] - Primary DNS IPv4 address 
   pSecondaryDNS     [ O ] - Secondary DNS IPv4 address 
   pAuthentication   [ O ] - Authentication algorithm bitmap
   nameSize          [ I ] - The maximum number of characters (including 
                             NULL terminator) that the profile name array 
                             can contain
   pName             [ O ] - The profile name or description 
   apnSize           [ I ] - The maximum number of characters (including 
                             NULL terminator) that the APN name array 
                             can contain
   pAPNName          [ O ] - Access point name represented as a NULL 
                             terminated string (empty string returned when 
                             unknown)
   userSize          [ I ] - The maximum number of characters (including 
                             NULL terminator) that the username array 
                             can contain
   pUsername         [ O ] - Username used during authentication

RETURN VALUE:
   ULONG - Return code
===========================================================================*/
QCIMPORT2K ULONG QCWWANAPI2K GetDefaultProfile( 
   ULONG                      profileType,
   ULONG *                    pPDPType, 
   ULONG *                    pIPAddress, 
   ULONG *                    pPrimaryDNS, 
   ULONG *                    pSecondaryDNS, 
   ULONG *                    pAuthentication, 
   BYTE                       nameSize,
   CHAR *                     pName, 
   BYTE                       apnSize,
   CHAR *                     pAPNName, 
   BYTE                       userSize,
   CHAR *                     pUsername );

/*===========================================================================
METHOD:
   StartDataSession/StartDataSession2

DESCRIPTION:
   These functions activate a packet data session

PARAMETERS:
   pTechnology       [ I ] - (Optional) Technology bitmap
   pPrimaryDNS       [ I ] - (Optional) Primary DNS IPv4 address 
   pSecondaryDNS     [ I ] - (Optional) Secondary DNS IPv4 address 
   pPrimaryNBNS      [ I ] - (Optional) Primary NetBIOS NS IPv4 address
   pSecondaryNBNS    [ I ] - (Optional) Secondary NetBIOS NS IPv4 address
   pAPNName          [ I ] - (Optional) Access point name 
   pIPAddress        [ I ] - (Optional) Preferred assigned IPv4 address
   pAuthentication   [ I ] - (Optional) Authentication algorithm bitmap
   pUsername         [ I ] - (Optional) Username used during authentication
   pPassword         [ I ] - (Optional) Password used during authentication
   pSessionId        [ O ] - The assigned session ID

   pFailureReason    [ O ] - Upon call failure the failure reason provided
  
RETURN VALUE:
   ULONG - Return code
===========================================================================*/
QCIMPORT2K ULONG QCWWANAPI2K StartDataSession( 
   ULONG *                    pTechnology, 
   ULONG *                    pPrimaryDNS, 
   ULONG *                    pSecondaryDNS, 
   ULONG *                    pPrimaryNBNS, 
   ULONG *                    pSecondaryNBNS, 
   CHAR *                     pAPNName, 
   ULONG *                    pIPAddress, 
   ULONG *                    pAuthentication, 
   CHAR *                     pUsername, 
   CHAR *                     pPassword,
   ULONG *                    pSessionId );

QCIMPORT2K ULONG QCWWANAPI2K StartDataSession2( 
   ULONG *                    pTechnology, 
   ULONG *                    pPrimaryDNS, 
   ULONG *                    pSecondaryDNS, 
   ULONG *                    pPrimaryNBNS, 
   ULONG *                    pSecondaryNBNS, 
   CHAR *                     pAPNName, 
   ULONG *                    pIPAddress, 
   ULONG *                    pAuthentication, 
   CHAR *                     pUsername, 
   CHAR *                     pPassword,
   ULONG *                    pSessionId,
   ULONG *                    pFailureReason );

/*===========================================================================
METHOD:
   StopDataSession

DESCRIPTION:
   This function stops the current data session

PARAMETERS:
   sessionId   [ I ] - The ID of the session to terminate
  
RETURN VALUE:
   ULONG - Return code
===========================================================================*/
QCIMPORT2K ULONG QCWWANAPI2K StopDataSession( ULONG sessionId );

/*===========================================================================
METHOD:
   GetIPAddress

DESCRIPTION:
   This function returns the current packet data session IP address

PARAMETERS:
   pIPAddress        [ O ] - Assigned IPv4 address
  
RETURN VALUE:
   ULONG - Return code
===========================================================================*/
QCIMPORT2K ULONG QCWWANAPI2K GetIPAddress( ULONG * pIPAddress );

/*===========================================================================
METHOD:
   GetConnectionRate

DESCRIPTION:
   This function returns connection rate information for the packet data 
   connection

PARAMETERS:
   pCurrentChannelTXRate   [ O ] - Current channel TX rate (bps)
   pCurrentChannelRXRate   [ O ] - Current channel RX rate (bps)
   pMaxChannelTXRate       [ O ] - Maximum channel TX rate (bps)
   pMaxChannelRXRate       [ O ] - Maximum channel RX rate (bps)
  
RETURN VALUE:
   ULONG - Return code
===========================================================================*/
QCIMPORT2K ULONG QCWWANAPI2K GetConnectionRate(
   ULONG *                    pCurrentChannelTXRate,
   ULONG *                    pCurrentChannelRXRate,
   ULONG *                    pMaxChannelTXRate,
   ULONG *                    pMaxChannelRXRate );

/*===========================================================================
METHOD:
   GetPacketStatus

DESCRIPTION:
   This function returns the packet data transfer statistics since the start 
   of the current packet data session

PARAMETERS:
   pTXPacketSuccesses   [ O ] - Packets transmitted without error
   pRXPacketSuccesses   [ O ] - Packets received without error
   pTXPacketErrors      [ O ] - Outgoing packets with framing errors
   pRXPacketErrors      [ O ] - Incoming packets with framing errors
   pTXPacketOverflows   [ O ] - Packets dropped because TX buffer overflowed 
   pRXPacketOverflows   [ O ] - Packets dropped because RX buffer overflowed
  
RETURN VALUE:
   ULONG - Return code
===========================================================================*/
QCIMPORT2K ULONG QCWWANAPI2K GetPacketStatus(  
   ULONG *                    pTXPacketSuccesses, 
   ULONG *                    pRXPacketSuccesses, 
   ULONG *                    pTXPacketErrors, 
   ULONG *                    pRXPacketErrors, 
   ULONG *                    pTXPacketOverflows, 
   ULONG *                    pRXPacketOverflows );

/*===========================================================================
METHOD:
   GetByteTotals

DESCRIPTION:
   This function returns the RX/TX byte counts since the start of the 
   current packet data session

PARAMETERS:
   pTXTotalBytes  [ O ] - Bytes transmitted without error
   pRXTotalBytes  [ O ] - Bytes received without error
  
RETURN VALUE:
   ULONG - Return code
===========================================================================*/
QCIMPORT2K ULONG QCWWANAPI2K GetByteTotals(   
	ULONGLONG *	pTXTotalBytes, 
	ULONGLONG *	pRXTotalBytes );

/*===========================================================================
METHOD:
   SetMobileIP

DESCRIPTION:
   This function sets the current mobile IP setting

PARAMETERS:
   mode        [ I ] - Desired mobile IP setting
  
RETURN VALUE:
   ULONG - Return code
===========================================================================*/
QCIMPORT2K ULONG QCWWANAPI2K SetMobileIP( ULONG mode );

/*===========================================================================
METHOD:
   GetMobileIP

DESCRIPTION:
   This function gets the current mobile IP setting

PARAMETERS:
   pMode       [ O ] - Current mobile IP setting
  
RETURN VALUE:
   ULONG - Return code
===========================================================================*/
QCIMPORT2K ULONG QCWWANAPI2K GetMobileIP( ULONG * pMode );

/*===========================================================================
METHOD:
   SetActiveMobileIPProfile

DESCRIPTION:
   This function sets the active mobile IP profile index

PARAMETERS:
   pSPC        [ I ] - Six digit service programming code
   index       [ I ] - Desired mobile IP profile index
  
RETURN VALUE:
   ULONG - Return code
===========================================================================*/
QCIMPORT2K ULONG QCWWANAPI2K SetActiveMobileIPProfile( 
   CHAR *                     pSPC,
   BYTE                       index );

/*===========================================================================
METHOD:
   GetActiveMobileIPProfile

DESCRIPTION:
   This function gets the the active mobile IP profile index

PARAMETERS:
   pIndex      [ O ] - Active mobile IP profile index
  
RETURN VALUE:
   ULONG - Return code
===========================================================================*/
QCIMPORT2K ULONG QCWWANAPI2K GetActiveMobileIPProfile( BYTE * pIndex );

/*===========================================================================
METHOD:
   SetMobileIPProfile

DESCRIPTION:
   This function sets the specified mobile IP profile settings

PARAMETERS:
   pSPC           [ I ] - Six digit service programming code
   index          [ I ] - Mobile IP profile ID
   pEnabled       [ I ] - (Optional) Enable MIP profile?
   pAddress       [ I ] - (Optional) Home IPv4 address
   pPrimaryHA     [ I ] - (Optional) Primary home agent IPv4 address
   pSecondaryHA   [ I ] - (Optional) Secondary home agent IPv4 address
   pRevTunneling  [ I ] - (Optional) Enable reverse tunneling?
   pNAI           [ I ] - (Optional) Network access identifier string
   pHASPI         [ I ] - (Optional) HA security parameter index
   pAAASPI        [ I ] - (Optional) AAA security parameter index
   pMNHA          [ I ] - (Optional) MN-HA string
   pMNAAA         [ I ] - (Optional) MN-AAA string

RETURN VALUE:
   ULONG - Return code
===========================================================================*/
QCIMPORT2K ULONG QCWWANAPI2K SetMobileIPProfile( 
   CHAR *                     pSPC,
   BYTE                       index,
   BYTE *                     pEnabled,
   ULONG *                    pAddress,
   ULONG *                    pPrimaryHA,
   ULONG *                    pSecondaryHA,
   BYTE *                     pRevTunneling,
   CHAR *                     pNAI,
   ULONG *                    pHASPI,
   ULONG *                    pAAASPI,
   CHAR *                     pMNHA,
   CHAR *                     pMNAAA );

/*===========================================================================
METHOD:
   GetMobileIPProfile

DESCRIPTION:
   This function gets the specified mobile IP profile settings

PARAMETERS:
   index          [ I ] - Mobile IP profile ID
   pEnabled       [ O ] - Mobile IP profile enabled?
   pAddress       [ O ] - Home IPv4 address
   pPrimaryHA     [ O ] - Primary home agent IPv4 address
   pSecondaryHA   [ O ] - Secondary home agent IPv4 address
   pRevTunneling  [ O ] - Reverse tunneling enabled?
   naiSize        [ I ] - The maximum number of characters (including NULL 
                          terminator) that the NAI array can contain
   pNAI           [ O ] - Network access identifier string
   pHASPI         [ O ] - HA security parameter index
   pAAASPI        [ O ] - AAA security parameter index

RETURN VALUE:
   ULONG - Return code
===========================================================================*/
QCIMPORT2K ULONG QCWWANAPI2K GetMobileIPProfile( 
   BYTE                       index,
   BYTE *                     pEnabled,
   ULONG *                    pAddress,
   ULONG *                    pPrimaryHA,
   ULONG *                    pSecondaryHA,
   BYTE *                     pRevTunneling,
   BYTE                       naiSize,
   CHAR *                     pNAI,
   ULONG *                    pHASPI,
   ULONG *                    pAAASPI );

/*===========================================================================
METHOD:
   GetMobileIPProfile2

DESCRIPTION:
   This function gets the specified mobile IP profile settings

PARAMETERS:
   index          [ I ] - Mobile IP profile ID
   pEnabled       [ O ] - Mobile IP profile enabled?
   pAddress       [ O ] - Home IPv4 address
   pPrimaryHA     [ O ] - Primary home agent IPv4 address
   pSecondaryHA   [ O ] - Secondary home agent IPv4 address
   pRevTunneling  [ O ] - Reverse tunneling enabled?
   naiSize        [ I ] - The maximum number of characters (including NULL 
                          terminator) that the NAI array can contain
   pNAI           [ O ] - Network access identifier string
   pHASPI         [ O ] - HA security parameter index
   pAAASPI        [ O ] - AAA security parameter index
   pHAState       [ O ] - HA key state
   pAAAState      [ O ] - AAA key state

RETURN VALUE:
   ULONG - Return code
===========================================================================*/
QCIMPORT2K ULONG QCWWANAPI2K GetMobileIPProfile2( 
   BYTE                       index,
   BYTE *                     pEnabled,
   ULONG *                    pAddress,
   ULONG *                    pPrimaryHA,
   ULONG *                    pSecondaryHA,
   BYTE *                     pRevTunneling,
   BYTE                       naiSize,
   CHAR *                     pNAI,
   ULONG *                    pHASPI,
   ULONG *                    pAAASPI,
   ULONG *                    pHAState,
   ULONG *                    pAAAState );

/*===========================================================================
METHOD:
   SetMobileIPParameters

DESCRIPTION:
   This function sets the specified mobile IP parameters

PARAMETERS:
   pSPC              [ I ] - Six digit service programming code
   pMode             [ I ] - (Optional) Desired mobile IP setting
   pRetryLimit       [ I ] - (Optional) Retry attempt limit
   pRetryInterval    [ I ] - (Optional) Retry attempt interval
   pReRegPeriod      [ I ] - (Optional) Re-registration period
   pReRegTraffic     [ I ] - (Optional) Re-registration only with traffic?
   pHAAuthenticator  [ I ] - (Optional) MH-HA authenticator calculator?
   pHA2002bis        [ I ] - (Optional) MH-HA RFC 2002bis authentication?

RETURN VALUE:
   ULONG - Return code
===========================================================================*/
QCIMPORT2K ULONG QCWWANAPI2K SetMobileIPParameters( 
   CHAR *                     pSPC,
   ULONG *                    pMode,
   BYTE *                     pRetryLimit,
   BYTE *                     pRetryInterval,
   BYTE *                     pReRegPeriod,
   BYTE *                     pReRegTraffic,
   BYTE *                     pHAAuthenticator,
   BYTE *                     pHA2002bis );

/*===========================================================================
METHOD:
   GetMobileIPParameters

DESCRIPTION:
   This function gets the mobile IP parameters

PARAMETERS:
   pMode             [ O ] - Current mobile IP setting
   pRetryLimit       [ O ] - Retry attempt limit
   pRetryInterval    [ O ] - Retry attempt interval
   pReRegPeriod      [ O ] - Re-registration period
   pReRegTraffic     [ O ] - Re-registration only with traffic?
   pHAAuthenticator  [ O ] - MH-HA authenticator calculator?
   pHA2002bis        [ O ] - MH-HA RFC 2002bis authentication?

RETURN VALUE:
   ULONG - Return code
===========================================================================*/
QCIMPORT2K ULONG QCWWANAPI2K GetMobileIPParameters( 
   ULONG *                    pMode,
   BYTE *                     pRetryLimit,
   BYTE *                     pRetryInterval,
   BYTE *                     pReRegPeriod,
   BYTE *                     pReRegTraffic,
   BYTE *                     pHAAuthenticator,
   BYTE *                     pHA2002bis );

/*===========================================================================
METHOD:
   GetLastMobileIPError

DESCRIPTION:
   This function gets the last mobile IP error

PARAMETERS:
   pError      [ O ] - Last mobile IP error

RETURN VALUE:
   ULONG - Return code
===========================================================================*/
QCIMPORT2K ULONG QCWWANAPI2K GetLastMobileIPError( ULONG * pError );

/*===========================================================================
METHOD:
   GetANAAAAuthenticationStatus

DESCRIPTION:
   This function gets the AN-AAA authentication status

PARAMETERS:
   pStatus     [ O ] - AN-AAA authentication status

RETURN VALUE:
   ULONG - Return code
===========================================================================*/
QCIMPORT2K ULONG QCWWANAPI2K GetANAAAAuthenticationStatus( ULONG * pStatus );

/*===========================================================================
METHOD:
   GetSignalStrength

DESCRIPTION:
   This function gets the current signal strength (in dBm) as measured by 
   the device, the signal strength returned will be one of the currently 
   available technologies with preference CDMA 1xEV-DO, CDMA, AMPS, 
   WCDMA, GSM

PARAMETERS:
   pSignalStrength   [ O ] - Received signal strength (dBm)
   pRadioInterface   [ O ] - Radio interface technology 

RETURN VALUE:
   ULONG - Return code
===========================================================================*/
QCIMPORT2K ULONG QCWWANAPI2K GetSignalStrength( 
   INT8 *                     pSignalStrength, 
   ULONG *                    pRadioInterface );

/*===========================================================================
METHOD:
   GetSignalStrengths

DESCRIPTION:
   This function gets the current available signal strengths (in dBm) 
   as measured by the device

PARAMETERS:
   pArraySizes       [I/O] - Upon input the maximum number of elements 
                             that each array can contain can contain.  
                             Upon successful output the actual number 
                             of elements in each array
   pSignalStrengths  [ O ] - Received signal strength array (dBm)
   pRadioInterfaces  [ O ] - Radio interface technology array 

RETURN VALUE:
   ULONG - Return code
===========================================================================*/
QCIMPORT2K ULONG QCWWANAPI2K GetSignalStrengths( 
   ULONG *                    pArraySizes, 
   INT8 *                     pSignalStrengths, 
   ULONG *                    pRadioInterfaces );

/*===========================================================================
METHOD:
   GetRFInfo

DESCRIPTION:
   This function gets the current RF information

PARAMETERS:
   pInstanceSize  [I/O] - Upon input the maximum number of elements that the 
                          RF info instance array can contain.  Upon success
                          the actual number of elements in the RF info 
                          instance array
   pInstances     [ O ] - The RF info instance array 
  
RETURN VALUE:
   ULONG - Return code
===========================================================================*/
QCIMPORT2K ULONG QCWWANAPI2K GetRFInfo( 
   BYTE *                     pInstanceSize, 
   BYTE *                     pInstances );

/*===========================================================================
METHOD:
   PerformNetworkScan

DESCRIPTION:
   This function performs a scan for available networks

PARAMETERS:
   pInstanceSize  [I/O] - Upon input the maximum number of elements that the 
                          network info instance array can contain.  Upon 
                          success the actual number of elements in the
                          network info instance array. NOTE: The QMI message
						  returned from the modem contains a variable-length 
						  network name component but the caller must provide
						  a fixed-size array of 255 bytes to store the contents
						  of this variable-length component. The number of 
						  instances includes this array implicitly.
   pInstances     [ O ] - The network info instance array 
  
RETURN VALUE:
   ULONG - Return code
===========================================================================*/
QCIMPORT2K ULONG QCWWANAPI2K PerformNetworkScan( 
   BYTE *                     pInstanceSize, 
   BYTE *                     pInstances );

/*===========================================================================
METHOD:
   PerformNetworkRATScan

DESCRIPTION:
   This function performs a scan for available networks (includes RAT)

PARAMETERS:
   pInstanceSize  [I/O] - Upon input the maximum number of elements that the 
                          network info instance array can contain.  Upon 
                          success the actual number of elements in the
                          network info instance array. NOTE: The QMI message
                          returned from the modem contains a variable-length 
                          network name component but the caller must provide
                          a fixed-size array of 255 bytes to store the contents
                          of this variable-length component. The number of 
                          instances includes this array implicitly.
   pInstances     [ O ] - The network info instance array 
   pRATSize       [I/O] - Upon input the maximum number of elements that the 
                            RAT info instance array can contain.  Upon success 
                            the actual number of elements in the RAT info instance array
   pRATInstances  [ O ] - The RAT info instance array
  
RETURN VALUE:
   ULONG - Return code
===========================================================================*/
QCIMPORT2K ULONG QCWWANAPI2K PerformNetworkRATScan( 
   BYTE *                     pInstanceSize, 
   BYTE *                     pInstances, 
   BYTE *                     pRATSize, 
   BYTE *                     pRATInstances );

/*===========================================================================
METHOD:
   InitiateNetworkRegistration

DESCRIPTION:
   This function initiates a network registration

PARAMETERS:
   regType     [ I ] - Registration type 
   mcc         [ I ] - Mobile country code (ignored for auto registration)
   mnc         [ I ] - Mobile network code (ignored for auto registration)
   rat         [ I ] - Radio access type (ignored for auto registration)
  
RETURN VALUE:
   ULONG - Return code
===========================================================================*/
QCIMPORT2K ULONG QCWWANAPI2K InitiateNetworkRegistration( 
   ULONG                      regType,
   WORD                       mcc, 
   WORD                       mnc, 
   ULONG                      rat );

/*===========================================================================
METHOD:
   InitiateDomainAttach

DESCRIPTION:
   This function initiates a domain attach (or detach)

PARAMETERS:
   action      [ I ] - PS attach action (attach or detach)
  
RETURN VALUE:
   ULONG - Return code
===========================================================================*/
QCIMPORT2K ULONG QCWWANAPI2K InitiateDomainAttach( ULONG action );

/*===========================================================================
METHOD:
   GetServingNetwork

DESCRIPTION:
   Gets information regarding the system that currently provides service 
   to the device

PARAMETERS:
   pRegistrationState   [ O ] - Registration state
   pCSDomain            [ O ] - Circuit switch domain status
   pPSDomain            [ O ] - Packet switch domain status 
   pRAN                 [ O ] - Radio access network 
   pRadioIfacesSize     [I/O] - Upon input the maximum number of elements 
                                that the radio interfaces can contain.  Upon 
                                successful output the actual number of elements 
                                in the radio interface array
   pRadioIfaces         [ O ] - The radio interface array 
   pRoaming             [ O ] - Roaming indicator (0xFFFFFFFF - Unknown)
   pMCC                 [ O ] - Mobile country code (0xFFFF - Unknown)
   pMNC                 [ O ] - Mobile network code (0xFFFF - Unknown)
   nameSize             [ I ] - The maximum number of characters (including 
                                NULL terminator) that the network name array 
                                can contain
   pName                [ O ] - The network name or description represented 
                                as a NULL terminated string (empty string 
                                returned when unknown)
  
RETURN VALUE:
   ULONG - Return code
===========================================================================*/
QCIMPORT2K ULONG QCWWANAPI2K GetServingNetwork( 
   ULONG *                    pRegistrationState, 
   ULONG *                    pCSDomain, 
   ULONG *                    pPSDomain, 
   ULONG *                    pRAN, 
   BYTE *                     pRadioIfacesSize, 
   BYTE *                     pRadioIfaces, 
   ULONG *                    pRoaming, 
   WORD *                     pMCC, 
   WORD *                     pMNC, 
   BYTE                       nameSize, 
   CHAR *                     pName );

/*===========================================================================
METHOD:
   SWIGetServingNetwork

DESCRIPTION:
   Gets information regarding the system that currently provides service 
   to the device

PARAMETERS:
   pRegistrationState   [ O ] - Registration state
   pCSDomain            [ O ] - Circuit switch domain status
   pPSDomain            [ O ] - Packet switch domain status 
   pRAN                 [ O ] - Radio access network 
   pRadioIfacesSize     [I/O] - Upon input the maximum number of elements 
                                that the radio interfaces can contain.  Upon 
                                successful output the actual number of elements 
                                in the radio interface array
   pRadioIfaces         [ O ] - The radio interface array 
   pRoaming             [ O ] - Roaming indicator (0xFFFFFFFF - Unknown)
   pMCC                 [ O ] - Mobile country code (0xFFFF - Unknown)
   pMNC                 [ O ] - Mobile network code (0xFFFF - Unknown)
   nameSize             [ I ] - The maximum number of characters (including 
                                NULL terminator) that the network name array 
                                can contain
   pName                [ O ] - The network name or description represented 
                                as a NULL terminated string (empty string 
                                returned when unknown)
   pSID                 [ O ] - CDMA System ID
   pNID                 [ O ] - CDMA Network ID
  
RETURN VALUE:
   ULONG - Return code
===========================================================================*/
QCIMPORT2K ULONG QCWWANAPI2K SwiGetServingNetwork( 
   ULONG *                    pRegistrationState, 
   ULONG *                    pCSDomain, 
   ULONG *                    pPSDomain, 
   ULONG *                    pRAN, 
   BYTE *                     pRadioIfacesSize, 
   BYTE *                     pRadioIfaces, 
   ULONG *                    pRoaming, 
   WORD *                     pMCC, 
   WORD *                     pMNC, 
   BYTE                       nameSize, 
   CHAR *                     pName, 
   WORD*                      pSID,
   WORD*                      pNID);

/*===========================================================================
METHOD:
   GetServingNetworkCapabilities

DESCRIPTION:
   Gets information regarding the data capabilities of the system that 
   currently provides service to the device

PARAMETERS:
   pDataCapsSize  [I/O] - Upon input the maximum number of elements that the 
                          data capabilities array can contain.  Upon success
                          the actual number of elements in the data 
                          capabilities array
   pDataCaps      [ O ] - The data capabilities array 
  
RETURN VALUE:
   ULONG - Return code
===========================================================================*/
QCIMPORT2K ULONG QCWWANAPI2K GetServingNetworkCapabilities( 
   BYTE *                     pDataCapsSize, 
   BYTE *                     pDataCaps );

/*===========================================================================
METHOD:
   GetDataBearerTechnology

DESCRIPTION:
   This function retrieves the current data bearer technology (only
   valid when connected)

PARAMETERS:
   pDataCaps      [ O ] - The data bearer technology
  
RETURN VALUE:
   ULONG - Return code
===========================================================================*/
QCIMPORT2K ULONG QCWWANAPI2K GetDataBearerTechnology( ULONG * pDataBearer );

/*===========================================================================
METHOD:
   GetHomeNetwork

DESCRIPTION:
   This function retrieves information about the home network of the device

PARAMETERS:
   pMCC        [ O ] - Mobile country code
   pMNC        [ O ] - Mobile network code
   nameSize    [ I ] - The maximum number of characters (including NULL 
                       terminator) that the network name array can contain
   pName       [ O ] - The network name or description represented as a NULL 
                       terminated string (empty string returned when unknown)
   pSID        [ O ] - Home network system ID (0xFFFF - Unknown)
   pNID        [ O ] - Home network ID (0xFFFF - Unknown)
  
RETURN VALUE:
   ULONG - Return code
===========================================================================*/
QCIMPORT2K ULONG QCWWANAPI2K GetHomeNetwork( 
   WORD *                     pMCC, 
   WORD *                     pMNC, 
   BYTE                       nameSize, 
   CHAR *                     pName, 
   WORD *                     pSID, 
   WORD *                     pNID );

/*===========================================================================
METHOD:
   SetNetworkPreference

DESCRIPTION:
   This function sets the network registration preference

PARAMETERS:
   technologyPref [ I ] - Technology preference bitmap
   duration       [ I ] - Duration of active preference
  
RETURN VALUE:
   ULONG - Return code
===========================================================================*/
QCIMPORT2K ULONG QCWWANAPI2K SetNetworkPreference( 
   ULONG                      technologyPref, 
   ULONG                      duration );

/*===========================================================================
METHOD:
   GetNetworkPreference

DESCRIPTION:
   This function returns the network registration preference

PARAMETERS:
   pTechnologyPref            [ O ] - Technology preference bitmap
   pDuration                  [ O ] - Duration of active preference
   pPersistentTechnologyPref  [ O ] - Persistent technology preference bitmap 
  
RETURN VALUE:
   ULONG - Return code
===========================================================================*/
QCIMPORT2K ULONG QCWWANAPI2K GetNetworkPreference( 
   ULONG *                    pTechnologyPref, 
   ULONG *                    pDuration, 
   ULONG *                    pPersistentTechnologyPref );

/*===========================================================================
METHOD:
   SetCDMANetworkParameters

DESCRIPTION:
   This function sets the desired CDMA network parameters

PARAMETERS:
   pSPC           [ I ] - Six digit service programming code
   pForceRev0     [ I ] - (Optional) Force CDMA 1x-EV-DO Rev. 0 mode?
   pCustomSCP     [ I ] - (Optional) Use a custom config for CDMA 1x-EV-DO SCP?
   pProtocol      [ I ] - (Optional) Protocol mask for custom SCP config
   pBroadcast     [ I ] - (Optional) Broadcast mask for custom SCP config
   pApplication   [ I ] - (Optional) Application mask for custom SCP config
   pRoaming       [ I ] - (Optional) Roaming preference
  
RETURN VALUE:
   ULONG - Return code
===========================================================================*/
QCIMPORT2K ULONG QCWWANAPI2K SetCDMANetworkParameters( 
   CHAR *                     pSPC,
   BYTE *                     pForceRev0,
   BYTE *                     pCustomSCP,
   ULONG *                    pProtocol,
   ULONG *                    pBroadcast,
   ULONG *                    pApplication,
   ULONG *                    pRoaming );

/*===========================================================================
METHOD:
   GetCDMANetworkParameters 

DESCRIPTION:
   This function gets the current CDMA network parameters

PARAMETERS:
   pSCI           [ O ] - Slot cycle index
   pSCM           [ O ] - Station class mark
   pRegHomeSID    [ O ] - Register on home SID?
   pRegForeignSID [ O ] - Register on foreign SID?
   pRegForeignNID [ O ] - Register on foreign NID?
   pForceRev0     [ O ] - Force CDMA 1x-EV-DO Rev. 0 mode?
   pCustomSCP     [ O ] - Use a custom config for CDMA 1x-EV-DO SCP?
   pProtocol      [ O ] - Protocol mask for custom SCP config
   pBroadcast     [ O ] - Broadcast mask for custom SCP config
   pApplication   [ O ] - Application mask for custom SCP config
   pRoaming       [ O ] - Roaming preference
  
RETURN VALUE:
   ULONG - Return code
===========================================================================*/
QCIMPORT2K ULONG QCWWANAPI2K GetCDMANetworkParameters( 
   BYTE *                     pSCI,
   BYTE *                     pSCM,
   BYTE *                     pRegHomeSID,
   BYTE *                     pRegForeignSID,
   BYTE *                     pRegForeignNID,
   BYTE *                     pForceRev0,
   BYTE *                     pCustomSCP,
   ULONG *                    pProtocol,
   ULONG *                    pBroadcast,
   ULONG *                    pApplication,
   ULONG *                    pRoaming );

/*===========================================================================
METHOD:
   GetACCOLC

DESCRIPTION:
   This function returns the Access Overload Class (ACCOLC) of the device

PARAMETERS:
   pACCOLC     [ O ] - The ACCOLC
  
RETURN VALUE:
   ULONG - Return code
===========================================================================*/
QCIMPORT2K ULONG QCWWANAPI2K GetACCOLC( BYTE * pACCOLC );

/*===========================================================================
METHOD:
   SetACCOLC

DESCRIPTION:
   This function sets the Access Overload Class (ACCOLC) of the device

PARAMETERS:
   pSPC        [ I ] - NULL terminated string representing the six digit 
                       service programming code
   accolc      [ I ] - The ACCOLC
  
RETURN VALUE:
   ULONG - Return code
===========================================================================*/
QCIMPORT2K ULONG QCWWANAPI2K SetACCOLC( 
   CHAR *                     pSPC,
   BYTE                       accolc );

/*===========================================================================
METHOD:
   GetDeviceCapabilities

DESCRIPTION:
   This function gets device capabilities

PARAMETERS:
   pMaxTxChannelRate       [ O ] - Maximum transmission rate (bps) 
   pMaxRxChannelRate       [ O ] - Maximum reception rate (bps)
   pDataServiceCapability  [ O ] - CS/PS data service capability
   pSimCapability          [ O ] - Device SIM support
   pRadioIfacesSize        [I/O] - Upon input the maximum number of elements 
                                   that the radio interfaces can contain.  
                                   Upon successful output the actual number 
                                   of elements in the radio interface array
   pRadioIfaces            [ O ] - The radio interface array
  
RETURN VALUE:
   ULONG - Return code
===========================================================================*/
QCIMPORT2K ULONG QCWWANAPI2K GetDeviceCapabilities( 
   ULONG *                    pMaxTXChannelRate, 
   ULONG *                    pMaxRXChannelRate, 
   ULONG *                    pDataServiceCapability, 
   ULONG *                    pSimCapability, 
   ULONG *                    pRadioIfacesSize, 
   BYTE *                     pRadioIfaces );

/*===========================================================================
METHOD:
   GetManufacturer

DESCRIPTION:
   This function returns the device manufacturer name

PARAMETERS:
   stringSize  [ I ] - The maximum number of characters (including NULL 
                       terminator) that the string array can contain
   pString     [ O ] - NULL terminated string
  
RETURN VALUE:
   ULONG - Return code
===========================================================================*/
QCIMPORT2K ULONG QCWWANAPI2K GetManufacturer( 
   BYTE                       stringSize, 
   CHAR *                     pString );

/*===========================================================================
METHOD:
   GetModelID

DESCRIPTION:
   This function returns the device model ID

PARAMETERS:
   stringSize  [ I ] - The maximum number of characters (including NULL 
                       terminator) that the string array can contain
   pString     [ O ] - NULL terminated string
  
RETURN VALUE:
   ULONG - Return code
===========================================================================*/
QCIMPORT2K ULONG QCWWANAPI2K GetModelID( 
   BYTE                       stringSize, 
   CHAR *                     pString );

/*===========================================================================
METHOD:
   GetFirmwareRevision

DESCRIPTION:
   This function returns the device firmware revision

PARAMETERS:
   stringSize  [ I ] - The maximum number of characters (including NULL 
                       terminator) that the string array can contain
   pString     [ O ] - NULL terminated string
  
RETURN VALUE:
   ULONG - Return code
===========================================================================*/
QCIMPORT2K ULONG QCWWANAPI2K GetFirmwareRevision( 
   BYTE                       stringSize, 
   CHAR *                     pString );

/*===========================================================================
METHOD:
   GetFirmwareRevisions

DESCRIPTION:
   This function returns the device firmware (AMSS, boot, and PRI)
   revisions

PARAMETERS:
   amssSize    [ I ] - The maximum number of characters (including NULL 
                       terminator) that the AMSS string array can contain
   pAMSSString [ O ] - NULL terminated AMSS revision string
   bootSize    [ I ] - The maximum number of characters (including NULL 
                       terminator) that the boot string array can contain
   pBootString [ O ] - NULL terminated boot code revision string  
   priSize     [ I ] - The maximum number of characters (including NULL 
                       terminator) that the PRI string array can contain
   pPRIString  [ O ] - NULL terminated PRI revision string  

RETURN VALUE:
   ULONG - Return code
===========================================================================*/
QCIMPORT2K ULONG QCWWANAPI2K GetFirmwareRevisions( 
   BYTE                       amssSize, 
   CHAR *                     pAMSSString,
   BYTE                       bootSize, 
   CHAR *                     pBootString,
   BYTE                       priSize, 
   CHAR *                     pPRIString );

/*===========================================================================
METHOD:
   GetFirmwareInfo

DESCRIPTION:
   Returns image information obtained from the current device firmware

PARAMETERS:
   pFirmwareID    [ O ] - Firmware ID obtained from the firmware image
   pTechnology    [ O ] - Technology (0xFFFFFFFF if unknown)
   pCarrier       [ O ] - Carrier (0xFFFFFFFF if unknown)
   pRegion        [ O ] - Region (0xFFFFFFFF if unknown)
   pGPSCapability [ O ] - GPS capability (0xFFFFFFFF if unknown)

RETURN VALUE:
   ULONG - Return code
===========================================================================*/
QCIMPORT2K ULONG QCWWANAPI2K GetFirmwareInfo( 
   ULONG *                    pFirmwareID,
   ULONG *                    pTechnology,
   ULONG *                    pCarrier,
   ULONG *                    pRegion,
   ULONG *                    pGPSCapability );

/*===========================================================================
METHOD:
   GetVoiceNumber

DESCRIPTION:
   This function returns the voice number in use by the device

PARAMETERS:
   voiceNumberSize   [ I ] - The maximum number of characters (including NULL 
                             terminator) that the voice number array can 
                             contain
   pVoiceNumber      [ O ] - Voice number (MDN or ISDN) string
   minSize           [ I ] - The maximum number of characters (including NULL 
                             terminator) that the MIN array can contain
   pMIN              [ O ] - MIN string (empty string returned when MIN is
                             not supported/programmed)

RETURN VALUE:
   ULONG - Return code
===========================================================================*/
QCIMPORT2K ULONG QCWWANAPI2K GetVoiceNumber( 
   BYTE                       voiceNumberSize, 
   CHAR *                     pVoiceNumber,
   BYTE                       minSize, 
   CHAR *                     pMIN );

/*===========================================================================
METHOD:
   GetIMSI

DESCRIPTION:
   This function returns the device IMSI

PARAMETERS:
   stringSize  [ I ] - The maximum number of characters (including NULL 
                       terminator) that the string array can contain
   pString     [ O ] - NULL terminated string
  
RETURN VALUE:
   ULONG - Return code
===========================================================================*/
QCIMPORT2K ULONG QCWWANAPI2K GetIMSI( 
   BYTE                       stringSize, 
   CHAR *                     pString );

/*===========================================================================
METHOD:
   GetSerialNumbers

DESCRIPTION:
   This command returns all serial numbers assigned to the device

PARAMETERS:
   esnSize     [ I ] - The maximum number of characters (including NULL 
                       terminator) that the ESN array can contain
   pESNString  [ O ] - ESN string (empty string returned when ESN is
                       not supported/programmed)
   imeiSize    [ I ] - The maximum number of characters (including NULL 
                       terminator) that the IMEI array can contain
   pIMEIString [ O ] - IMEI string (empty string returned when IMEI is
                       not supported/programmed)
   meidSize    [ I ] - The maximum number of characters (including NULL 
                       terminator) that the MEID array can contain
   pMEIDString [ O ] - MEID string (empty string returned when MEID is
                       not supported/programmed)

RETURN VALUE:
   ULONG - Return code
===========================================================================*/
QCIMPORT2K ULONG QCWWANAPI2K GetSerialNumbers( 
   BYTE                       esnSize, 
   CHAR *                     pESNString, 
   BYTE                       imeiSize, 
   CHAR *                     pIMEIString, 
   BYTE                       meidSize, 
   CHAR *                     pMEIDString );

/*===========================================================================
METHOD:
   SetLock(depreciated)

DESCRIPTION:
   This function sets the user lock state maintained by the device

PARAMETERS:
   state       [ I ] - Desired lock state
   pCurrentPIN [ I ] - Current four digit PIN string
  
RETURN VALUE:
   ULONG - Return code
===========================================================================*/
QCIMPORT2K ULONG QCWWANAPI2K SetLock( 
   ULONG                      state, 
   CHAR *                     pCurrentPIN );

/*===========================================================================
METHOD:
   QueryLock(depreciated)

DESCRIPTION:
   This function sets the user lock state maintained by the device

PARAMETERS:
   pState      [ O ] - Current lock state
  
RETURN VALUE:
   ULONG - Return code
===========================================================================*/
QCIMPORT2K ULONG QCWWANAPI2K QueryLock( ULONG * pState );

/*===========================================================================
METHOD:
   ChangeLockPIN(depreciated)

DESCRIPTION:
   This command sets the user lock code maintained by the device

PARAMETERS:
   pCurrentPIN [ O ] - Current four digit PIN string
   pDesiredPIN [ O ] - New four digit PIN string
  
RETURN VALUE:
   ULONG - Return code
===========================================================================*/
QCIMPORT2K ULONG QCWWANAPI2K ChangeLockPIN( 
   CHAR *                     pCurrentPIN, 
   CHAR *                     pDesiredPIN );

/*===========================================================================
METHOD:
   GetHardwareRevision

DESCRIPTION:
   This function returns the device hardware revision

PARAMETERS:
   stringSize  [ I ] - The maximum number of characters (including NULL 
                       terminator) that the string array can contain
   pString     [ O ] - NULL terminated string
  
RETURN VALUE:
   ULONG - Return code
===========================================================================*/
QCIMPORT2K ULONG QCWWANAPI2K GetHardwareRevision( 
   BYTE                       stringSize, 
   CHAR *                     pString );

/*===========================================================================
METHOD:
   GetPRLVersion

DESCRIPTION:
   This function returns the version of the active Preferred Roaming List 
   (PRL) in use by the device

PARAMETERS:
   pPRLVersion [ O ] - The PRL version number
  
RETURN VALUE:
   ULONG - Return code
===========================================================================*/
QCIMPORT2K ULONG QCWWANAPI2K GetPRLVersion( WORD * pPRLVersion );

/*===========================================================================
METHOD:
   GetERIFile

DESCRIPTION:
   This command returns the ERI file that is stored in EFS on the device

PARAMETERS:
   pFileSize   [I/O] - Upon input the maximum number of bytes that the file 
                       contents array can contain.  Upon successful output 
                       the actual number of bytes written to the file contents 
                       array
   pFile       [ O ] - The file contents
  
RETURN VALUE:
   ULONG - Return code
===========================================================================*/
QCIMPORT2K ULONG QCWWANAPI2K GetERIFile( 
   ULONG *                    pFileSize, 
   BYTE *                     pFile );

/*===========================================================================
METHOD:
   ActivateAutomatic

DESCRIPTION:
   This function requests the device to perform automatic service activation

PARAMETERS:
   pActivationCode   [ I ] - Activation code (maximum string length of 12) 
  
RETURN VALUE:
   ULONG - Return code
===========================================================================*/
QCIMPORT2K ULONG QCWWANAPI2K ActivateAutomatic( CHAR * pActivationCode );

/*===========================================================================
METHOD:
   ActivateManual

DESCRIPTION:
   This function requests the device perform manual service activation,
   after a successful request the device is then asked to reset

PARAMETERS:
   pSPC        [ I ] - NULL terminated string representing the six digit 
                       service programming code
   sid         [ I ] - System identification number
   pMDN        [ I ] - Mobile Directory Number string
   pMIN        [ I ] - Mobile Identification Number string
   prlSize     [ I ] - (Optional) Size of PRL file array
   pPRL        [ I ] - (Optional) The PRL file contents
   pMNHA       [ I ] - (Optional) MN-HA string
   pMNAAA      [ I ] - (Optional) MN-AAA string

RETURN VALUE:
   ULONG - Return code
===========================================================================*/
QCIMPORT2K ULONG QCWWANAPI2K ActivateManual( 
   CHAR *                     pSPC,
   WORD                       sid, 
   CHAR *                     pMDN,
   CHAR *                     pMIN, 
   ULONG                      prlSize, 
   BYTE *                     pPRL, 
   CHAR *                     pMNHA,
   CHAR *                     pMNAAA );

/*===========================================================================
METHOD:
   ResetToFactoryDefaults

DESCRIPTION:
   This function requests the device reset configuration to factory defaults,
   after a successful request the device is then asked to reset

PARAMETERS:
   pSPC        [ I ] - NULL terminated string representing the six digit 
                       service programming code

RETURN VALUE:
   ULONG - Return code
===========================================================================*/
QCIMPORT2K ULONG QCWWANAPI2K ResetToFactoryDefaults( CHAR * pSPC );

/*===========================================================================
METHOD:
   GetActivationState

DESCRIPTION:
   This function returns the device activation state

PARAMETERS:
   pActivationState  [ O ] - Service activation state
  
RETURN VALUE:
   ULONG - Return code
===========================================================================*/
QCIMPORT2K ULONG QCWWANAPI2K GetActivationState( ULONG * pActivationState );

/*===========================================================================
METHOD:
   SetPower

DESCRIPTION:
   This function sets the operating mode of the device

PARAMETERS:
   powerMode   [ I ] - Selected operating mode
  
RETURN VALUE:
   ULONG - Return code
===========================================================================*/
QCIMPORT2K ULONG QCWWANAPI2K SetPower( ULONG powerMode );

/*===========================================================================
METHOD:
   GetPower

DESCRIPTION:
   This function returns the operating mode of the device

PARAMETERS:
   pPowerMode  [ O ] - Current operating mode
  
RETURN VALUE:
   ULONG - Return code
===========================================================================*/
QCIMPORT2K ULONG QCWWANAPI2K GetPower( ULONG * pPowerMode );

/*===========================================================================
METHOD:
   GetOfflineReason

DESCRIPTION:
   This function returns the reason why the operating mode of the device
   is currently offline

PARAMETERS:
   pReasonMask [ O ] - Bitmask of offline reasons
   pbPlatform  [ O ] - Offline due to being platform retricted?
  
RETURN VALUE:
   ULONG - Return code
===========================================================================*/
QCIMPORT2K ULONG QCWWANAPI2K GetOfflineReason( 
   ULONG *                    pReasonMask,
   ULONG *                    pbPlatform );

/*===========================================================================
METHOD:
   GetNetworkTime

DESCRIPTION:
   This function returns the current time of the device

PARAMETERS:
   pTimeStamp  [ O ] - Count of 1.25ms that have elapsed from the start 
                       of GPS time (Jan 6, 1980)
   pTimeSource [ O ] - Source of the timestamp

RETURN VALUE:
   ULONG - Return code
===========================================================================*/
QCIMPORT2K ULONG QCWWANAPI2K GetNetworkTime( 
   ULONGLONG *                pTimeCount,  
   ULONG *                    pTimeSource );

/*===========================================================================
METHOD:
   ValidateSPC

DESCRIPTION:
   This function validates the service programming code

PARAMETERS:
   pSPC        [ I ] - Six digit service programming code

RETURN VALUE:
   ULONG - Return code
===========================================================================*/
QCIMPORT2K ULONG QCWWANAPI2K ValidateSPC( CHAR * pSPC );

/*===========================================================================
METHOD:
   DeleteSMS

DESCRIPTION:
   This function deletes one or more SMS messages from device memory

PARAMETERS:
   storageType    [ I ] - SMS message storage type
   pMessageIndex  [ I ] - (Optional) message index
   pMessageTag    [ I ] - (Optional) message tag
  
RETURN VALUE:
   ULONG - Return code
===========================================================================*/
QCIMPORT2K ULONG QCWWANAPI2K DeleteSMS( 
   ULONG                      storageType, 
   ULONG *                    pMessageIndex, 
   ULONG *                    pMessageTag );

/*===========================================================================
METHOD:
   GetSMSList

DESCRIPTION:
   This function returns the list of SMS messages stored on the device

PARAMETERS:
   storageType       [ I ] - SMS message storage type
   pRequestedTag     [ I ] - Message index
   pMessageListSize  [I/O] - Upon input the maximum number of elements that the 
                             message list array can contain.  Upon successful 
                             output the actual number of elements in the message 
                             list array
   pMessageList      [ O ] - The message list array
  
RETURN VALUE:
   ULONG - Return code
===========================================================================*/
QCIMPORT2K ULONG QCWWANAPI2K GetSMSList( 
   ULONG                      storageType, 
   ULONG *                    pRequestedTag,
   ULONG *                    pMessageListSize, 
   BYTE *                     pMessageList );

/*===========================================================================
METHOD:
   GetSMS

DESCRIPTION:
   This function returns an SMS message from device memory

PARAMETERS:
   storageType    [ I ] - SMS message storage type
   messageIndex   [ I ] - Message index
   pMessageTag    [ O ] - Message tag
   pMessageFormat [ O ] - Message format
   pMessageSize   [I/O] - Upon input the maximum number of bytes that can be 
                          written to the message array.  Upon successful 
                          output the actual number of bytes written to the 
                          message array
   pMessage       [ I ] - The message contents array
  
RETURN VALUE:
   ULONG - Return code
===========================================================================*/
QCIMPORT2K ULONG QCWWANAPI2K GetSMS( 
   ULONG                      storageType, 
   ULONG                      messageIndex, 
   ULONG *                    pMessageTag,
   ULONG *                    pMessageFormat,
   ULONG *                    pMessageSize, 
   BYTE *                     pMessage );

/*===========================================================================
METHOD:
   ModifySMSStatus

DESCRIPTION:
   This function modifies the status of an SMS message saved in storage on 
   the device

PARAMETERS:
   storageType    [ I ] - SMS message storage type
   messageIndex   [ I ] - Message index
   messageTag     [ I ] - Message tag
  
RETURN VALUE:
   ULONG - Return code
===========================================================================*/
QCIMPORT2K ULONG QCWWANAPI2K ModifySMSStatus( 
   ULONG                      storageType, 
   ULONG                      messageIndex, 
   ULONG                      messageTag );

/*===========================================================================
METHOD:
   SaveSMS

DESCRIPTION:
   This function saves an SMS message to device memory

PARAMETERS:
   storageType    [ I ] - SMS message storage type
   messageFormat  [ I ] - Message format   
   messageSize    [ I ] - The length of the message contents in bytes
   pMessage       [ I ] - The message contents
   pMessageIndex  [ O ] - The message index assigned by the device
  
RETURN VALUE:
   ULONG - Return code
===========================================================================*/
QCIMPORT2K ULONG QCWWANAPI2K SaveSMS(    
   ULONG                      storageType, 
   ULONG                      messageFormat, 
   ULONG                      messageSize, 
   BYTE *                     pMessage, 
   ULONG *                    pMessageIndex );

/*===========================================================================
METHOD:
   SendSMS

DESCRIPTION:
   This function sends an SMS message for immediate over the air transmission

PARAMETERS:
   messageFormat        [ I ] - Message format   
   messageSize          [ I ] - The length of the message contents in bytes
   pMessage             [ I ] - The message contents
   pMessageFailureCode  [ O ] - When the function fails due to an error sending
                                the message this parameter may contain the 
                                message failure cause code (see 3GPP2 N.S0005 
                                Section 6.5.2.125).  If the cause code is not
                                provided then the value will be 0xFFFFFFFF
  
RETURN VALUE:
   ULONG - Return code
===========================================================================*/
QCIMPORT2K ULONG QCWWANAPI2K SendSMS(    
   ULONG                      messageFormat, 
   ULONG                      messageSize, 
   BYTE *                     pMessage,
   BYTE						  linkTimer,
   ULONG *                    pMessageFailureCode );

/*===========================================================================
METHOD:
   GetSMSCAddress

DESCRIPTION:
   This function returns the SMS center address

PARAMETERS:
   addressSize    [ I ] - The maximum number of characters (including NULL 
                          terminator) that the SMS center address array 
                          can contain
   pSMSCAddress   [ 0 ] - The SMS center address represented as a NULL 
                          terminated string
   typeSize       [ I ] - The maximum number of characters (including NULL 
                          terminator) that the SMS center address type array
                          can contain
   pSMSCType      [ 0 ] - The SMS center address type represented as a NULL 
                          terminated string
  
RETURN VALUE:
   ULONG - Return code
===========================================================================*/
QCIMPORT2K ULONG QCWWANAPI2K GetSMSCAddress( 
   BYTE                       addressSize,
   CHAR *                     pSMSCAddress,
   BYTE                       typeSize,
   CHAR *                     pSMSCType );

/*===========================================================================
METHOD:
   SetSMSCAddress

DESCRIPTION:
   This function sets the SMS center address

PARAMETERS:
   pSMSCAddress   [ I ] - The SMS center address represented as a NULL 
                          terminated string 
   pSMSCType      [ I ] - The SMS center address type represented as a NULL 
                          terminated string (optional)

RETURN VALUE:
   ULONG - Return code
===========================================================================*/
QCIMPORT2K ULONG QCWWANAPI2K SetSMSCAddress( 
   CHAR *                     pSMSCAddress, 
   CHAR *                     pSMSCType );

/*===========================================================================
METHOD:
   DMSUIMSetPINProtection

DESCRIPTION:
   This function enables or disables protection of UIM contents by a 
   given PIN

PARAMETERS:
   id                   [ I ] - PIN ID (1/2)
   bEnable              [ I ] - Enable/disable PIN protection (0 = disable)?
   pValue               [ I ] - PIN value of the PIN to be enabled/disabled
   pVerifyRetriesLeft   [ O ] - Upon operational failure this will indicate 
                                the number of retries left, after which the 
                                PIN will be blocked (0xFFFFFFFF = unknown)
   pUnblockRetriesLeft  [ O ] - Upon operational failure this will indicate 
                                the number of unblock retries left, after 
                                which the PIN will be permanently blocked, 
                                i.e. UIM is unusable (0xFFFFFFFF = unknown)
 
RETURN VALUE:
   ULONG - Return code
===========================================================================*/
/*
QCIMPORT2K ULONG QCWWANAPI2K DMSUIMSetPINProtection( 
   ULONG                      id, 
   ULONG                      bEnable,
   CHAR *                     pValue,
   ULONG *                    pVerifyRetriesLeft,
   ULONG *                    pUnblockRetriesLeft );*/

/*===========================================================================
METHOD:
   DMSUIMVerifyPIN

DESCRIPTION:
   This function verifies the PIN before accessing the UIM contents

PARAMETERS:
   id                   [ I ] - PIN ID (1/2)
   pValue               [ I ] - PIN value of the PIN to verify
   pVerifyRetriesLeft   [ O ] - Upon operational failure this will indicate 
                                the number of retries left, after which the 
                                PIN will be blocked (0xFFFFFFFF = unknown)
   pUnblockRetriesLeft  [ O ] - Upon operational failure this will indicate 
                                the number of unblock retries left, after 
                                which the PIN will be permanently blocked, 
                                i.e. UIM is unusable (0xFFFFFFFF = unknown)
 
RETURN VALUE:
   ULONG - Return code
===========================================================================*/
/*
QCIMPORT2K ULONG QCWWANAPI2K DMSUIMVerifyPIN( 
   ULONG                      id, 
   CHAR *                     pValue,
   ULONG *                    pVerifyRetriesLeft,
   ULONG *                    pUnblockRetriesLeft );
*/
/*===========================================================================
METHOD:
   DMSUIMUnblockPIN

DESCRIPTION:
   This function unblocks a blocked PIN

PARAMETERS:
   id                   [ I ] - PIN ID (1/2)
   pPUKValue            [ I ] - PUK value of the PIN to unblock
   pNewValue            [ I ] - New PIN value of the PIN to unblock
   pVerifyRetriesLeft   [ O ] - Upon operational failure this will indicate 
                                the number of retries left, after which the 
                                PIN will be blocked (0xFFFFFFFF = unknown)
   pUnblockRetriesLeft  [ O ] - Upon operational failure this will indicate 
                                the number of unblock retries left, after 
                                which the PIN will be permanently blocked, 
                                i.e. UIM is unusable (0xFFFFFFFF = unknown)
 
RETURN VALUE:
   ULONG - Return code
===========================================================================*/
/*
QCIMPORT2K ULONG QCWWANAPI2K DMSUIMUnblockPIN( 
   ULONG                      id, 
   CHAR *                     pPUKValue,
   CHAR *                     pNewValue,
   ULONG *                    pVerifyRetriesLeft,
   ULONG *                    pUnblockRetriesLeft );
   */

/*===========================================================================
METHOD:
   DMSUIMChangePIN

DESCRIPTION:
   This function change the PIN value

PARAMETERS:
   id                   [ I ] - PIN ID (1/2)
   pOldValue            [ I ] - Old PIN value of the PIN to change
   pNewValue            [ I ] - New PIN value of the PIN to change
   pVerifyRetriesLeft   [ O ] - Upon operational failure this will indicate 
                                the number of retries left, after which the 
                                PIN will be blocked (0xFFFFFFFF = unknown)
   pUnblockRetriesLeft  [ O ] - Upon operational failure this will indicate 
                                the number of unblock retries left, after 
                                which the PIN will be permanently blocked, 
                                i.e. UIM is unusable (0xFFFFFFFF = unknown)
 
RETURN VALUE:
   ULONG - Return code
===========================================================================*/
/*
QCIMPORT2K ULONG QCWWANAPI2K DMSUIMChangePIN( 
   ULONG                      id, 
   CHAR *                     pOldValue,
   CHAR *                     pNewValue,
   ULONG *                    pVerifyRetriesLeft,
   ULONG *                    pUnblockRetriesLeft );
*/
/*===========================================================================
METHOD:
   DMSUIMGetPINStatus

DESCRIPTION:
   This function returns the status of the pin

PARAMETERS:
   id                   [ I ] - PIN ID (1/2)
   pStatus              [ O ] - PIN status (0xFFFFFFFF = unknown)
   pVerifyRetriesLeft   [ O ] - The number of retries left, after which the 
                                PIN will be blocked (0xFFFFFFFF = unknown)
   pUnblockRetriesLeft  [ O ] - The number of unblock retries left, after 
                                which the PIN will be permanently blocked, 
                                i.e. UIM is unusable (0xFFFFFFFF = unknown)
 
RETURN VALUE:
   ULONG - Return code
===========================================================================*/
/*
QCIMPORT2K ULONG QCWWANAPI2K DMSUIMGetPINStatus( 
   ULONG                      id, 
   ULONG *                    pStatus,
   ULONG *                    pVerifyRetriesLeft,
   ULONG *                    pUnblockRetriesLeft );
*/
/*===========================================================================
METHOD:
   DMSUIMGetICCID

DESCRIPTION:
   This function returns the UIM ICCID

PARAMETERS:
   stringSize  [ I ] - The maximum number of characters (including NULL 
                       terminator) that the string array can contain
   pString     [ O ] - NULL terminated string
  
RETURN VALUE:
   ULONG - Return code
===========================================================================*/
QCIMPORT2K ULONG QCWWANAPI2K DMSUIMGetICCID( 
   BYTE                       stringSize, 
   CHAR *                     pString );

/*===========================================================================
METHOD:
   DMSUIMGetControlKeyStatus

DESCRIPTION:
   This function returns the status of the specified facility control key

PARAMETERS:
   id                   [ I ] - Facility ID
   pStatus              [ O ] - Control key status
   pVerifyRetriesLeft   [ O ] - The number of retries left, after which the 
                                control key will be blocked 
   pUnblockRetriesLeft  [ O ] - The number of unblock retries left, after 
                                which the control key  will be permanently 
                                blocked 
 
RETURN VALUE:
   ULONG - Return code
===========================================================================*/
QCIMPORT2K ULONG QCWWANAPI2K DMSUIMGetControlKeyStatus( 
   ULONG                      id, 
   ULONG *                    pStatus,
   ULONG *                    pVerifyRetriesLeft,
   ULONG *                    pUnblockRetriesLeft );

/*===========================================================================
METHOD:
   DMSUIMSetControlKeyProtection

DESCRIPTION:
   This function changes the specified facility control key

PARAMETERS:
   id                   [ I ] - Facility ID
   status               [ I ] - Control key status
   pValue               [ I ] - Control key de-personalization string
   pVerifyRetriesLeft   [ O ] - Upon operational failure this will indicate 
                                the number of retries left, after which the 
                                control key will be blocked 
                                (0xFFFFFFFF = unknown)
RETURN VALUE:
   ULONG - Return code
===========================================================================*/
QCIMPORT2K ULONG QCWWANAPI2K DMSUIMSetControlKeyProtection( 
   ULONG                      id, 
   ULONG                      status,
   CHAR *                     pValue,
   ULONG *                    pVerifyRetriesLeft );

/*===========================================================================
METHOD:
   DMSUIMUnblockControlKey

DESCRIPTION:
   This function unblocks the specified facility control key

PARAMETERS:
   id                   [ I ] - Facility ID
   pValue               [ I ] - Control key de-personalization string
   pUnblockRetriesLeft  [ O ] - The number of unblock retries left, after 
                                which the control key  will be permanently 
                                blocked 
                                (0xFFFFFFFF = unknown)
RETURN VALUE:
   ULONG - Return code
===========================================================================*/
QCIMPORT2K ULONG QCWWANAPI2K DMSUIMUnblockControlKey( 
   ULONG                      id, 
   CHAR *                     pValue,
   ULONG *                    pUnblockRetriesLeft );

/*===========================================================================
METHOD:
   GetPDSState

DESCRIPTION:
   This function returns the current PDS state

PARAMETERS:
   pEnabled    [ O ] - Current PDS state (0 = disabled)
   pTracking   [ O ] - Current PDS tracking session state


RETURN VALUE:
   ULONG - Return code
===========================================================================*/
QCIMPORT2K ULONG QCWWANAPI2K GetPDSState( 
   ULONG *                    pEnabled,
   ULONG *                    pTracking );

/*===========================================================================
METHOD:
   SetPDSState

DESCRIPTION:
   This function sets the PDS state

PARAMETERS:
   enable      [ I ] - Desired PDS state (0 = disable)
  
RETURN VALUE:
   ULONG - Return code
===========================================================================*/
QCIMPORT2K ULONG QCWWANAPI2K SetPDSState( ULONG enable );

/*===========================================================================
METHOD:
   StartPDSTrackingSession (Deprecated)

DESCRIPTION:
   This function starts a PDS tracking session

   NOTE: Only one tracking session can be active at any given time

PARAMETERS:
   fixInterval [ I ] - Time in milliseconds between fixes
  
RETURN VALUE:
   ULONG - Return code
===========================================================================*/
QCIMPORT2K ULONG QCWWANAPI2K StartPDSTrackingSession( ULONG fixInterval );

/*===========================================================================
METHOD:
   StopPDSTrackingSession (Deprecated)

DESCRIPTION:
   This function stops a PDS tracking session
  
RETURN VALUE:
   ULONG - Return code
===========================================================================*/
QCIMPORT2K ULONG QCWWANAPI2K StopPDSTrackingSession();

/*===========================================================================
METHOD:
   PDSInjectTimeReference

DESCRIPTION:
   This function injects a system time into the PDS engine

PARAMETERS:
   sysTime              [ I ] - System time
   sysDiscontinuities   [ I ] - Number of system time discontinuities
  
RETURN VALUE:
   ULONG - Return code
===========================================================================*/
QCIMPORT2K ULONG QCWWANAPI2K PDSInjectTimeReference( 
   ULONGLONG                  systemTime,
   USHORT                     systemDiscontinuities );

/*===========================================================================
METHOD:
   GetPDSDefaults

DESCRIPTION:
   This function returns the default tracking session configuration

PARAMETERS:
   pOperation  [ O ] - Current session operating mode 
   pTimeout    [ O ] - Maximum amount of time (seconds) to work on each fix
   pInterval   [ O ] - Interval (milliseconds) between fix requests
   pAccuracy   [ O ] - Current accuracy threshold (meters)

RETURN VALUE:
   ULONG - Return code
===========================================================================*/
QCIMPORT2K ULONG QCWWANAPI2K GetPDSDefaults( 
   ULONG *                    pOperation,
   BYTE *                     pTimeout,
   ULONG *                    pInterval,
   ULONG *                    pAccuracy );

/*===========================================================================
METHOD:
   SetPDSDefaults

DESCRIPTION:
   This function sets the default tracking session configuration

PARAMETERS:
   operation   [ I ] - Desired session operating mode 
   timeout     [ I ] - Maximum amount of time (seconds) to work on each fix
   interval    [ I ] - Interval (milliseconds) between fix requests
   accuracy    [ I ] - Desired accuracy threshold (meters)

RETURN VALUE:
   ULONG - Return code
===========================================================================*/
QCIMPORT2K ULONG QCWWANAPI2K SetPDSDefaults( 
   ULONG                      operation,
   BYTE                       timeout,
   ULONG                      interval,
   ULONG                      accuracy );

/*===========================================================================
METHOD:
   GetXTRAAutomaticDownload

DESCRIPTION:
   This function returns the XTRA automatic download configuration

PARAMETERS:
   pbEnabled   [ O ] - Automatic download enabled?
   pInterval   [ O ] - Interval (hours) between XTRA downloads

RETURN VALUE:
   ULONG - Return code
===========================================================================*/
QCIMPORT2K ULONG QCWWANAPI2K GetXTRAAutomaticDownload( 
   ULONG *                    pbEnabled,
   USHORT *                   pInterval );

/*===========================================================================
METHOD:
   SetXTRAAutomaticDownload

DESCRIPTION:
   This function sets the XTRA automatic download configuration

PARAMETERS:
   bEnabled    [ I ] - Automatic download enabled?
   interval    [ I ] - Interval (hours) between XTRA downloads

RETURN VALUE:
   ULONG - Return code
===========================================================================*/
QCIMPORT2K ULONG QCWWANAPI2K SetXTRAAutomaticDownload( 
   ULONG                      bEnabled,
   USHORT                     interval );

/*===========================================================================
METHOD:
   GetXTRANetwork

DESCRIPTION:
   This function returns the XTRA WWAN network preference

PARAMETERS:
   pPreference [ O ] - XTRA WWAN network preference

RETURN VALUE:
   ULONG - Return code
===========================================================================*/
QCIMPORT2K ULONG QCWWANAPI2K GetXTRANetwork( ULONG * pPreference );

/*===========================================================================
METHOD:
   SetXTRANetwork

DESCRIPTION:
   This function sets the XTRA WWAN network preference

PARAMETERS:
   preference  [ I ] - XTRA WWAN network preference

RETURN VALUE:
   ULONG - Return code
===========================================================================*/
QCIMPORT2K ULONG QCWWANAPI2K SetXTRANetwork( ULONG preference );

/*===========================================================================
METHOD:
   GetXTRAValidity

DESCRIPTION:
   This function returns the XTRA database validity period

PARAMETERS:
   pGPSWeek       [ O ] - Starting GPS week of validity period
   pGPSWeekOffset [ O ] - Starting GPS week offset (minutes) of validity period
   pDuration      [ O ] - Length of validity period (hours)

RETURN VALUE:
   ULONG - Return code
===========================================================================*/
QCIMPORT2K ULONG QCWWANAPI2K GetXTRAValidity(
   USHORT *                   pGPSWeek,
   USHORT *                   pGPSWeekOffset, 
   USHORT *                   pDuration );

/*===========================================================================
METHOD:
   ForceXTRADownload

DESCRIPTION:
   This function forces the XTRA database to be downloaded to the device

RETURN VALUE:
   ULONG - Return code
===========================================================================*/
QCIMPORT2K ULONG QCWWANAPI2K ForceXTRADownload();

/*===========================================================================
METHOD:
   GetAGPSConfig

DESCRIPTION:
   This function returns the PDS AGPS configuration

PARAMETERS:
   pServerAddress [ O ] - IPv4 address of AGPS server
   pServerPort    [ O ] - Port number of AGPS server

RETURN VALUE:
   ULONG - Return code
===========================================================================*/
QCIMPORT2K ULONG QCWWANAPI2K GetAGPSConfig( 
   ULONG *                    pServerAddress,
   ULONG *                    pServerPort );

/*===========================================================================
METHOD:
   SetAGPSConfig

DESCRIPTION:
   This function sets the PDS AGPS configuration

PARAMETERS:
   serverAddress [ I ] - IPv4 address of AGPS server
   serverPort    [ I ] - Port number of AGPS server

RETURN VALUE:
   ULONG - Return code
===========================================================================*/
QCIMPORT2K ULONG QCWWANAPI2K SetAGPSConfig( 
   ULONG                      serverAddress,
   ULONG                      serverPort );

/*===========================================================================
METHOD:
   GetServiceAutomaticTracking

DESCRIPTION:
   This function returns the automatic tracking state for the service

PARAMETERS:
   pbAuto      [ O ] - Automatic tracking session started for service?

RETURN VALUE:
   ULONG - Return code
===========================================================================*/
QCIMPORT2K ULONG QCWWANAPI2K GetServiceAutomaticTracking( ULONG * pbAuto );

/*===========================================================================
METHOD:
   SetServiceAutomaticTracking

DESCRIPTION:
   This function sets the automatic tracking state for the service

PARAMETERS:
   pbAuto      [ I ] - Start automatic tracking session for service?

RETURN VALUE:
   ULONG - Return code
===========================================================================*/
QCIMPORT2K ULONG QCWWANAPI2K SetServiceAutomaticTracking( ULONG bAuto );

/*===========================================================================
METHOD:
   GetPortAutomaticTracking

DESCRIPTION:
   This function returns the automatic tracking configuration for the NMEA
   COM port

PARAMETERS:
   pbAuto      [ O ] - Automatic tracking enabled for NMEA COM port?

RETURN VALUE:
   ULONG - Return code
===========================================================================*/
QCIMPORT2K ULONG QCWWANAPI2K GetPortAutomaticTracking( ULONG * pbAuto );

/*===========================================================================
METHOD:
   SetPortAutomaticTracking

DESCRIPTION:
   This function sets the automatic tracking configuration for the NMEA
   COM port

PARAMETERS:
   pbAuto      [ I ] - Enable automatic tracking for NMEA COM port?

RETURN VALUE:
   ULONG - Return code
===========================================================================*/
QCIMPORT2K ULONG QCWWANAPI2K SetPortAutomaticTracking( ULONG bAuto );

/*===========================================================================
METHOD:
   ResetPDSData

DESCRIPTION:
   This function resets the specified PDS data

PARAMETERS:
   pGPSDataMask   [ I ] - Bitmask of GPS data to clear (optional)
   pCellDataMask  [ I ] - Bitmask of cell data to clear (optional)

RETURN VALUE:
   ULONG - Return code
===========================================================================*/
QCIMPORT2K ULONG QCWWANAPI2K ResetPDSData( 
   ULONG *                    pGPSDataMask,
   ULONG *                    pCellDataMask );

/*===========================================================================
METHOD:
   CATSendTerminalResponse

DESCRIPTION:
   This function sends the terminal response to the device

PARAMETERS:
   refID       [ I ] - UIM reference ID (from CAT event)
   dataLen     [ I ] - Terminal response data length
   pData       [ I ] - Terminal response data

RETURN VALUE:
   ULONG - Return code
===========================================================================*/
QCIMPORT2K ULONG QCWWANAPI2K CATSendTerminalResponse( 
   ULONG                      refID,
   ULONG                      dataLen,
   BYTE *                     pData );

/*===========================================================================
METHOD:
   CATSendEnvelopeCommand

DESCRIPTION:
   This function sends the envelope command to the device

PARAMETERS:
   cmdID       [ I ] - Envelope command ID
   dataLen     [ I ] - Envelope command data length
   pData       [ I ] - Envelope command data

RETURN VALUE:
   ULONG - Return code
===========================================================================*/
QCIMPORT2K ULONG QCWWANAPI2K CATSendEnvelopeCommand( 
   ULONG                      cmdID,
   ULONG                      dataLen,
   BYTE *                     pData );

/*===========================================================================
METHOD:
   GetSMSWake

DESCRIPTION:
   This function queries the state of the SMS wake functionality

PARAMETERS:
   pbEnabled   [ O ] - SMS wake functionality enabled?
   pWakeMask   [ O ] - SMS wake mask (only relevant when enabled)

RETURN VALUE:
   ULONG - Return code
===========================================================================*/
QCIMPORT2K ULONG QCWWANAPI2K GetSMSWake( 
   ULONG *                    pbEnabled,
   ULONG *                    pWakeMask );

/*===========================================================================
METHOD:
   SetSMSWake

DESCRIPTION:
   This function enables/disables the SMS wake functionality

PARAMETERS:
   bEnable     [ I ] - Enable SMS wake functionality?
   wakeMask    [ I ] - SMS wake mask (only relevant when enabling)

RETURN VALUE:
   ULONG - Return code
===========================================================================*/
QCIMPORT2K ULONG QCWWANAPI2K SetSMSWake( 
   ULONG                      bEnable,
   ULONG                      wakeMask );

/*===========================================================================
METHOD:
   OMADMStartSession

DESCRIPTION:
   This function starts an OMA-DM session

PARAMETERS:
   sessionType [ I ] - Type of session to initiate

RETURN VALUE:
   ULONG - Return code
===========================================================================*/
QCIMPORT2K ULONG QCWWANAPI2K OMADMStartSession( ULONG sessionType );

/*===========================================================================
METHOD:
   OMADMCancelSession

DESCRIPTION:
   This function cancels an ongoing OMA-DM session

RETURN VALUE:
   ULONG - Return code
===========================================================================*/
QCIMPORT2K ULONG QCWWANAPI2K OMADMCancelSession();

/*===========================================================================
METHOD:
   OMADMGetSessionInfo

DESCRIPTION:
   This function returns information related to the current (or previous
   if no session is active) OMA-DM session

PARAMETERS:
   pSessionState  [ O ] - State of session
   pSessionType   [ O ] - Type of session
   pFailureReason [ O ] - Session failure reason (when state indicates failure)
   pRetryCount    [ O ] - Session retry count (when state indicates retrying)
   pSessionPause  [ O ] - Session pause timer (when state indicates retrying)
   pTimeRemaining [ O ] - Pause time remaining (when state indicates retrying)

RETURN VALUE:
   ULONG - Return code
===========================================================================*/
QCIMPORT2K ULONG QCWWANAPI2K OMADMGetSessionInfo( 
   ULONG *                    pSessionState,
   ULONG *                    pSessionType,
   ULONG *                    pFailureReason,
   BYTE *                     pRetryCount,
   WORD *                     pSessionPause,
   WORD *                     pTimeRemaining );

/*===========================================================================
METHOD:
   OMADMGetPendingNIA

DESCRIPTION:
   This function returns information about the pending network initiated
   alert

PARAMETERS:
   pSessionType   [ O ] - Type of session
   pSessionID     [ O ] - Unique session ID

RETURN VALUE:
   ULONG - Return code
===========================================================================*/
QCIMPORT2K ULONG QCWWANAPI2K OMADMGetPendingNIA( 
   ULONG *                    pSessionType,
   USHORT *                   pSessionID );

/*===========================================================================
METHOD:
   OMADMSendSelection

DESCRIPTION:
   This function sends the specified OMA-DM selection for the current 
   network initiated session

PARAMETERS:
   selection   [ I ] - Selection
   sessionID   [ I ] - Unique session ID

RETURN VALUE:
   ULONG - Return code
===========================================================================*/
QCIMPORT2K ULONG QCWWANAPI2K OMADMSendSelection( 
   ULONG                      selection,
   USHORT                     sessionID );

/*===========================================================================
METHOD:
   OMADMGetFeatureSettings

DESCRIPTION:
   This function returns the OMA-DM feature settings

PARAMETERS:
   pbProvisioning [ O ] - Device provisioning service update enabled
   pbPRLUpdate    [ O ] - PRL service update enabled

RETURN VALUE:
   ULONG - Return code
===========================================================================*/
QCIMPORT2K ULONG QCWWANAPI2K OMADMGetFeatureSettings( 
   ULONG *                    pbProvisioning,
   ULONG *                    pbPRLUpdate );

/*===========================================================================
METHOD:
   OMADMSetProvisioningFeature

DESCRIPTION:
   This function sets the OMA-DM device provisioning service 
   update feature setting

PARAMETERS:
   bProvisioning  [ I ] - Device provisioning service update enabled

RETURN VALUE:
   ULONG - Return code
===========================================================================*/
QCIMPORT2K ULONG QCWWANAPI2K OMADMSetProvisioningFeature( 
   ULONG                      bProvisioning );

/*===========================================================================
METHOD:
   OMADMSetPRLUpdateFeature

DESCRIPTION:
   This function sets the OMA-DM PRL service update feature setting

PARAMETERS:
   bPRLUpdate     [ I ] - PRL service update enabled

RETURN VALUE:
   ULONG - Return code
===========================================================================*/
QCIMPORT2K ULONG QCWWANAPI2K OMADMSetPRLUpdateFeature( 
   ULONG                      bPRLUpdate );

/*===========================================================================
METHOD:
   GetFirmwareID

DESCRIPTION:
   Returns the ID for the firmware image located at the path provided as input

PARAMETERS:
   pPath          [ I ] - Location of the firmware image
   pFirmwareID    [ O ] - Firmware ID obtained from the firmware image 
  
RETURN VALUE:
   ULONG - Return code
===========================================================================*/
QCIMPORT2K ULONG QCWWANAPI2K GetFirmwareIDW( 
   WCHAR *                    pPath, 
   ULONG *                    pFirmwareID );

QCIMPORT2K ULONG QCWWANAPI2K GetFirmwareIDA( 
   CHAR *                     pPath, 
   ULONG *                    pFirmwareID );

/*===========================================================================
METHOD:
   UpgradeFirmware (Deprecated)

DESCRIPTION:
   This function performs the following set of steps:
      a)	Verifies arguments
      b)	Updates firmware ID on device
      c)	Resets the device

   NOTE: Upon successful completion the above steps will have been completed, 
         however the actual upgrade of the firmware will necessarily then 
         follow.

PARAMETERS:
   pSourcePath       [ I ] - No longer used
   pDestinationPath  [ I ] - The fully qualified path to the destination folder 
                             that the firmware download service will use 
  
RETURN VALUE:
   ULONG - Return code
===========================================================================*/
QCIMPORT2K ULONG QCWWANAPI2K UpgradeFirmwareW( 
   WCHAR *                    pSourcePath, 
   WCHAR *                    pDestinationPath );

QCIMPORT2K ULONG QCWWANAPI2K UpgradeFirmwareA( 
   CHAR *                     pSourcePath, 
   CHAR *                     pDestinationPath );

/*===========================================================================
METHOD:
   UpgradeFirmware2k

DESCRIPTION:
   This function performs the following set of steps:
      a)	Verifies arguments
      b)	Updates firmware ID on device
      c)	Resets the device

   NOTE: Upon successful completion the above steps will have been completed, 
         however the actual upgrade of the firmware will necessarily then 
         follow.

PARAMETERS:
   pDestinationPath  [ I ] - The fully qualified path to the destination folder 
                             that the firmware download service will use 
  
RETURN VALUE:
   ULONG - Return code
===========================================================================*/
QCIMPORT2K ULONG QCWWANAPI2K UpgradeFirmware2kW( WCHAR * pDestinationPath );
QCIMPORT2K ULONG QCWWANAPI2K UpgradeFirmware2kA( CHAR * pDestinationPath );

/*===========================================================================
METHOD:
   GetImageInfo

DESCRIPTION:
   Returns image information obtained from the firmware image located at the
   provided path

PARAMETERS:
   pPath          [ I ] - Location of the firmware image
   pFirmwareID    [ O ] - Firmware ID obtained from the firmware image
   pTechnology    [ O ] - Technology (0xFFFFFFFF if unknown)
   pCarrier       [ O ] - Carrier (0xFFFFFFFF if unknown)
   pRegion        [ O ] - Region (0xFFFFFFFF if unknown)
   pGPSCapability [ O ] - GPS capability (0xFFFFFFFF if unknown)

RETURN VALUE:
   ULONG - Return code
===========================================================================*/
QCIMPORT2K ULONG QCWWANAPI2K GetImageInfoW( 
   WCHAR *                    pPath, 
   ULONG *                    pFirmwareID,
   ULONG *                    pTechnology,
   ULONG *                    pCarrier,
   ULONG *                    pRegion,
   ULONG *                    pGPSCapability );

QCIMPORT2K ULONG QCWWANAPI2K GetImageInfoA( 
   CHAR *                     pPath, 
   ULONG *                    pFirmwareID,
   ULONG *                    pTechnology,
   ULONG *                    pCarrier,
   ULONG *                    pRegion,
   ULONG *                    pGPSCapability );

/*===========================================================================
METHOD:
   GetImageStore

DESCRIPTION:
   Returns the image store folder, i.e. the folder co-located with the
   QDL Service executable which (by default) contains one or more carrier 
   specific image subfolders

PARAMETERS:
   pathSize          [ I ] - Maximum number of characters (including NULL
                             terminator) that can be copied to the image
                             store path array
   pImageStorePath   [ O ] - The path to the image store

RETURN VALUE:
   ULONG - Return code
===========================================================================*/
QCIMPORT2K ULONG QCWWANAPI2K GetImageStoreW( 
   WORD                       pathSize,
   WCHAR *                    pImageStorePath );

QCIMPORT2K ULONG QCWWANAPI2K GetImageStoreA( 
   WORD                       pathSize,
   CHAR *                     pImageStorePath );
/*===========================================================================
METHOD:
    GetImagesPreference

DESCRIPTION:
    Return the current images preference

PARAMETERS:
    pImageListSize      [I/O] - Upon input the size in BYTEs of the image list 
                                array.  Upon success the actual number of BYTEs 
                                copied to the image list array
    pImageList          [ O ] - The image info list array 

RETURN VALUE:
    ULONG - Return code
===========================================================================*/
QCIMPORT2K ULONG QCWWANAPI2K GetImagesPreference( 
    ULONG *                    pImageListSize, 
    BYTE *                     pImageList );
/*===========================================================================
METHOD:
    SetImagesPreference

DESCRIPTION:
    This function sets the current images preference

PARAMETERS:
    imageListSize       [ I ] - The size in BYTEs of the image list array
    pImageList          [ I ] - The image list array
    bForceDownload      [ I ] - Force device to download images from host?
    modemIndex          [ I ] - Desired storage index for downloaded modem image
    pImageTypesSize     [I/O] - Upon input the maximum number of elements that 
                                the download image types array can contain.  
                                Upon successful output the actual number of 
                                elements in the download image types array 
    pImageTypes         [ O ] - The download image types array 

RETURN VALUE:
    ULONG - Return code
===========================================================================*/
QCIMPORT2K ULONG QCWWANAPI2K SetImagesPreference( 
    ULONG                      imageListSize, 
    BYTE *                     pImageList,
    ULONG                      bForceDownload,
    BYTE                       modemIndex,
    ULONG *                    pImageTypesSize, 
    BYTE *                     pImageTypes );

/*===========================================================================
METHOD:
    GetStoredImages

DESCRIPTION:
    Return the list of images stored on the device

PARAMETERS:
    pImageListSize      [I/O] - Upon input the size in BYTEs of the image list 
                                array.  Upon success the actual number of BYTEs 
                                copied to the image list array
    pImageList          [ O ] - The image info list array 

RETURN VALUE:
    ULONG - Return code
===========================================================================*/
QCIMPORT2K ULONG QCWWANAPI2K GetStoredImages( 
    ULONG *                    pImageListSize, 
    BYTE *                     pImageList );

/*===========================================================================
METHOD:
    DeleteStoredImage

DESCRIPTION:
    This function deletes the specified image from the device

PARAMETERS:
    imageInfoSize   [ I ] - The size in BYTEs of the image info array
    pImageInfo      [ I ] - The image info array

RETURN VALUE:
    ULONG - Return code
===========================================================================*/
QCIMPORT2K ULONG QCWWANAPI2K DeleteStoredImage( 
    ULONG                      imageInfoSize, 
    BYTE *                     pImageInfo );
/*===========================================================================
METHOD:
   GetPLMNMode

DESCRIPTION:
   This function returns the PLMN mode of the device

PARAMETERS:
   pPLMNMode  [ O ] - Current PLMN mode
  
RETURN VALUE:
   ULONG - Return code
===========================================================================*/
QCIMPORT2K ULONG QCWWANAPI2K GetPLMNMode( ULONG * pPLMNMode );
/*===========================================================================
METHOD:
   GetPLMNName

DESCRIPTION:
   This function returns PLMN name information for the given MCC/MNC

PARAMETERS:
   mcc         [ I ] - Mobile country code
   mnc         [ I ] - Mobile network code
   pNamesSize  [I/O] - Upon input the size in BYTEs of the name structure 
                       array.  Upon success the actual number of BYTEs 
                       copied to the name structure array
   pNames      [ O ] - The name structure array

RETURN VALUE:
   ULONG - Return code
===========================================================================*/
QCIMPORT2K ULONG QCWWANAPI2K GetPLMNName( 
   WORD                        mcc,
   WORD                        mnc,
   ULONG *                     pNamesSize, 
   BYTE *                      pNames );

/*===========================================================================
METHOD:
    ResetDevice

DESCRIPTION:
    This function resets the device

RETURN VALUE:
    eGobiError - Return code
===========================================================================*/
QCIMPORT2K ULONG QCWWANAPI2K ResetDevice();

/*===========================================================================
METHOD:
   SetSessionStateCallback

DESCRIPTION:
   This function enables/disables the session state callback function

PARAMETERS:
   pCallback   [ I ] - Callback function (0 = disable)

RETURN VALUE:
   ULONG - Return code
===========================================================================*/
QCIMPORT2K ULONG QCWWANAPI2K SetSessionStateCallback( tFNSessionState pCallback );

/*===========================================================================
METHOD:
   SetPacketTotalsCallback

DESCRIPTION:
   This function enables/disables the RX/TX Packet counts callback function

PARAMETERS:
   pCallback   [ I ] - Callback function (0 = disable)
   interval    [ I ] - Interval in seconds (ignored when disabling)

RETURN VALUE:
   ULONG - Return code
===========================================================================*/
QCIMPORT2K ULONG QCWWANAPI2K SetPacketTotalsCallback( 
   tFNPacketTotals              pCallback,
   BYTE                       interval );

/*===========================================================================
METHOD:
   SetByteTotalsCallback

DESCRIPTION:
   This function enables/disables the RX/TX byte counts callback function

PARAMETERS:
   pCallback   [ I ] - Callback function (0 = disable)
   interval    [ I ] - Interval in seconds (ignored when disabling)

RETURN VALUE:
   ULONG - Return code
===========================================================================*/
QCIMPORT2K ULONG QCWWANAPI2K SetByteTotalsCallback( 
   tFNByteTotals              pCallback,
   BYTE                       interval );

/*===========================================================================
METHOD:
   SetDataCapabilitiesCallback

DESCRIPTION:
   This function enables/disables the serving system data capabilities 
   callback function

PARAMETERS:
   pCallback   [ I ] - Callback function (0 = disable)

RETURN VALUE:
   ULONG - Return code
===========================================================================*/
QCIMPORT2K ULONG QCWWANAPI2K SetDataCapabilitiesCallback( 
   tFNDataCapabilities        pCallback );

/*===========================================================================
METHOD:
   SetDataBearerCallback

DESCRIPTION:
   This function enables/disables the data bearer status callback function

PARAMETERS:
   pCallback   [ I ] - Callback function (0 = disable)

RETURN VALUE:
   ULONG - Return code
===========================================================================*/
QCIMPORT2K ULONG QCWWANAPI2K SetDataBearerCallback( tFNDataBearer pCallback );

/*===========================================================================
METHOD:
   SetDormancyStatusCallback

DESCRIPTION:
   This function enables/disables the dormancy status callback function

PARAMETERS:
   pCallback   [ I ] - Callback function (0 = disable)

RETURN VALUE:
   ULONG - Return code
===========================================================================*/
QCIMPORT2K ULONG QCWWANAPI2K SetDormancyStatusCallback( 
   tFNDormancyStatus          pCallback );

/*===========================================================================
METHOD:
   SetMobileIPStatusCallback

DESCRIPTION:
   This function enables/disables the mobile IP status callback function

PARAMETERS:
   pCallback   [ I ] - Callback function (0 = disable)

RETURN VALUE:
   ULONG - Return code
===========================================================================*/
QCIMPORT2K ULONG QCWWANAPI2K SetMobileIPStatusCallback( 
   tFNMobileIPStatus          pCallback );

/*===========================================================================
METHOD:
   SetActivationStatusCallback

DESCRIPTION:
   This function enables/disables the activation status callback function

PARAMETERS:
   pCallback   [ I ] - Callback function (0 = disable)

RETURN VALUE:
   ULONG - Return code
===========================================================================*/
QCIMPORT2K ULONG QCWWANAPI2K SetActivationStatusCallback( 
   tFNActivationStatus        pCallback );

/*===========================================================================
METHOD:
   SetPowerCallback

DESCRIPTION:
   Enable/disable power operating mode callback function
  
PARAMETERS:
   pCallback   [ I ] - Callback function

RETURN VALUE:
   ULONG
===========================================================================*/
QCIMPORT2K ULONG QCWWANAPI2K SetPowerCallback( tFNPower pCallback );

/*===========================================================================
METHOD:
   SetRoamingIndicatorCallback

DESCRIPTION:
   This function enables/disables the roaming indicator callback function

PARAMETERS:
   pCallback   [ I ] - Callback function (0 = disable)

RETURN VALUE:
   ULONG - Return code
===========================================================================*/
QCIMPORT2K ULONG QCWWANAPI2K SetRoamingIndicatorCallback( 
   tFNRoamingIndicator        pCallback );

/*===========================================================================
METHOD:
   SetSignalStrengthCallback

DESCRIPTION:
   This function enables/disables the signal strength callback function

PARAMETERS:
   pCallback      [ I ] - Callback function (0 = disable)
   thresholdsSize [ I ] - Number of elements the threshold array contain
                          (a maximum of 5 thresholds is supported), must
                          be 0 when disabling the callback
   pThresholds    [ I ] - Signal threshold array (each entry in dBm),
                          must be 0 when disabling the callback

RETURN VALUE:
   ULONG - Return code
===========================================================================*/
QCIMPORT2K ULONG QCWWANAPI2K SetSignalStrengthCallback( 
   tFNSignalStrength          pCallback,
   BYTE                       thresholdsSize,
   INT8 *                     pThresholds );

/*===========================================================================
METHOD:
   SetRFInfoCallback

DESCRIPTION:
   This function enables/disables the RF information callback function

PARAMETERS:
   pCallback   [ I ] - Callback function (0 = disable)

RETURN VALUE:
   ULONG - Return code
===========================================================================*/
QCIMPORT2K ULONG QCWWANAPI2K SetRFInfoCallback( tFNRFInfo pCallback );

/*===========================================================================
METHOD:
   SetLURejectCallback

DESCRIPTION:
   This function enables/disables the LU reject callback function

PARAMETERS:
   pCallback   [ I ] - Callback function (0 = disable)

RETURN VALUE:
   ULONG - Return code
===========================================================================*/
QCIMPORT2K ULONG QCWWANAPI2K SetLURejectCallback( tFNLUReject pCallback );

/*===========================================================================
METHOD:
   SetNewSMSCallback

DESCRIPTION:
   This function enables/disables the new SMS callback function

PARAMETERS:
   pCallback   [ I ] - Callback function (0 = disable)

RETURN VALUE:
   ULONG - Return code
===========================================================================*/
QCIMPORT2K ULONG QCWWANAPI2K SetNewSMSCallback( tFNNewSMS pCallback );

/*===========================================================================
METHOD:
   SetNMEACallback

DESCRIPTION:
   This function enables/disables the NMEA sentence callback function

PARAMETERS:
   pCallback   [ I ] - Callback function (0 = disable)

RETURN VALUE:
   ULONG - Return code
===========================================================================*/
QCIMPORT2K ULONG QCWWANAPI2K SetNMEACallback( tFNNewNMEA pCallback );

/*===========================================================================
METHOD:
   SetNMEAPlusCallback

DESCRIPTION:
   This function enables/disables the NMEA sentence plus mode 
   callback function

PARAMETERS:
   pCallback   [ I ] - Callback function (0 = disable)

RETURN VALUE:
   ULONG - Return code
===========================================================================*/
QCIMPORT2K ULONG QCWWANAPI2K SetNMEAPlusCallback( tFNNewNMEAPlus pCallback );

/*===========================================================================
METHOD:
   SetPDSStateCallback

DESCRIPTION:
   This function enables/disables the PDS service state callback function

PARAMETERS:
   pCallback   [ I ] - Callback function (0 = disable)

RETURN VALUE:
   ULONG - Return code
===========================================================================*/
QCIMPORT2K ULONG QCWWANAPI2K SetPDSStateCallback( tFNPDSState pCallback );

/*===========================================================================
METHOD:
   SetCATEventCallback

DESCRIPTION:
   This function enables/disables the CAT event callback function

PARAMETERS:
   pCallback   [ I ] - Callback function (0 = disable)
   eventMask   [ I ] - Bitmask of CAT events to register for
   pErrorMask  [ O ] - Error bitmask

RETURN VALUE:
   ULONG - Return code
===========================================================================*/
QCIMPORT2K ULONG QCWWANAPI2K SetCATEventCallback( 
   tFNCATEvent                pCallback,
   ULONG                      eventMask,
   ULONG *                    pErrorMask );

/*===========================================================================
METHOD:
   SetOMADMAlertCallback

DESCRIPTION:
   This function enables/disables the OMA-DM network initiated alert
   callback function

PARAMETERS:
   pCallback   [ I ] - Callback function (0 = disable)

RETURN VALUE:
   ULONG - Return code
===========================================================================*/
QCIMPORT2K ULONG QCWWANAPI2K SetOMADMAlertCallback( tFNOMADMAlert pCallback );

/*===========================================================================
METHOD:
   SetOMADMStateCallback

DESCRIPTION:
   This function enables/disables the OMA-DM state callback function

PARAMETERS:
   pCallback   [ I ] - Callback function (0 = disable)

RETURN VALUE:
   ULONG - Return code
===========================================================================*/
QCIMPORT2K ULONG QCWWANAPI2K SetOMADMStateCallback( tFNOMADMState pCallback );

/*===========================================================================
METHOD:
   SetPLMNModeCallback

DESCRIPTION:
   This function enables/disables the NAS PLMN Mode state callback function

PARAMETERS:
   pCallback   [ I ] - Callback function (0 = disable)

RETURN VALUE:
   ULONG - Return code
===========================================================================*/
QCIMPORT2K ULONG QCWWANAPI2K SetPLMNModeCallback( tFNPLMNMode pCallback );

/*=========================================================================*/
// ANSI/UNICODE Varaints 
/*=========================================================================*/
#ifdef UNICODE
   #define GetFirmwareID GetFirmwareIDW
   #define UpgradeFirmware UpgradeFirmwareW
   #define UpgradeFirmware2k UpgradeFirmware2kW
   #define GetImageInfo GetImageInfoW 
   #define GetImageStore GetImageStoreW 

#else
   #define GetFirmwareID GetFirmwareIDA
   #define UpgradeFirmware UpgradeFirmwareA
   #define UpgradeFirmware2k UpgradeFirmware2kA
   #define GetImageInfo GetImageInfoA 
   #define GetImageStore GetImageStoreA 
#endif
