MB 预配上下文操作

配置对于可连接蜂窝的设备至关重要,因为每个移动运营商对其网络都有不同的 APN 配置。 APN 配置通常可分为两个类别:

  1. OS 已知的 APN 配置,因为 OS 上方有需要这些连接的应用程序或客户端。
  2. 操作系统不知道的 APN 配置,因为调制解调器内部使用这些配置进行连接,而操作系统及其客户端并不利用这些配置。

理想情况下,调制解调器应仅存储 OS 无需知道的 APN 配置。 但是,IHV 和 OEM 合作伙伴传统上也在调制解调器中提供 Internet 和购买 APN(操作系统已知的配置)。 在 Windows 10 版本 1703 发布之前,Windows 仅从调制解调器读取 Internet 和购买 APN 配置以建立 Internet 连接。 从 Windows 10 版本 1703 开始,可能会有其他情况:调制解调器的 APN 配置必须由 Windows 管理,尤其是在 OS 中有客户端(如用户设置或想要更改手机网络配置的 OMA-DM)时。 这反过来也可能会影响调制解调器的 APN 配置。 例如,调制解调器中可能存在一个 IMS 堆栈,该堆栈使用 IMS APN 通过 IMS 发送短信。 通常,这些连接不会向 OS 公开,但在某些情况下,可能需要更改 IMS APN 配置。 此更改可以通过 OS 完成。 为了支持此功能,从 Windows 10 版本 1703 开始,OS 可以将不同类型的 APN 配置为调制解调器。

USB 论坛的 MBIM 1.0 和 Microsoft NDIS 分别具有现有的 CID 和 OID,以允许 OS 在调制解调器中设置和查询 APN 配置。 对于 MBIM 1.0,它通过 MBIM_CID_PROVISIONED_CONTEXT 执行此操作,而对于 NDIS,则通过 OID_WWAN_PROVISIONED_CONTEXTS 执行此操作。 但是,现有的 CID 和 OID 没有针对调制解调器预期在电源周期或 SIM 交换等各种情况下的行为进行明确指导。 想要支持操作系统配置和更新调制解调器预配上下文的设备必须在 Windows 10 版本 1703 中实施较新版本的 CID 和 OID。 为了确保向后兼容性,对于想要在 1703 之前的 OS 版本上支持新硬件的 IHV/OEM,它们必须继续支持现有的 MBIM_CID_PROVISIONED_CONTEXT 和 OID_WWAN_PROVISIONED_CONTEXTS。 从 Windows 10 版本 1703 开始,如果设备支持新版本的 CID 和 OID,则 OS 将仅使用较新版本的命令在调制解调器中查询和设置 APN 上下文配置。

预配上下文操作的 MB 接口更新

虽然 MBIM 具有用于检索和替换存储在调制解调器中的上下文的命令,但它没有用于“禁用”或“启用”配置文件的字段。 因此,必须更新 Windows 10 版本 1703 的现有 MBIM_CID_PROVISIONED_CONTEXT 才能包含此功能。 由于 MBIM 没有版本控制机制,因此新的 MSFT 专有 CID 定义为 MBIM_CID_MS_PROVISIONED_CONTEXT_V2。

服务名称 = 基本连接扩展

UUID = UUID_BASIC_CONNECT_EXTENSIONS

UUID 值 = 3d01dcc5-fef5-4d05-0d3abef7058e9aaf

CID 命令代码 Minimum OS Version
MBIM_CID_MS_PROVISIONED_CONTEXT_V2 1 Windows 10 版本 1703

MBIM_CID_MS_PROVISIONED_CONTEXT_V2

说明

