719 lines
22 KiB
C
719 lines
22 KiB
C
/*++
|
|
Copyright (c) 2007 Microsoft Corporation
|
|
|
|
Module Name:
|
|
wwan.h
|
|
|
|
Abstract:
|
|
Header file for WWAN structures
|
|
|
|
Revision History:
|
|
DATE DESCRIPTION
|
|
------------ -----------
|
|
23-FEB-2007 V0.40 Driver Model Compliant
|
|
23-MAY-2007 V0.50 Driver Model Compliant
|
|
01-AUG-2007 V0.60 Driver Model Compliant
|
|
02-APR-2008 V1.00 Driver Model Compliant
|
|
|
|
--*/
|
|
|
|
#ifndef __WWAN_DECL__
|
|
#define __WWAN_DECL__
|
|
|
|
#define WWAN_ERROR_UNSUPPORTED_FIRMWARE 0xf0f0f000
|
|
#define WWAN_ERROR_COM_PORT_CONFLICT 0xf0f0f001
|
|
#define WWAN_ERROR_RESOURCE_CONFLICT_OTHER 0xf0f0ffff
|
|
|
|
typedef ULONG WWAN_STATUS;
|
|
|
|
#define WWAN_STATUS_SUCCESS STATUS_SUCCESS
|
|
#define WWAN_STATUS_BUSY 0xC0040002
|
|
#define WWAN_STATUS_FAILURE 0xC0040003
|
|
#define WWAN_STATUS_SIM_NOT_INSERTED 0xC0040004
|
|
#define WWAN_STATUS_BAD_SIM 0xC0040005
|
|
#define WWAN_STATUS_PIN_REQUIRED 0xC0040006
|
|
#define WWAN_STATUS_PIN_DISABLED 0x40040007
|
|
#define WWAN_STATUS_NOT_REGISTERED 0x40040008
|
|
#define WWAN_STATUS_PROVIDERS_NOT_FOUND 0x40040009
|
|
#define WWAN_STATUS_NO_DEVICE_SUPPORT 0xC004000a
|
|
#define WWAN_STATUS_PROVIDER_NOT_VISIBLE 0x4004000b
|
|
#define WWAN_STATUS_DATA_CLASS_NOT_AVAILABLE 0x4004000c
|
|
#define WWAN_STATUS_PACKET_SVC_DETACHED 0xC004000d
|
|
#define WWAN_STATUS_MAX_ACTIVATED_CONTEXTS 0xC004000e
|
|
#define WWAN_STATUS_NOT_INITIALIZED 0xC004000f
|
|
#define WWAN_STATUS_VOICE_CALL_IN_PROGRESS 0x40040010
|
|
#define WWAN_STATUS_CONTEXT_NOT_ACTIVATED 0xC0040011
|
|
#define WWAN_STATUS_SERVICE_NOT_ACTIVATED 0xC0040012
|
|
#define WWAN_STATUS_INVALID_ACCESS_STRING 0xC0040013
|
|
#define WWAN_STATUS_INVALID_USER_NAME_PWD 0xC0040014
|
|
#define WWAN_STATUS_RADIO_POWER_OFF 0xC0040015
|
|
#define WWAN_STATUS_INVALID_PARAMETERS 0xC0040016
|
|
#define WWAN_STATUS_READ_FAILURE 0xC0040017
|
|
#define WWAN_STATUS_WRITE_FAILURE 0xC0040018
|
|
|
|
//SMS specific error codes
|
|
#define WWAN_STATUS_SMS_OPERATION_NOT_ALLOWED 0xC0040100
|
|
#define WWAN_STATUS_SMS_MEMORY_FAILURE 0xC0040101
|
|
#define WWAN_STATUS_SMS_INVALID_MEMORY_INDEX 0xC0040102
|
|
#define WWAN_STATUS_SMS_UNKNOWN_SMSC_ADDRESS 0xC0040103
|
|
#define WWAN_STATUS_SMS_NETWORK_TIMEOUT 0xC0040104
|
|
#define WWAN_STATUS_SMS_MEMORY_FULL 0xC0040105
|
|
#define WWAN_STATUS_SMS_UNKNOWN_ERROR 0xC0040106
|
|
#define WWAN_STATUS_SMS_FILTER_NOT_SUPPORTED 0xC0040107
|
|
#define WWAN_STATUS_SMS_MORE_DATA 0x40040108
|
|
#define WWAN_STATUS_SMS_LANG_NOT_SUPPORTED 0xC0040109
|
|
#define WWAN_STATUS_SMS_ENCODING_NOT_SUPPORTED 0xC004010A
|
|
#define WWAN_STATUS_SMS_FORMAT_NOT_SUPPORTED 0xC004010B
|
|
|
|
typedef enum _WWAN_STRUCT_TYPE {
|
|
WwanStructTN = 0,
|
|
WwanStructContext,
|
|
WwanStructProvider,
|
|
WwanStructSmsPdu,
|
|
WwanStructReserved0,
|
|
WwanStructReserved1,
|
|
WwanStructReserved2,
|
|
WwanStructSmsCdma,
|
|
WwanStructReserved3,
|
|
WwanStructMax
|
|
} WWAN_STRUCT_TYPE, *PWWAN_STRUCT_TYPE;
|
|
|
|
typedef struct _WWAN_LIST_HEADER {
|
|
WWAN_STRUCT_TYPE ElementType;
|
|
ULONG ElementCount;
|
|
} WWAN_LIST_HEADER, *PWWAN_LIST_HEADER;
|
|
|
|
#define WWAN_MANUFACTURER_LEN 32
|
|
#define WWAN_MODEL_LEN 32
|
|
#define WWAN_FIRMWARE_LEN 32
|
|
#define WWAN_DEVICEID_LEN 18
|
|
#define WWAN_CUSTOM_DATA_CLASS_LEN 12
|
|
#define WWAN_CUSTOM_BAND_CLASS_LEN 20
|
|
#define WWAN_PIN_LEN 12
|
|
#define WWAN_PROVIDERID_LEN 7
|
|
#define WWAN_PROVIDERNAME_LEN 21
|
|
#define WWAN_ROAMTEXT_LEN 64
|
|
#define WWAN_ACCESSSTRING_LEN 101
|
|
#define WWAN_USERNAME_LEN 256
|
|
#define WWAN_PASSWORD_LEN 256
|
|
#define WWAN_SUBSCRIBERID_LEN 16
|
|
#define WWAN_SIMICCID_LEN 21
|
|
#define WWAN_TN_LEN 16
|
|
#define WWAN_SCA_MAX_LEN 14
|
|
#define WWAN_SMS_ADDRESS_MAX_LEN 16
|
|
#define WWAN_SC_TIME_STAMP_MAX_LEN 20
|
|
#define WWAN_SMS_CDMA_ADDR_MAX_LEN 50
|
|
#define WWAN_SMS_CDMA_TIMESTAMP_MAX_LEN 20
|
|
#define WWAN_SMS_MSG_PDU_LEN 183
|
|
#define WWAN_SMS_RAW_PDU_LEN (WWAN_SMS_MSG_PDU_LEN - 12)
|
|
#define WWAN_SMS_PDU_HEX_BUF_LEN (WWAN_SMS_MSG_PDU_LEN * 2)
|
|
#define WWAN_CDMA_SHORT_MSG_SIZE_UNKNOWN 0
|
|
#define WWAN_CDMA_SHORT_MSG_SIZE_MAX 160
|
|
#define WWAN_SMS_CDMA_MAX_BUF_LEN 160
|
|
#define WWAN_SMS_CDMA_MAX_MSG_LEN WWAN_CDMA_SHORT_MSG_SIZE_MAX
|
|
|
|
#define WWAN_CDMA_DEFAULT_PROVIDER_ID (0)
|
|
|
|
typedef enum _WWAN_ASYNC_GETSET_TYPE {
|
|
WwanAsyncGetDeviceCaps = 0,
|
|
WwanAsyncGetReadyInfo,
|
|
WwanAsyncGetRadioState,
|
|
WwanAsyncSetRadioState,
|
|
WwanAsyncGetPin,
|
|
WwanAsyncSetPin,
|
|
WwanAsyncGetPinList,
|
|
WwanAsyncGetHomeProvider,
|
|
WwanAsyncGetPreferredProviders,
|
|
WwanAsyncSetPreferredProviders,
|
|
WwanAsyncGetVisibleProviders,
|
|
WwanAsyncGetRegisterState,
|
|
WwanAsyncSetRegisterState,
|
|
WwanAsyncGetPacketService,
|
|
WwanAsyncSetPacketService,
|
|
WwanAsyncGetSignalState,
|
|
WwanAsyncSetSignalState,
|
|
WwanAsyncGetConnect,
|
|
WwanAsyncSetConnect,
|
|
WwanAsyncGetProvisionedContexts,
|
|
WwanAsyncSetProvisionedContext,
|
|
WwanAsyncSetServiceActivation,
|
|
WwanAsyncGetSmsConfiguration,
|
|
WwanAsyncSetSmsConfiguration,
|
|
WwanAsyncSmsRead,
|
|
WwanAsyncSmsSend,
|
|
WwanAsyncSmsDelete,
|
|
WwanAsyncSmsStatus,
|
|
WwanAsyncSetVendorSpecific,
|
|
WWAN_ASYNC_GETSET_TYPE_MAX
|
|
} WWAN_ASYNC_GETSET_TYPE, *PWWAN_ASYNC_GETSET_TYPE;
|
|
|
|
#ifndef WWAN_MAJOR_VERSION
|
|
#define WWAN_MAJOR_VERSION 1
|
|
#endif
|
|
|
|
#ifndef WWAN_MINOR_VERSION
|
|
#define WWAN_MINOR_VERSION 0
|
|
#endif
|
|
|
|
#ifndef WWAN_CURRENT_VERSION
|
|
#define WWAN_CURRENT_VERSION \
|
|
((WWAN_MAJOR_VERSION << 16) | WWAN_MINOR_VERSION)
|
|
#endif
|
|
|
|
typedef ULONG WWAN_VERSION; /* A value specifies the version. */
|
|
/* bit[16:31]: major version */
|
|
/* bit[0:15]: minor version */
|
|
|
|
#define WWAN_DRIVER_CAPS_NONE 0x00000000
|
|
|
|
typedef struct _WWAN_DRIVER_CAPS {
|
|
ULONG ulMajorVersion;
|
|
ULONG ulMinorVersion;
|
|
ULONG ulDriverCaps;
|
|
} WWAN_DRIVER_CAPS, *PWWAN_DRIVER_CAPS;
|
|
|
|
typedef enum _WWAN_DEVICE_TYPE {
|
|
WwanDeviceTypeUnknown = 0,
|
|
WwanDeviceTypeEmbedded,
|
|
WwanDeviceTypeRemovable,
|
|
WwanDeviceTypeRemote,
|
|
WwanDeviceTypeMax
|
|
} WWAN_DEVICE_TYPE, *PWWAN_DEVICE_TYPE;
|
|
|
|
typedef enum _WWAN_CELLULAR_CLASS {
|
|
WwanCellularClassUnknown = 0,
|
|
WwanCellularClassGsm,
|
|
WwanCellularClassCdma,
|
|
WwanCellularClassMax
|
|
} WWAN_CELLULAR_CLASS, *PWWAN_CELLULAR_CLASS;
|
|
|
|
typedef enum _WWAN_VOICE_CLASS {
|
|
WwanVoiceClassUnknown = 0,
|
|
WwanVoiceClassNoVoice,
|
|
WwanVoiceClassSeparateVoiceData,
|
|
WwanVoiceClassSimultaneousVoiceData,
|
|
WwanVoiceClassMax
|
|
} WWAN_VOICE_CLASS, *PWWAN_VOICE_CLASS;
|
|
|
|
typedef enum _WWAN_SIM_CLASS {
|
|
WwanSimClassUnknown = 0,
|
|
WwanSimClassSimLogical,
|
|
WwanSimClassSimRemovable,
|
|
WwanSimClassSimRemote,
|
|
WwanSimClassMax
|
|
} WWAN_SIM_CLASS, *PWWAN_SIM_CLASS;
|
|
|
|
#define WWAN_DATA_CLASS_NONE 0x00000000
|
|
#define WWAN_DATA_CLASS_GPRS 0x00000001
|
|
#define WWAN_DATA_CLASS_EDGE 0x00000002 /* EGPRS */
|
|
#define WWAN_DATA_CLASS_UMTS 0x00000004
|
|
#define WWAN_DATA_CLASS_HSDPA 0x00000008
|
|
#define WWAN_DATA_CLASS_HSUPA 0x00000010
|
|
#define WWAN_DATA_CLASS_LTE 0x00000020
|
|
#define WWAN_DATA_CLASS_1XRTT 0x00010000
|
|
#define WWAN_DATA_CLASS_1XEVDO 0x00020000
|
|
#define WWAN_DATA_CLASS_1XEVDO_REVA 0x00040000
|
|
#define WWAN_DATA_CLASS_1XEVDV 0x00080000
|
|
#define WWAN_DATA_CLASS_3XRTT 0x00100000
|
|
#define WWAN_DATA_CLASS_1XEVDO_REVB 0x00200000 /* for future use */
|
|
#define WWAN_DATA_CLASS_UMB 0x00400000
|
|
#define WWAN_DATA_CLASS_CUSTOM 0x80000000
|
|
|
|
#define WWAN_BAND_CLASS_UNKNOWN 0x00000000
|
|
#define WWAN_BAND_CLASS_0 0x00000001
|
|
#define WWAN_BAND_CLASS_I 0x00000002
|
|
#define WWAN_BAND_CLASS_II 0x00000004
|
|
#define WWAN_BAND_CLASS_III 0x00000008
|
|
#define WWAN_BAND_CLASS_IV 0x00000010
|
|
#define WWAN_BAND_CLASS_V 0x00000020
|
|
#define WWAN_BAND_CLASS_VI 0x00000040
|
|
#define WWAN_BAND_CLASS_VII 0x00000080
|
|
#define WWAN_BAND_CLASS_VIII 0x00000100
|
|
#define WWAN_BAND_CLASS_IX 0x00000200
|
|
#define WWAN_BAND_CLASS_X 0x00000400
|
|
#define WWAN_BAND_CLASS_XI 0x00000800
|
|
#define WWAN_BAND_CLASS_XII 0x00001000
|
|
#define WWAN_BAND_CLASS_XIII 0x00002000
|
|
#define WWAN_BAND_CLASS_XIV 0x00004000
|
|
#define WWAN_BAND_CLASS_XV 0x00008000
|
|
#define WWAN_BAND_CLASS_XVI 0x00010000
|
|
#define WWAN_BAND_CLASS_XVII 0x00020000
|
|
#define WWAN_BAND_CLASS_CUSTOM 0x80000000
|
|
|
|
#define WWAN_CTRL_CAPS_NONE 0x00000000
|
|
#define WWAN_CTRL_CAPS_REG_MANUAL 0x00000001
|
|
#define WWAN_CTRL_CAPS_HW_RADIO_SWITCH 0x00000002
|
|
#define WWAN_CTRL_CAPS_CDMA_MOBILE_IP 0x00000004
|
|
#define WWAN_CTRL_CAPS_CDMA_SIMPLE_IP 0x00000008
|
|
#define WWAN_CTRL_CAPS_PROTECT_UNIQUEID 0x00000010
|
|
|
|
#define WWAN_SMS_CAPS_NONE 0x00000000
|
|
#define WWAN_SMS_CAPS_PDU_RECEIVE 0x00000001
|
|
#define WWAN_SMS_CAPS_PDU_SEND 0x00000002
|
|
#define WWAN_SMS_CAPS_TEXT_RECEIVE 0x00000004
|
|
#define WWAN_SMS_CAPS_TEXT_SEND 0x00000008
|
|
|
|
typedef struct _WWAN_DEVICE_CAPS {
|
|
WWAN_DEVICE_TYPE WwanDeviceType;
|
|
WWAN_CELLULAR_CLASS WwanCellularClass;
|
|
WWAN_VOICE_CLASS WwanVoiceClass;
|
|
WWAN_SIM_CLASS WwanSimClass;
|
|
ULONG WwanDataClass;
|
|
WCHAR CustomDataClass[WWAN_CUSTOM_DATA_CLASS_LEN];
|
|
ULONG WwanGsmBandClass;
|
|
ULONG WwanCdmaBandClass;
|
|
WCHAR CustomBandClass[WWAN_CUSTOM_BAND_CLASS_LEN];
|
|
ULONG WwanSmsCaps;
|
|
ULONG WwanControlCaps;
|
|
WCHAR DeviceId [WWAN_DEVICEID_LEN];
|
|
WCHAR Manufacturer [WWAN_MANUFACTURER_LEN];
|
|
WCHAR Model [WWAN_MODEL_LEN];
|
|
WCHAR FirmwareInfo [WWAN_FIRMWARE_LEN];
|
|
ULONG MaxActivatedContexts;
|
|
} WWAN_DEVICE_CAPS, *PWWAN_DEVICE_CAPS;
|
|
|
|
typedef enum _WWAN_READY_STATE {
|
|
WwanReadyStateOff = 0, /* stack is off */
|
|
WwanReadyStateInitialized, /* ready to power up and register */
|
|
WwanReadyStateSimNotInserted, /* SIM not inserted */
|
|
WwanReadyStateBadSim, /* SIM is invalid */
|
|
WwanReadyStateFailure, /* Device failure */
|
|
WwanReadyStateNotActivated, /* Device not activated (CDMA) */
|
|
WwanReadyStateDeviceLocked /* Device is locked */
|
|
} WWAN_READY_STATE, *PWWAN_READY_STATE;
|
|
|
|
typedef enum _WWAN_EMERGENCY_MODE
|
|
{
|
|
WwanEmergencyModeOff = 0,
|
|
WwanEmergencyModeOn,
|
|
WwanEmergencyModeMax
|
|
}WWAN_EMERGENCY_MODE, *PWWAN_EMERGENCY_MODE;
|
|
|
|
typedef struct _WWAN_READY_INFO {
|
|
WWAN_READY_STATE ReadyState;
|
|
WWAN_EMERGENCY_MODE EmergencyMode;
|
|
WCHAR SubscriberId [WWAN_SUBSCRIBERID_LEN];
|
|
WCHAR SimIccId [WWAN_SIMICCID_LEN];
|
|
BYTE CdmaShortMsgSize;
|
|
WWAN_LIST_HEADER TNListHeader;
|
|
} WWAN_READY_INFO, *PWWAN_READY_INFO;
|
|
|
|
typedef struct _WWAN_SERVICE_ACTIVATION {
|
|
ULONG uVendorSpecificBufferSize;
|
|
} WWAN_SERVICE_ACTIVATION, *PWWAN_SERVICE_ACTIVATION;
|
|
|
|
typedef enum _WWAN_RADIO {
|
|
WwanRadioOff = 0,
|
|
WwanRadioOn
|
|
} WWAN_RADIO, *PWWAN_RADIO;
|
|
|
|
typedef struct _WWAN_RADIO_STATE {
|
|
WWAN_RADIO HwRadioState;
|
|
WWAN_RADIO SwRadioState;
|
|
} WWAN_RADIO_STATE, *PWWAN_RADIO_STATE;
|
|
|
|
typedef enum _WWAN_PIN_TYPE {
|
|
WwanPinTypeNone = 0,
|
|
WwanPinTypeCustom,
|
|
WwanPinTypePin1,
|
|
WwanPinTypePin2,
|
|
WwanPinTypeDeviceSimPin,
|
|
WwanPinTypeDeviceFirstSimPin,
|
|
WwanPinTypeNetworkPin,
|
|
WwanPinTypeNetworkSubsetPin,
|
|
WwanPinTypeSvcProviderPin,
|
|
WwanPinTypeCorporatePin,
|
|
WwanPinTypeSubsidyLock,
|
|
WwanPinTypePuk1,
|
|
WwanPinTypePuk2,
|
|
WwanPinTypeDeviceFirstSimPuk,
|
|
WwanPinTypeNetworkPuk,
|
|
WwanPinTypeNetworkSubsetPuk,
|
|
WwanPinTypeSvcProviderPuk,
|
|
WwanPinTypeCorporatePuk,
|
|
WwanPinTypeMax
|
|
} WWAN_PIN_TYPE, *PWWAN_PIN_TYPE;
|
|
|
|
typedef enum _WWAN_PIN_STATE {
|
|
WwanPinStateNone = 0,
|
|
WwanPinStateEnter,
|
|
WwanPinStateMax
|
|
} WWAN_PIN_STATE, *PWWAN_PIN_STATE;
|
|
|
|
#define WWAN_ATTEMPTS_REMAINING_UNKNOWN ~0
|
|
|
|
typedef struct _WWAN_PIN_INFO {
|
|
WWAN_PIN_TYPE PinType;
|
|
WWAN_PIN_STATE PinState;
|
|
ULONG AttemptsRemaining;
|
|
} WWAN_PIN_INFO, *PWWAN_PIN_INFO;
|
|
|
|
typedef enum _WWAN_PIN_OPERATION {
|
|
WwanPinOperationEnter = 0,
|
|
WwanPinOperationEnable,
|
|
WwanPinOperationDisable,
|
|
WwanPinOperationChange,
|
|
WwanPinOperationMax
|
|
} WWAN_PIN_OPERATION, *PWWAN_PIN_OPERATION;
|
|
|
|
typedef struct _WWAN_PIN_ACTION {
|
|
WWAN_PIN_TYPE PinType;
|
|
WWAN_PIN_OPERATION PinOperation;
|
|
WCHAR Pin [WWAN_PIN_LEN];
|
|
WCHAR NewPin [WWAN_PIN_LEN];
|
|
} WWAN_PIN_ACTION, *PWWAN_PIN_ACTION;
|
|
|
|
typedef enum _WWAN_PIN_FORMAT {
|
|
WwanPinFormatUnknown = 0,
|
|
WwanPinFormatNumeric,
|
|
WwanPinFormatAlphaNumeric,
|
|
WwanPinFormatMax
|
|
} WWAN_PIN_FORMAT, *PWWAN_PIN_FORMAT;
|
|
|
|
typedef enum _WWAN_PIN_MODE {
|
|
WwanPinModeNotSupported = 0,
|
|
WwanPinModeEnabled,
|
|
WwanPinModeDisabled,
|
|
WwanPinModeMax
|
|
} WWAN_PIN_MODE, *PWWAN_PIN_MODE;
|
|
|
|
#define WWAN_PIN_LENGTH_UNKNOWN ~0
|
|
|
|
typedef struct _WWAN_PIN_DESC {
|
|
WWAN_PIN_MODE PinMode;
|
|
WWAN_PIN_FORMAT PinFormat;
|
|
ULONG PinLengthMin;
|
|
ULONG PinLengthMax;
|
|
} WWAN_PIN_DESC, *PWWAN_PIN_DESC;
|
|
|
|
typedef struct _WWAN_PIN_LIST {
|
|
WWAN_PIN_DESC WwanPinDescPin1;
|
|
WWAN_PIN_DESC WwanPinDescPin2;
|
|
WWAN_PIN_DESC WwanPinDescDeviceSimPin;
|
|
WWAN_PIN_DESC WwanPinDescDeviceFirstSimPin;
|
|
WWAN_PIN_DESC WwanPinDescNetworkPin;
|
|
WWAN_PIN_DESC WwanPinDescNetworkSubsetPin;
|
|
WWAN_PIN_DESC WwanPinDescSvcProviderPin;
|
|
WWAN_PIN_DESC WwanPinDescCorporatePin;
|
|
WWAN_PIN_DESC WwanPinDescSubsidyLock;
|
|
WWAN_PIN_DESC WwanPinDescCustom;
|
|
} WWAN_PIN_LIST, *PWWAN_PIN_LIST;
|
|
|
|
#define WWAN_PROVIDER_STATE_UNKNOWN 0x00000000
|
|
#define WWAN_PROVIDER_STATE_HOME 0x00000001
|
|
#define WWAN_PROVIDER_STATE_FORBIDDEN 0x00000002
|
|
#define WWAN_PROVIDER_STATE_PREFERRED 0x00000004
|
|
#define WWAN_PROVIDER_STATE_VISIBLE 0x00000008
|
|
#define WWAN_PROVIDER_STATE_REGISTERED 0x00000010
|
|
|
|
typedef struct _WWAN_PROVIDER {
|
|
WCHAR ProviderId [WWAN_PROVIDERID_LEN];
|
|
ULONG ProviderState;
|
|
WCHAR ProviderName [WWAN_PROVIDERNAME_LEN];
|
|
ULONG WwanDataClass;
|
|
} WWAN_PROVIDER, *PWWAN_PROVIDER;
|
|
|
|
typedef enum _WWAN_REGISTER_ACTION {
|
|
WwanRegisterActionAutomatic = 0,
|
|
WwanRegisterActionManual,
|
|
WwanRegisterActionMax
|
|
} WWAN_REGISTER_ACTION, *PWWAN_REGISTER_ACTION;
|
|
|
|
typedef struct _WWAN_SET_REGISTER_STATE {
|
|
WCHAR ProviderId [WWAN_PROVIDERID_LEN];
|
|
WWAN_REGISTER_ACTION RegisterAction;
|
|
ULONG WwanDataClass;
|
|
} WWAN_SET_REGISTER_STATE, *PWWAN_SET_REGISTER_STATE;
|
|
|
|
typedef enum _WWAN_REGISTER_STATE {
|
|
WwanRegisterStateUnknown = 0,
|
|
WwanRegisterStateDeregistered,
|
|
WwanRegisterStateSearching,
|
|
WwanRegisterStateHome,
|
|
WwanRegisterStateRoaming,
|
|
WwanRegisterStatePartner,
|
|
WwanRegisterStateDenied,
|
|
WwanRegisterStateMax
|
|
} WWAN_REGISTER_STATE, *PWWAN_REGISTER_STATE;
|
|
|
|
typedef enum _WWAN_REGISTER_MODE {
|
|
WwanRegisterModeUnknown = 0,
|
|
WwanRegisterModeAutomatic,
|
|
WwanRegisterModeManual,
|
|
WwanRegisterModeMax
|
|
} WWAN_REGISTER_MODE, *PWWAN_REGISTER_MODE;
|
|
|
|
typedef struct _WWAN_REGISTRATION_STATE {
|
|
ULONG uNwError;
|
|
WWAN_REGISTER_STATE RegisterState;
|
|
WWAN_REGISTER_MODE RegisterMode;
|
|
WCHAR ProviderId [WWAN_PROVIDERID_LEN];
|
|
WCHAR ProviderName [WWAN_PROVIDERNAME_LEN];
|
|
WCHAR RoamingText [WWAN_ROAMTEXT_LEN];
|
|
} WWAN_REGISTRATION_STATE, *PWWAN_REGISTRATION_STATE;
|
|
|
|
typedef enum _WWAN_PACKET_SERVICE_ACTION {
|
|
WwanPacketServiceActionAttach = 0,
|
|
WwanPacketServiceActionDetach
|
|
} WWAN_PACKET_SERVICE_ACTION, *PWWAN_PACKET_SERVICE_ACTION;
|
|
|
|
typedef enum _WWAN_PACKET_SERVICE_STATE {
|
|
WwanPacketServiceStateUnknown = 0,
|
|
WwanPacketServiceStateAttaching,
|
|
WwanPacketServiceStateAttached,
|
|
WwanPacketServiceStateDetaching,
|
|
WwanPacketServiceStateDetached
|
|
} WWAN_PACKET_SERVICE_STATE, *PWWAN_PACKET_SERVICE_STATE;
|
|
|
|
typedef struct _WWAN_PACKET_SERVICE {
|
|
ULONG uNwError;
|
|
WWAN_PACKET_SERVICE_STATE PacketServiceState;
|
|
ULONG AvailableDataClass;
|
|
ULONG CurrentDataClass;
|
|
} WWAN_PACKET_SERVICE, *PWWAN_PACKET_SERVICE;
|
|
|
|
#define WWAN_RSSI_UNKNOWN 99
|
|
#define WWAN_ERROR_RATE_UNKNOWN 99
|
|
|
|
typedef struct _WWAN_SIGNAL_STATE {
|
|
ULONG Rssi;
|
|
ULONG ErrorRate;
|
|
ULONG RssiInterval;
|
|
ULONG RssiThreshold;
|
|
} WWAN_SIGNAL_STATE, *PWWAN_SIGNAL_STATE;
|
|
|
|
#define WWAN_RSSI_DEFAULT 0xffffffff
|
|
#define WWAN_RSSI_DISABLE 0
|
|
|
|
typedef struct _WWAN_SET_SIGNAL_INDICATION {
|
|
ULONG RssiInterval;
|
|
ULONG RssiThreshold;
|
|
} WWAN_SET_SIGNAL_INDICATION, *PWWAN_SET_SIGNAL_INDICATION;
|
|
|
|
typedef enum _WWAN_ACTIVATION_COMMAND {
|
|
WwanActivationCommandDeactivate = 0,
|
|
WwanActivationCommandActivate,
|
|
WwanActivationCommandMax
|
|
} WWAN_ACTIVATION_COMMAND, *PWWAN_ACTIVATION_COMMAND;
|
|
|
|
typedef enum _WWAN_COMPRESSION {
|
|
WwanCompressionNone = 0,
|
|
WwanCompressionEnable,
|
|
WwanCompressionMax
|
|
} WWAN_COMPRESSION, *PWWAN_COMPRESSION;
|
|
|
|
typedef enum _WWAN_AUTH_PROTOCOL {
|
|
WwanAuthProtocolNone = 0,
|
|
WwanAuthProtocolPap,
|
|
WwanAuthProtocolChap,
|
|
WwanAuthProtocolMsChapV2,
|
|
WwanAuthProtocolMax
|
|
} WWAN_AUTH_PROTOCOL, *PWWAN_AUTH_PROTOCOL;
|
|
|
|
typedef struct _WWAN_SET_CONTEXT_STATE {
|
|
ULONG ConnectionId;
|
|
WWAN_ACTIVATION_COMMAND ActivationCommand;
|
|
WCHAR AccessString [WWAN_ACCESSSTRING_LEN];
|
|
WCHAR UserName [WWAN_USERNAME_LEN];
|
|
WCHAR Password [WWAN_PASSWORD_LEN];
|
|
WWAN_COMPRESSION Compression;
|
|
WWAN_AUTH_PROTOCOL AuthType;
|
|
} WWAN_SET_CONTEXT_STATE, *PWWAN_SET_CONTEXT_STATE;
|
|
|
|
typedef enum _WWAN_ACTIVATION_STATE {
|
|
WwanActivationStateUnknown = 0,
|
|
WwanActivationStateActivated,
|
|
WwanActivationStateActivating,
|
|
WwanActivationStateDeactivated,
|
|
WwanActivationStateDeactivating,
|
|
WwanActivationStateMax
|
|
} WWAN_ACTIVATION_STATE, *PWWAN_ACTIVATION_STATE;
|
|
|
|
typedef enum _WWAN_VOICE_CALL_STATE
|
|
{
|
|
WwanVoiceCallStateNone = 0,
|
|
WwanVoiceCallStateInProgress,
|
|
WwanVoiceCallStateHangUp,
|
|
WwanVoiceCallStateMaximum
|
|
} WWAN_VOICE_CALL_STATE, *PWWAN_VOICE_CALL_STATE;
|
|
|
|
typedef struct _WWAN_CONTEXT_STATE {
|
|
ULONG uNwError;
|
|
ULONG ConnectionId;
|
|
WWAN_ACTIVATION_STATE ActivationState;
|
|
WWAN_VOICE_CALL_STATE VoiceCallState;
|
|
} WWAN_CONTEXT_STATE, *PWWAN_CONTEXT_STATE;
|
|
|
|
typedef enum _WWAN_CONTEXT_TYPE {
|
|
WwanContextTypeNone = 0,
|
|
WwanContextTypeInternet,
|
|
WwanContextTypeVpn,
|
|
WwanContextTypeVoice,
|
|
WwanContextTypeVideoShare,
|
|
WwanContextTypeCustom,
|
|
WwanContextTypeMax
|
|
} WWAN_CONTEXT_TYPE, *PWWAN_CONTEXT_TYPE;
|
|
|
|
#define WWAN_CONTEXT_ID_APPEND 0xffffffff
|
|
|
|
typedef struct _WWAN_CONTEXT {
|
|
ULONG ContextId;
|
|
WWAN_CONTEXT_TYPE ContextType;
|
|
WCHAR AccessString [WWAN_ACCESSSTRING_LEN];
|
|
WCHAR UserName [WWAN_USERNAME_LEN];
|
|
WCHAR Password [WWAN_PASSWORD_LEN];
|
|
WWAN_COMPRESSION Compression;
|
|
WWAN_AUTH_PROTOCOL AuthType;
|
|
} WWAN_CONTEXT, *PWWAN_CONTEXT;
|
|
|
|
typedef struct _WWAN_SET_CONTEXT
|
|
{
|
|
ULONG ContextId;
|
|
WWAN_CONTEXT_TYPE ContextType;
|
|
WCHAR AccessString[WWAN_ACCESSSTRING_LEN];
|
|
WCHAR UserName[WWAN_USERNAME_LEN];
|
|
WCHAR Password[WWAN_PASSWORD_LEN];
|
|
WWAN_COMPRESSION Compression;
|
|
WWAN_AUTH_PROTOCOL AuthType;
|
|
WCHAR ProviderId[WWAN_PROVIDERID_LEN];
|
|
} WWAN_SET_CONTEXT, *PWWAN_SET_CONTEXT;
|
|
|
|
typedef enum _WWAN_SMS_FORMAT {
|
|
WwanSmsFormatPdu = 0,
|
|
WwanSmsFormatReserved0,
|
|
WwanSmsFormatReserved1,
|
|
WwanSmsFormatReserved2,
|
|
WwanSmsFormatCdma,
|
|
WwanSmsFormatMax
|
|
} WWAN_SMS_FORMAT, *PWWAN_SMS_FORMAT;
|
|
|
|
typedef struct _WWAN_SET_SMS_CONFIGURATION {
|
|
CHAR ScAddress [WWAN_SMS_ADDRESS_MAX_LEN];
|
|
WWAN_SMS_FORMAT SmsFormat;
|
|
} WWAN_SET_SMS_CONFIGURATION, *PWWAN_SET_SMS_CONFIGURATION;
|
|
|
|
typedef struct _WWAN_SMS_CONFIGURATION {
|
|
CHAR ScAddress [WWAN_SMS_ADDRESS_MAX_LEN];
|
|
WWAN_SMS_FORMAT SmsFormat;
|
|
ULONG ulMaxMessageIndex;
|
|
} WWAN_SMS_CONFIGURATION, *PWWAN_SMS_CONFIGURATION;
|
|
|
|
typedef enum _WWAN_SMS_FLAG {
|
|
WwanSmsFlagAll = 0,
|
|
WwanSmsFlagIndex,
|
|
WwanSmsFlagNew,
|
|
WwanSmsFlagOld,
|
|
WwanSmsFlagSent,
|
|
WwanSmsFlagDraft,
|
|
WwanSmsFlagMax
|
|
} WWAN_SMS_FLAG, *PWWAN_SMS_FLAG;
|
|
|
|
#define WWAN_MESSAGE_INDEX_NONE 0
|
|
|
|
typedef struct _WWAN_SMS_FILTER {
|
|
WWAN_SMS_FLAG Flag;
|
|
ULONG MessageIndex;
|
|
} WWAN_SMS_FILTER, *PWWAN_SMS_FILTER;
|
|
|
|
typedef struct _WWAN_SMS_READ {
|
|
WWAN_SMS_FORMAT SmsFormat;
|
|
WWAN_SMS_FILTER ReadFilter;
|
|
} WWAN_SMS_READ, *PWWAN_SMS_READ;
|
|
|
|
typedef enum _WWAN_MSG_STATUS {
|
|
WwanMsgStatusNew = 0,
|
|
WwanMsgStatusOld,
|
|
WwanMsgStatusDraft,
|
|
WwanMsgStatusSent,
|
|
WwanMsgStatusMax
|
|
} WWAN_MSG_STATUS, *PWWAN_MSG_STATUS;
|
|
|
|
typedef enum _WWAN_SMS_CDMA_LANG {
|
|
WwanSmsCdmaLangUnknown = 0,
|
|
WwanSmsCdmaLangEnglish,
|
|
WwanSmsCdmaLangFrench,
|
|
WwanSmsCdmaLangSpanish,
|
|
WwanSmsCdmaLangJapanese,
|
|
WwanSmsCdmaLangKorean,
|
|
WwanSmsCdmaLangChinese,
|
|
WwanSmsCdmaLangHebrew,
|
|
WwanSmsCdmaLangMax
|
|
} WWAN_SMS_CDMA_LANG, *PWWAN_SMS_CDMA_LANG;
|
|
|
|
typedef enum _WWAN_SMS_CDMA_ENCODING {
|
|
WwanSmsCdmaEncodingOctet = 0,
|
|
WwanSmsCdmaEncodingEpm,
|
|
WwanSmsCdmaEncoding7BitAscii,
|
|
WwanSmsCdmaEncodingIa5,
|
|
WwanSmsCdmaEncodingUnicode,
|
|
WwanSmsCdmaEncodingShiftJis,
|
|
WwanSmsCdmaEncodingKorean,
|
|
WwanSmsCdmaEncodingLatinHebrew,
|
|
WwanSmsCdmaEncodingLatin,
|
|
WwanSmsCdmaEncodingGsm7Bit,
|
|
WwanSmsCdmaEncodingMax
|
|
} WWAN_SMS_CDMA_ENCODING, *PWWAN_SMS_CDMA_ENCODING;
|
|
|
|
typedef struct _WWAN_SMS_CDMA_RECORD {
|
|
ULONG MessageIndex;
|
|
WWAN_MSG_STATUS MsgStatus;
|
|
CHAR Address[WWAN_SMS_CDMA_ADDR_MAX_LEN];
|
|
CHAR ScTimeStamp[WWAN_SMS_CDMA_TIMESTAMP_MAX_LEN];
|
|
WWAN_SMS_CDMA_ENCODING EncodingId;
|
|
WWAN_SMS_CDMA_LANG LanguageId;
|
|
USHORT SizeInBytes;
|
|
BYTE SizeInCharacters;
|
|
BYTE EncodedMsg [WWAN_SMS_CDMA_MAX_BUF_LEN];
|
|
} WWAN_SMS_CDMA_RECORD, *PWWAN_SMS_CDMA_RECORD;
|
|
|
|
typedef struct _WWAN_SMS_PDU_RECORD {
|
|
ULONG MessageIndex;
|
|
WWAN_MSG_STATUS MsgStatus;
|
|
BYTE Size;
|
|
CHAR PduData [WWAN_SMS_PDU_HEX_BUF_LEN];
|
|
} WWAN_SMS_PDU_RECORD, *PWWAN_SMS_PDU_RECORD;
|
|
|
|
typedef struct _WWAN_SMS_SEND_CDMA {
|
|
WWAN_SMS_CDMA_ENCODING EncodingId;
|
|
WWAN_SMS_CDMA_LANG LanguageId;
|
|
CHAR Address [WWAN_SMS_CDMA_ADDR_MAX_LEN];
|
|
USHORT SizeInBytes;
|
|
BYTE SizeInCharacters;
|
|
BYTE EncodedMsg [WWAN_SMS_CDMA_MAX_BUF_LEN];
|
|
} WWAN_SMS_SEND_CDMA, *PWWAN_SMS_SEND_CDMA;
|
|
|
|
typedef struct _WWAN_SMS_SEND_PDU {
|
|
BYTE Size;
|
|
CHAR PduData [WWAN_SMS_PDU_HEX_BUF_LEN];
|
|
} WWAN_SMS_SEND_PDU, *PWWAN_SMS_SEND_PDU;
|
|
|
|
typedef struct _WWAN_SMS_SEND {
|
|
WWAN_SMS_FORMAT SmsFormat;
|
|
|
|
union {
|
|
WWAN_SMS_SEND_PDU Pdu;
|
|
WWAN_SMS_SEND_CDMA Cdma;
|
|
} u;
|
|
} WWAN_SMS_SEND, *PWWAN_SMS_SEND;
|
|
|
|
#define WWAN_SMS_FLAG_NONE 0x00000000
|
|
#define WWAN_SMS_FLAG_MESSAGE_STORE_FULL 0x00000001
|
|
#define WWAN_SMS_FLAG_NEW_MESSAGE 0x00000002
|
|
|
|
typedef struct _WWAN_SMS_STATUS {
|
|
ULONG uFlag;
|
|
ULONG MessageIndex;
|
|
} WWAN_SMS_STATUS, *PWWAN_SMS_STATUS;
|
|
|
|
typedef struct _WWAN_SERVICE_ACTIVATION_STATUS {
|
|
ULONG uNwError;
|
|
ULONG uVendorSpecificBufferSize;
|
|
} WWAN_SERVICE_ACTIVATION_STATUS,*PWWAN_SERVICE_ACTIVATION_STATUS;
|
|
|
|
typedef struct _WWAN_VENDOR_SPECIFIC {
|
|
ULONG uVendorSpecificBufferSize;
|
|
} WWAN_VENDOR_SPECIFIC, *PWWAN_VENDOR_SPECIFIC;
|
|
|
|
#endif
|
|
|