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个字符。

当注册状态 WwanRegisterStatePartnerWwanRegisterStateRoaming时,此文本应向用户提供其他信息。 此成员是可选的。

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 成员设置为特定于网络的错误代码。
若要在处理OID_WWAN_REGISTER_STATE请求时返回特定于网络的错误,微型端口驱动程序应将NDIS_WWAN_REGISTRATION_STATE结构的 uStatus 成员设置为WWAN_STATUS_FAILURE并将 uNwError 成员设置为特定于网络的错误代码。

微型端口驱动程序可以提供由网络返回的数据包附加错误代码的 GSM 标准规范定义的其他错误代码。 例如,微型端口驱动程序可以通过 uNwError 成员将 3GPP 规范 TS 24.008 数据包附加错误代码(如错误代码 12(位置区域不允许)传达给 MB 服务。

微型端口驱动程序必须尽早报告原因代码。 例如,如果 MB 设备在尝试向网络提供程序注册设备时遇到以下代码之一,则微型端口驱动程序应在该时间报告它。

连接到多模式网络的微型端口驱动程序应通过 NDIS_STATUS_WWAN_REGISTER_STATE 通知指示手机网络类更改。

要求

要求 价值
最低支持的客户端 在 Windows 8 及更高版本的 Windows 中可用。
标头 wwan.h (包括 Wwan.h)

另请参阅

NDIS_WWAN_REGISTRATION_STATE

WWAN_REGISTER_MODE

WWAN_REGISTER_STATE