尽管 MBIM 1.0 已为 OS 及其上层客户端定义 MBIM_CID_PROVISIONED_CONTEXT 来管理调制解调器中的预配上下文,但 Windows 传统上只查询调制解调器中的上下文,而不从 OS 中设置上下文。 从 Windows 10 版本 1703 开始,OS 越来越需要能够在调制解调器中配置上下文。 例如,如果调制解调器中有一个对操作系统不透明的 IMS 堆栈,则 OS 应能够指定调制解调器应使用的 IMS APN。 由于每个调制解调器 IHV 都可以有自己的专有方式将上下文存储在调制解调器中,因此 OS 不可能按照 MBIM_CID_PROVISIONED_CONTEXT 建议的方式管理 ContextId 级别的配置文件。 相反,从 OS 的角度来看,为每种上下文类型指定使用哪个上下文更为重要。 回到 IMS 示例,无论调制解调器中有多少现有预配上下文,如果 OS 设置了 MBIM_CONTEXT_TYPE = IMS 的上下文,则调制解调器发起的所有 IMS 流量都应仅在该上下文上尝试。

MBIM 1.0 规定,MBIM_CID_PROVISIONED_CONTEXT 只能针对与插入的 SIM 卡的提供程序 ID(MCC/MNC 对)匹配的上下文调用查询。 对于设置请求,MBIM_CID_PROVISIONED_CONTEXT 可以指定要存储的上下文的提供程序 ID。 MBIM_CID_MS_PROVISIONED_CONTEXT_V2 指定与 MBIM 1.0 类似但不同的行为。 对于每个查询,OS 仍希望调制解调器仅返回与插入 SIM 卡的提供程序 ID 匹配的上下文。 对于设置,该命令将不再允许 OS 设置与 SIM 卡中当前提供程序 ID 不匹配的上下文。 预计设置请求将为所呈现 SIM 卡的当前提供程序 ID 创建上下文。 例如,用户从 SIM 卡 1 切换到 SIM 卡 2,然后再切换回 SIM 卡 1。 预计在第一次 SIM 交换期间,调制解调器应在加载 SIM 2 的上下文之前解析其所有上下文。 当用户切换回 SIM 卡 1 时,应还原 SIM 1 的工厂默认配置。 调制解调器预计不会在 SIM 卡交换过程中保存运行时配置。

下图演示了用户从一个 SIM 卡切换到另一个 SIM 卡时,然后返回第一个 SIM 卡时的示例流程。

调制解调器上下文预配 SIM 切换示例。

如果 OS 或用户希望将调制解调器中的上下文设置还原到原始设置,则预配置调制解调器的 OEM 和 IHV 应保留原始出厂配置。 仅应还原当前插入的 SIM 卡提供商 ID 的原始出厂上下文。 OS 的配置不应覆盖原始出厂设置预配置上下文。 下图是用户选择还原出厂设置时的示例流程:

调制解调器上下文配置出厂重置示例。

当 SIM 卡缺失、锁定或提供程序 ID 不可访问时,调制解调器应该会无法执行查询或设置请求。 调制解调器的每个提供程序 ID 的每个 CONTEXT_TYPE 只能有一个上下文。 如果 IHV 或 OEM 决定在调制解调器中预配置调制解调器上下文,请务必确保为它选择这样做的每个提供程序正确配置上下文。 如果插入的 SIM 卡没有 IHV 预配置上下文,则调制解调器在未配置 OS 的情况下不应有任何上下文。 IHV 和 OEM 必须确保 MBIM_MS_CONTEXT_SOURCE = MbimMsContextSourceModemProvisioned,以便 OS 将使用调制解调器的上下文进行连接(如果存在),并且不会从 Windows 的 APN 数据库覆盖它。

调制解调器映射如何处理上下文,并通过现有的 MBIM_CID_PROVISIONED_CONTEXT 返回它,这取决于每个 IHV,不在此文档的讨论范围之内。

新的 MBIM_CID_MS_PROVISONED_CONTEXT_V2 命令几乎与 MBIM 1.0 的现有 MBIM_CID_PROVISIONED_CONTEXT 命令完全相同,但添加了多个命令。 第一个允许 OS 启用或禁用与调制解调器中的上下文类型关联的上下文。 在调制解调器中禁用上下文时,调制解调器不应将存储的上下文用于与网络的任何连接,即使那些未识别到 OS 的上下文也是如此。 如果 OS 请求与调制解调器中的禁用上下文匹配的连接,调制解调器应立即拒绝该请求,而不会向网络发出信号。 匹配过程应匹配 MBIM_MS_CONTEXT_V2 结构中的所有字段。

