WWAN_REGISTRATION_STATE结构(wwan.h)
WWAN_REGISTRATION_STATE结构表示 MB 设备的注册状态。
语法
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];
DWORD WwanRegFlags;
WWAN_CELLULAR_CLASS CurrentCellularClass;
ULONG PreferredDataClasses;
} WWAN_REGISTRATION_STATE, *PWWAN_REGISTRATION_STATE;
成员
uNwError
注册失败时出现特定于网络的错误。 有关此成员的详细信息,请参阅以下“备注”部分。
RegisterState
设备的注册状态。 有关已定义值的列表,请参阅 WWAN_REGISTER_STATE。
WwanRegisterStatePartner 值表示设备正在首选合作伙伴网络提供商上漫游,而 WwanRegisterStateRoaming 值表示设备只是漫游。 如果漫游状态的合作伙伴特征不可用,微型端口驱动程序应报告 WwanRegisterStateRoaming。
RegisterMode
设备的注册模式。 有关已定义值的列表,请参阅 WWAN_REGISTER_MODE。
ProviderId[WWAN_PROVIDERID_LEN]
表示网络提供程序标识的以 NULL 结尾的数字 (0-9) 字符串。
对于基于 GSM 的网络,此字符串是三位数移动国家/地区代码(MCC)和两个或三位数移动网络代码(MNC)的串联。 基于 GSM 的运营商可能有多个 MNC,因此多个 ProviderId。
对于基于 CDMA 的网络,此字符串是五位数的系统 ID(SID)。 通常,基于 CDMA 的运营商具有多个 SID。 通常,航空公司为每个市场都有一个 SID,它通常按法规在一个国家之间划分,例如美国大都市统计区(MSA)。 如果此信息不可用,则基于 CDMA 设备的微型端口驱动程序必须指定WWAN_CDMA_DEFAULT_PROVIDER_ID。
处理 查询 请求,注册状态处于自动注册模式时,此成员包含设备当前关联的提供程序 ID(如果适用)。 当注册状态处于手动注册模式时,此成员包含请求设备注册的提供程序 ID(即使提供程序不可用)。
处理 集 请求并且注册状态处于手动模式时,这包括设备要注册的 MB 服务选择的提供程序 ID。 当注册状态处于自动注册模式时,将忽略此参数。
如果提供程序 ID 不可用,则必须将 CDMA 1xRTT 提供程序设置为WWAN_CDMA_DEFAULT_PROVIDER_ID。
ProviderName[WWAN_PROVIDERNAME_LEN]
表示网络提供程序名称的 NULL 终止字符串。 此成员最多只能WWAN_PROVIDERNAME_LEN个字符。
对于基于 GSM 的网络,如果首选国家/地区首字母缩写和移动网络名称(PPCI&N)超过 20 个字符,则微型端口驱动程序应缩写网络名称。
当 MB 服务设置首选提供程序列表时,将忽略此成员。
微型端口驱动程序应为没有此信息的设备指定 NULL 字符串。
RoamingText[WWAN_ROAMTEXT_LEN]
一个以 NULL 结尾的字符串,告知用户设备正在漫游。 此成员最多只能WWAN_ROAMTEXT_LEN个字符。
当注册状态 WwanRegisterStatePartner 或 WwanRegisterStateRoaming时,此文本应向用户提供其他信息。 此成员是可选的。
WwanRegFlags
注册标志。
价值 | 意义 |
---|---|
WWAN_REG_FLAGS_NONE | 无注册标志。 |
WWAN_REG_FLAGS_NO_MANUAL_REG | 无手动附加。 |
WWAN_REG_FLAGS_PS_AUTO_ATTACH | 指示 MB 设备管理自己的数据包上下文。 MB 服务不会将数据包分离发送到微型端口驱动程序,但可能会发送数据包附加。 |
CurrentCellularClass
已注册网络的当前手机网络类。 对于仅支持单个移动电话类的网络,此成员应设置为该移动电话类。 对于支持多模式的网络,微型端口驱动程序会在网络更改其移动电话类时向 MB 服务发送NDIS_STATUS_WWAN_REGISTER_STATE通知。
PreferredDataClasses
一个位掩码,表示首选连接的数据访问技术。
言论
查询 和 设置 OID 请求和未经请求的状态事件使用 uNwError 成员。 如果没有特定于网络的错误或网络特定的错误未知,微型端口驱动程序应将此成员设置为零。 MB作语义中的“状态指示结构”部分 显示了 3GPP TS 24.008 规范中定义的注册原因代码失败值。
以下几点提供了在不同方案中返回特定于网络的错误的准则:
- 如果网络注册因网络特定错误而失败,微型端口驱动程序应返回特定于网络的错误,以响应 查询 请求。 在这种情况下,微型端口驱动程序应将 NDIS_WWAN_REGISTRATION_STATE 结构的 uStatus 成员设置为WWAN_STATUS_SUCCESS,并将 uNwError 成员设置为特定于网络的错误代码。
- 如果 设置 请求失败,微型端口驱动程序应返回特定于网络的错误代码。 在这种情况下,微型端口驱动程序应将NDIS_WWAN_REGISTRATION_STATE结构的 uStatus 成员设置为WWAN_STATUS_FAILURE,并将 uNwError 成员设置为特定于网络的错误代码。
- 每当设备注册状态发生更改,因为网络取消注册设备(例如,网络因设备的订阅过期而取消注册设备),则未经请求的状态事件应包括特定于网络的错误。 在这种情况下,微型端口驱动程序应将NDIS_WWAN_REGISTRATION_STATE结构的 uStatus 成员设置为WWAN_STATUS_SUCCESS,并将 uNwError 成员设置为特定于网络的错误代码。
微型端口驱动程序可以提供由网络返回的数据包附加错误代码的 GSM 标准规范定义的其他错误代码。 例如,微型端口驱动程序可以通过 uNwError 成员将 3GPP 规范 TS 24.008 数据包附加错误代码(如错误代码 12(位置区域不允许)传达给 MB 服务。
微型端口驱动程序必须尽早报告原因代码。 例如,如果 MB 设备在尝试向网络提供程序注册设备时遇到以下代码之一,则微型端口驱动程序应在该时间报告它。
连接到多模式网络的微型端口驱动程序应通过 NDIS_STATUS_WWAN_REGISTER_STATE 通知指示手机网络类更改。
要求
要求 | 价值 |
---|---|
最低支持的客户端 | 在 Windows 8 及更高版本的 Windows 中可用。 |
标头 | wwan.h (包括 Wwan.h) |