MBIM 1.0 中的 MBIM_CONTEXT_IP_TYPE 结构仅用于 MBIM_CID_CONNECT。 在 MBIM_CID_MS_PROVISIONED_CONTEXT_V2 中,Microsoft 已将 IP 类型添加为每个上下文的参数之一。 如果未为给定上下文配置调制解调器,则调制解调器应报告 MBIMContextIPTypeDefault。

在 Windows 10 版本 1703 中,具有支持 MBIM_CID_MS_PROVISIONED_CONTEXT_V2 的新硬件,不会从第一方组件使用旧版 MBIM_CID_PROVISIONED_CONTEXT。 如果还有其他旧版客户端/OS 组件发送 MBIM_CID_PROVISIONED_CONTEXT,则调制解调器应像在 Windows 10 版本 1703 之前的 Windows 版本中那样返回结果。

查询

MBIM_MS_PROVISIONED_CONTEXTS_INFO 从 InformationBuffer 中的查询和设置完整消息返回。

对于查询,InformationBuffer 为 null。

设置

对于 Set,InformationBuffer 包含 MBIM_MS_SET_PROVISIONED_CONTEXT_V2 结构。 在设置操作中,由于每个调制解调器 IHV 都可以具有管理上下文存储的专有方式,因此 OS 不再指定 ContextId 字段,并且希望调制解调器将上下文映射到相应的槽。 当 OS 设置上下文时,它期望调制解调器将其用于与给定上下文 MBIM_CONTEXT_TYPE 匹配的所有连接。 如果调制解调器无法识别 MBIM_CONTEXT_TYPE,它仍应存储它,即使它可能未与其连接。

未经请求的事件

事件信息缓冲区包含 MBIM_MS_PROVISIONED_CONTEXTS_INFO_V2 结构。 在某些情况下,通过无线 (OTA) 或短消息服务 (SMS) 更新预配上下文列表,该服务不会通过 OS 中的 MBIM_CID_MS_PROVISIONED_CONTEXT_V2 命令。 该函数必须相应地更新预配的上下文列表和标记 MBIM_MS_CONTEXT_SOURCE = MbimMsContextSourceOperatorProvisioned。 之后,函数必须使用此事件与更新列表来通知主机有关更新的信息。

参数

操作 设置 查询 通知
命令 MBIM_SET_MS_PROVISIONED_CONTEXT_V2 不适用 不适用
响应 MBIM_MS_PROVISIONED_CONTEXT_INFO_V2 MBIM_MS_PROVISIONED_CONTEXT_INFO_V2 MBIM_MS_PROVISIONED_CONTEXT_INFO_V2

数据结构

查询

InformationBuffer 应为 NULL,InformationBufferLength 应为零。

设置

以下 MBIM_SET_MS_PROVISIONED_CONTEXT_V2 数据结构应在 InformationBuffer 中使用。

Offset 大小 字段 类型​​ 描述
0 4 操作 MBIM_MS_CONTEXT_OPERATIONS 指定使用 SET 命令的操作类型。 如果设置为 MbimMsContextOperationDelete,则应删除指定 MBIM_CONTEXT_TYPES 的上下文,并忽略 MBIM_SET_MS_PROVISIONED_CONTEXT_V2 中的所有其他字段。 如果设置为 MbimMsContextOperationRestoreFactory,则应删除所有 OS 创建或修改的上下文,应加载默认出厂预配置上下文,并且应忽略 MBIM_SET_MS_PROVISIONED_CONTEXT_V2 中的所有其他字段。
4 16 ContextType MBIM_CONTEXT_TYPES 指定要表示的上下文的类型;例如 Internet 连接、VPN(与企业网络的连接)或 IP 语音 (VOIP)。 有关详细信息,请参阅 MBIM_CONTEXT_TYPES 表。
20 4 IPType MBIM_CONTEXT_IP_TYPES 指定要表示的上下文的类型;例如 Internet 连接、VPN(与企业网络的连接)或 IP 语音 (VOIP)。 有关详细信息,请参阅 MBIM_CONTEXT_IP_TYPES 表。
24 4 启用 MBIM_MS_CONTEXT_ENABLE 指定调制解调器是否可以使用上下文。 如果它设置为 MbimMsContextDisabled,则与上下文匹配的任何 OS 连接请求都应失败,而不会向网络发出信号。 有关详细信息,请参阅 MBIM_MS_CONTEXT_ENABLE 表。
28 4 漫游 MBIM_MS_CONTEXT_ROAMING_CONTROL 指定是否允许对此上下文进行漫游。 有关详细信息,请参阅 MBIM_MS_CONTEXT_ROAMING_CONTROL 表。
32 4 MediaType MBIM_MS_CONTEXT_MEDIA_TYPE 指定上下文使用的媒体传输类型。 有关详细信息,请参阅 MBIM_MS_CONTEXT_MEDIA_TYPE 表。
36 4 Source MBIM_MS_CONTEXT_SOURCE 指定上下文的创建源。 有关详细信息,请参阅 MBIM_MS_CONTEXT_SOURCE 表。
40 4 AccessStringOffset OFFSET 数据缓冲区中用于访问网络的字符串 AccessString 的偏移量。 对于基于 GSM 的网络,这将是一个接入点名称 (APN) 字符串,例如“data.thephone-company.com”。 对于基于 CDMA 的网络,这可能是特殊的拨号代码,例如“#777”或网络访问标识符 (NAI),例如“foo@thephone-company.com”。 此成员可以为 NULL 以请求网络分配默认 APN。 注意:并非所有网络都支持此 NULL APN 约定,因此,由无效 APN 导致的连接失败是可能的结果。 字符串的大小不应超过 100 个字符。
44 4 AccessStringSize 大小 (0..200) 用于 AccessString 的大小。
48 4 UserNameOffset OFFSET 从此结构的开头计算到字符串 UserName(表示要进行身份验证的用户名)的偏移量(以字节为单位)。 此成员可以为 NULL。
52 4 UserNameSize 大小 (0..510) 用于 UserName 的大小。
56 4 PasswordOffset OFFSET 从此结构的开头计算到字符串 Password(表示用户的密码)的偏移量(以字节为单位)。 此成员可以为 NULL。
60 4 PasswordSize 大小 (0..510) 用于密码的大小。
64 4 压缩 MBIM_COMPRESSION 指定要在标头和数据的数据连接中使用的压缩。 此成员仅适用于基于 GSM 的设备。 主机将此成员设置为基于 CDMA 的设备 MBIMCompressionNone。 有关详细信息,请参阅 MBIM_COMPRESSION 表。
68 4 AuthProtocol MBIM_AUTH_PROTOCOL 用于 PDP 激活的身份验证类型。 有关详细信息,请参阅 MBIM_AUTH_PROTOCOL 表。
72 4 DataBuffer DATABUFFER 包含 AccessString、UserName 和 Password 的数据缓冲区。

上表中使用了以下数据结构。

MBIM_MS_CONTEXT_ROAMING_CONTROL 指定每个上下文漫游策略。 OS 可以指定在漫游期间是否可以启用给定上下文。 如果漫游状态不满足指定条件,则调制解调器不应在没有 OS 干预的情况下自行激活上下文。 如果调制解调器不支持合作伙伴,则应将所有合作伙伴配置视为等效于家庭。

类型 说明
MbimMsContextRoamingControlHomeOnly 0 指示是否只允许在家庭网络中使用上下文。
MbimMsContextRoamingControlPartnerOnly 1 指示是否只允许在合作伙伴漫游网络中使用上下文。
MbimMsContextRoamingControlNonPartnerOnly 2 指示是否只允许在非合作伙伴漫游网络中使用上下文。
MbimMsContextRoamingControlHomeAndPartner 3 指示是否允许在家庭和合作伙伴漫游网络中使用上下文。
MbimMsContextRoamingControlHomeAndNonPartner 4 指示是否允许在家庭和非合作伙伴漫游网络中使用上下文。
MbimMsContextRoamingControlPartnerAndNonPartner 5 指示是否允许在合作伙伴和非合作伙伴漫游网络中使用上下文。
MbimMsContextRoamingControlAllowAll 6 指示是否允许在任意漫游条件中使用上下文。

MBIM_MS_CONTEXT_MEDIA_TYPE 已添加,以便指定在将来的平台支持 Wi-Fi 卸载时,上下文是否用于手机网络或 iWLAN。 例如,如果将上下文设置为蜂窝网络,并且调制解调器当前处于 Wi-Fi 卸载状态,则它不应使用该上下文启动连接。

类型 说明
MbimMsContextMediaTypeCellularOnly 0 指示是否仅允许在通过蜂窝网络注册时使用上下文。
MbimMsContextMediaTypeWifiOnly 1 指示是否仅在通过 iWLAN (Wi-Fi 卸载)注册时才允许使用上下文。
MbimMsContextMediaTypeAll 2 指示在通过蜂窝网络或 Wi-Fi 注册时是否允许使用上下文。

MBIM_MS_CONTEXT_ENABLE 指定启用或禁用上下文。

类型 说明
MbimMsContextDisabled 0 已配置的上下文已禁用。 调制解调器不应从 OS 和本身在此上下文上启用激活。
MbimMsContextEnabled 1 配置的上下文已启用。 如果满足其他条件,则可以启用上下文;例如,如果不允许漫游,则不应在漫游期间启用上下文。

添加了 MBIM_MS_CONTEXT_SOURCE,使 OS 能够了解调制解调器上下文的创建方式。 这有助于 OS 在各种情况(如恢复出厂设置)后正常运行,因此它可以知道应保留哪些内容,以及应根据各种操作员要求返回到默认状态的内容。

类型 说明
MbimMsContextSourceAdmin 0 上下文由 OS 中的企业 IT 管理员创建。
MbimMsContextSourceUser 1 上下文是由用户通过 OS 设置创建的。
MbimMsContextSourceOperator 2 上下文是由运算符通过 OMA-DM 或其他通道创建的。
MbimMsContextSourceModem 3 上下文是由调制解调器固件随附的 IHV 或 OEM 创建的。
MbimMsContextSourceDevice 4 上下文由 OS APN 数据库创建。

MBIM_MS_CONTEXT_OPERATIONS 指定 OS 可以在调制解调器中配置上下文的操作。

类型 说明
MbimMsContextOperationDefault 0 默认操作,包括添加或替换调制解调器中的现有上下文。
MbimMsContextOperationDelete 1 删除操作要求调制解调器删除调制解调器中的现有上下文。
MbimMsContextOperationRestoreFactory 2 还原当前插入的 SIM 卡的提供程序 ID 的工厂预配置上下文。 应删除或替换由 OS 替换或创建的所有上下文。 如果没有当前插入的 SIM 提供程序 ID 的默认预配置 OS 上下文,则应删除调制解调器中的预配上下文。

MBIM 1.0 的原始 MBIM_CONTEXT_TYPES 仍然有效。 自 MBIM 1.0 定义以来,由于引入了更多类型的上下文,微软正在添加其他上下文类型。 下表定义了要引入的新类型。 IHV 和 OEM 可以使用其他唯一 UUID 值定义其他专有上下文类型,这些值不能由操作系统自行识别。

类型 说明
MBIMMsContextTypeAdmin 5f7e4c2e-e80b-40a9-a239-f0abcfd11f4b 上下文用于管理目的,例如设备管理。
MBIMMSContextTypeApp 74d88a3d-dfbd-4799-9a8c-7310a37bb2ee 上下文用于移动运营商允许列出的某些应用程序。
MBIMMsContextTypeXcap 50d378a7-baa5-4a50-b872-3fe5bb463411 上下文用于 IMS 服务的 XCAP 预配。
MBIMMsContextTypeTethering 5e4e0601-48dc-4e2b-acb8-08b4016bbaac 上下文用于移动热点连接。
MBIMMsContextTypeEmergencyCalling 5f41adb8-204e-4d31-9da8-b3c970e360f2 上下文用于 IMS 紧急呼叫。
响应

以下 MBIM_MS_PROVISIONED_CONTEXT_INFO_V2 结构应在 InformationBuffer 中使用。

Offset 大小 字段 类型​​ 描述
0 4 ElementCount (EC) UINT32 DataBuffer 中后面的 MBIM_MS_CONTEXT_V2 结构计数。
4 8 * EC MsProvisionedContextV2RefList OL_PAIR_LIST 对的第一个元素是一个 4 字节的偏移量(以字节为单位),从此 MBIM_MS_PROVISIONED_CONTEXTS_INFO_V2 结构的开头(偏移量 0)计算到 MBIM_MS_CONTEXT_V2 结构(更多信息,请参见 MBIM_MS_CONTEXT_V2 表)。 对的第二个元素是指向相应 MBIM_MS_CONTEXT_V2 结构的指针的 4 字节大小。
4 + 8 * EC DataBuffer DATABUFFER MBIM_MS_CONTEXT_V2 结构的数组。

上表中使用的 MBIM_MS_CONTEXT_V2 提供有关给定上下文的信息。

Offset 大小 字段 类型​​ 描述
0 4 ContextId UINT32 此上下文的唯一 ID。
4 16 ContextType MBIM_CONTEXT_TYPES 指定要表示的上下文的类型;例如 Internet 连接、VPN(与企业网络的连接)或 IP 语音 (VOIP)。 设备应为空或未预配的上下文指定 MBIMContextTypeNone。 有关详细信息,请参阅 MBIM_CONTEXT_TYPES 表。
20 4 IPType MBIM_CONTEXT_IP_TYPES 有关详细信息,请参阅 MBIM_CONTEXT_IP_TYPES 表。
24 4 启用 MBIM_MS_CONTEXT_ENABLE 指定调制解调器是否可以使用上下文。 如果它设置为 MbimMsContextDisabled,则与上下文匹配的任何 OS 连接请求都应失败,而不会向网络发出信号。 有关详细信息,请参阅 MBIM_MS_CONTEXT_ENABLE 表。
28 4 漫游 MBIM_MS_CONTEXT_ROAMING_CONTROL 指定是否允许对此上下文进行漫游。 有关详细信息,请参阅 MBIM_MS_CONTEXT_ROAMING_CONTROL 表。
32 4 MediaType MBIM_MS_CONTEXT_MEDIA_TYPE 指定上下文使用的媒体传输类型。 有关详细信息,请参阅 MBIM_MS_CONTEXT_MEDIA_TYPE 表。
36 4 Source MBIM_MS_CONTEXT_SOURCE 指定上下文的创建源。 有关详细信息,请参阅 MBIM_MS_CONTEXT_SOURCE 表。
40 4 AccessStringOffset OFFSET 数据缓冲区中用于访问网络的字符串 AccessString 的偏移量。 对于基于 GSM 的网络,这将是一个接入点名称 (APN) 字符串,例如“data.thephone-company.com”。 对于基于 CDMA 的网络,这可能是特殊的拨号代码,例如“#777”或网络访问标识符 (NAI),例如“foo@thephone-company.com”。 此成员可以为 NULL 以请求网络分配默认 APN。 注意:并非所有网络都支持此 NULL APN 约定,因此,由无效 APN 导致的连接失败是可能的结果。 字符串的大小不应超过 100 个字符。
44 4 AccessStringSize 大小 (0..200) 用于 AccessString 的大小。
48 4 UserNameOffset OFFSET 从此结构的开头计算到字符串 UserName(表示要进行身份验证的用户名)的偏移量(以字节为单位)。 此成员可以为 NULL。
52 4 UserNameSize 大小 (0..510) 用于 UserName 的大小。
56 4 PasswordOffset OFFSET 从此结构的开头计算到字符串 Password(表示用户的密码)的偏移量(以字节为单位)。 此成员可以为 NULL。
60 4 PasswordSize 大小 (0..510) 用于密码的大小。
64 4 压缩 MBIM_COMPRESSION 指定要在标头和数据的数据连接中使用的压缩。 此成员仅适用于基于 GSM 的设备。 主机将此成员设置为基于 CDMA 的设备 MBIMCompressionNone。 有关详细信息,请参阅 MBIM_COMPRESSION 表。
68 4 AuthProtocol MBIM_AUTH_PROTOCOL 用于 PDP 激活的身份验证类型。 有关详细信息,请参阅 MBIM_AUTH_PROTOCOL 表。
72 DataBuffer DATABUFFER 包含 AccessString、UserName 和 Password 的数据缓冲区。
通知

有关详细信息,请参阅 MBIM_MS_PROVISIONED_CONTEXT_V2 表。

状态代码

对于查询和设置操作:

状态代码 说明
MBIM_STATUS_READ_FAILURE 操作失败,因为设备无法检索预配的上下文。
MBIM_STATUS_NO_DEVICE_SUPPORT 操作失败,因为设备不支持该操作。

仅适用于设置操作:

状态代码 说明
MBIM_STATUS_INVALID_PARAMETERS 由于参数无效,操作失败。
MBIM_STATUS_WRITE_FAILURE 操作失败,因为更新请求失败。

使用预配上下文初始化设备

初始化使用预配上下文的非 SIM 锁定 GPRS 设备

下图表示基于 GSM 的 MB 设备的最佳用户体验。 开箱即用的体验无需用户配置。 假设设备配置为自动选择要注册的网络。 粗体中的标签表示 OID 标识符或事务流控制。 常规文本中的标签表示 OID 结构中的重要标志。

说明基于 gsm 的 mb 设备初始化序列的关系图。

要初始化未锁定 SIM 卡的 GSM 设备,请执行以下步骤:

  1. MB 服务向微型端口驱动程序发送异步(非阻止)OID_WWAN_READY_INFO 查询请求,以识别设备的就绪状态。 微型端口驱动程序使用已收到请求的临时确认 (NDIS_STATUS_INDICATION_REQUIRED) 进行响应,并将在将来发送包含所请求信息的通知。

  2. 微型端口驱动程序向 MB 服务发送 NDIS_STATUS_WWAN_READY_INFO 通知,该通知向 MB 服务指示 MB 设备的状态为 WwanReadyStateInitialized

  3. MB 服务向微型端口驱动程序发送异步(非阻止)OID_WWAN_REGISTER_STATE 查询请求,以标识设备的注册状态。 微型端口驱动程序使用已收到请求的临时确认 (NDIS_STATUS_INDICATION_REQUIRED) 进行响应,并将在将来发送包含所请求信息的通知。

  4. 微型端口驱动程序向 MB 服务发送 NDIS_STATUS_WWAN_REGISTER_STATE 通知,指示设备的注册模式为 WwanRegistraterModeAutomatic,其当前注册状态为 WwanRegisterStateSearching

  5. 稍后,当设备注册到网络提供商时,微型端口驱动程序会向 MB 服务发送未经请求的 NDIS_STATUS_WWAN_REGISTER_STATE 通知,指示设备的当前注册状态为 WwanRegisterStateHome

  6. 设备尝试附加数据包服务。 当数据包服务状态更改为附加时,微型端口驱动程序会将未经请求的 NDIS_STATUS_WWAN_PACKET_SERVICE 通知发送到 MB 服务,该通知指示已附加数据包服务并且当前数据类为 WWAN_DATA_CLASS_GPRS

  7. MB 服务向微型端口驱动程序发送异步(非阻止)OID_WWAN_HOME_PROVIDER 查询请求,以检索主提供程序信息。 微型端口驱动程序使用已收到请求的临时确认 (NDIS_STATUS_INDICATION_REQUIRED) 进行响应,并将在将来发送包含所请求信息的通知。

  8. 微型端口驱动程序将 NDIS_STATUS_WWAN_HOME_PROVIDER 通知发送到 MB 服务,指示主提供商的详细信息。

  9. MB 服务向微型端口驱动程序发送异步(非阻止)OID_WWAN_PROVISIONED_CONTEXTS 查询请求,以检索预配上下文列表。 微型端口驱动程序使用已收到请求的临时确认 (NDIS_STATUS_INDICATION_REQUIRED) 进行响应,并将在将来发送包含所请求信息的通知。

  10. 微型端口驱动程序将 NDIS_STATUS_WWAN_PROVISIONED_CONTEXTS 通知发送到包含 WWAN_CONTEXT 结构列表的 MB 服务。

  11. MB 服务向微型端口驱动程序发送异步(非阻止)OID_WWAN_CONNECT 设置请求以激活数据包数据协议 (PDP) 上下文。 微型端口驱动程序使用已收到请求的临时确认 (NDIS_STATUS_INDICATION_REQUIRED) 进行响应,并将在将来发送包含所请求信息的通知。

  12. 微型端口驱动程序将 NDIS_STATUS_WWAN_CONTEXT_STATE 通知发送到 MB 服务,指示已激活 PDP 上下文。

  13. 微型端口驱动程序发送 NDIS_STATUS_LINK_STATE 通知,指示媒体连接状态为 MediaConnectStateConnected

初始化使用预配上下文的 CDMA 数据包设备

下图演示了基于 CDMA 的设备的最佳用户体验。 开箱即用的体验无需用户配置。 此方案假定尚未激活基于 CDMA 的帐户。 与基于 GSM 的设备不同,基于 CDMA 的设备会在激活完成后自动开始注册网络。 粗体标签是 OID 标识符或事务流控制。 常规文本中的标签是 OID 结构中的重要标志。

说明基于 cdma 的移动宽带设备初始化序列的关系图。

若要使用预配的上下文初始化基于 CDMA 的数据包设备,请执行以下步骤:

  1. MB 服务将异步(非阻止)OID_WWAN_READY_INFO 发送到微型端口驱动程序。 微型端口驱动程序使用已收到请求的临时确认 (NDIS_STATUS_INDICATION_REQUIRED) 进行响应,并将在将来发送包含所请求信息的通知。

  2. 微型端口驱动程序将 NDIS_STATUS_WWAN_FAILURE 发送到 MB 服务。

  3. MB 服务将异步(非阻止)OID_WWAN_SERVICE_ACTIVATION 发送到微型端口驱动程序。 微型端口驱动程序使用已收到请求的临时确认 (NDIS_STATUS_INDICATION_REQUIRED) 进行响应,并将在将来发送包含所请求信息的通知。

  4. 微型端口驱动程序将 NDIS_STATUS_WWAN_SUCCESS 发送到 MB 服务。

  5. 微型端口驱动程序将 NDIS_STATUS_WWAN_REGISTER_STATE 发送到 MB 服务。

  6. 微型端口驱动程序将 NDIS_STATUS_WWAN_REGISTER_STATE 发送到 MB 服务。

  7. 微型端口驱动程序将 NDIS_STATUS_WWAN_PACKET_SERVICE 发送到 MB 服务。

  8. MB 服务将异步(非阻止)OID_WWAN_HOME_PROVIDER 发送到微型端口驱动程序。 微型端口驱动程序使用已收到请求的临时确认 (NDIS_STATUS_INDICATION_REQUIRED) 进行响应,并将在将来发送包含所请求信息的通知。

  9. 微型端口驱动程序将 NDIS_STATUS_WWAN_SUCCESS 发送到 MB 服务。

  10. MB 服务将异步(非阻止)OID_WWAN_PROVISIONED_CONTEXTS 发送到微型端口驱动程序。 微型端口驱动程序使用已收到请求的临时确认 (NDIS_STATUS_INDICATION_REQUIRED) 进行响应,并将在将来发送包含所请求信息的通知。

  11. 微型端口驱动程序将 NDIS_STATUS_WWAN_SUCCESS 发送到 MB 服务。

  12. MB 服务将异步(非阻止)OID_WWAN_PROVISIONED_CONTEXTS 发送到微型端口驱动程序。 微型端口驱动程序使用已收到请求的临时确认 (NDIS_STATUS_INDICATION_REQUIRED) 进行响应,并将在将来发送包含所请求信息的通知。

  13. 微型端口驱动程序将 NDIS_STATUS_WWAN_SUCCESS 发送到 MB 服务。

  14. 微型端口驱动程序将 NDIS_STATUS_LINK_STATE 发送到 MB 服务。

另请参阅

MB 设备就绪状态