MB NITZ 支持

概述

从 Windows 10 版本 1903 开始,Windows 支持移动宽带 (MBB) 设备的 OS 级别的网络标识和时区 (NITZ) 。 在早期版本的 Windows 中,OS 级别唯一可用的网络时间是网络时间协议 (NTP) ,即使所有符合 3GPP 的调制解调器在调制解调器级别都支持 NITZ。 借助 NITZ 支持,Windows 能够接收来自调制解调器的未经请求的 NITZ 通知,并发布必要的事件来通知使用者 NITZ 时间戳。

对于 MBIM 函数,无需进行与 NITZ 相关的其他设置和预配。 只要通过手机网络持有者建立数据连接,调制解调器就可以在从网络收到 NITZ 时间戳时通知 OS。 调制解调器可以根据移动运营商自己定义的节奏和计划,在 3GPP 规范内从网络基础结构接收 NITZ 通知。 NITZ 通知是未经请求的。 收到 NITZ 通知后,OS 会发布 NITZ 数据可用的通知。

NDIS 接口扩展

以下 OID 已定义为支持 NITZ。

MBIM 服务和 CID 值

服务名称 UUID UUID 值
Microsoft 语音扩展 UUID_VOICEEXTENSIONS 8d8b9eba-37be-449b-8f1e-61cb034a702e

下表指定每个 CID 的 UUID 和命令代码,以及 CID 是否支持 Set、Query 或 Event (通知) 请求。 有关其参数、数据结构和通知的详细信息,请参阅本主题中每个 CID 的各个部分。

CID UUID 命令代码 设置 查询 通知
MBIM_CID_NITZ UUID_VOICEEXTENSIONS 10 N Y Y

MBIM_CID_NITZ

参数

Operation 设置 查询 通知
命令 不适用 不适用 不适用
响应 不适用 MBIM_NITZ_INFO MBIM_NITZ_INFO

查询

查询当前网络时间。 不使用 MBIM_COMMAND_MSG 的 InformationBuffer。 MBIM_COMMAND_DONE的 InformationBuffer 中使用以下MBIM_NITZ_INFO结构。

MBIM_NITZ_INFO

Offset 大小 字段 类型 说明
0 4 Year UINT32 以整数表示的年份。 例如 ,2014
4 4 Month UINT32 月份 (1..12) ,其中 January == 1。
8 4 UINT32 月中的日期, (1..31) 。
12 4 小时 UINT32 小时, (0..23) 。
16 4 Minute UINT32 分钟, (0..59) 。
20 4 Second UINT32 第二个, (0..59) 。
24 4 TimeZoneOffsetMinutes UINT32 从 UTC 开始的时区偏移量(以分钟为单位)。 此值包括夏令时当前状态的任何调整。 当时区信息不可用时,此值应设置为0xFFFFFFFF。
28 4 DaylightSavingTimeOffsetMinutes UINT32 夏令时偏移量(以分钟为单位)。 当夏令时不可用时,此值应设置为0xFFFFFFFF。
32 4 DataClasses UINT32 此网络支持的数据类。 如果此信息不可用,则此字段应设置为 MBIMDataClassNone。

设置

不适用。

响应

MBIM_COMMAND_DONE 中的 InformationBuffer 包含MBIM_NITZ_INFO结构。

未经请求的事件

此主动事件提供当前网络时间和时区信息。

状态代码

此 CID 仅使用 MBIM 规范修订版 1.0 第 9.4.5 节中定义的泛型状态代码。

OID 定义

硬件实验室工具包 (HLK) 测试

请参阅 安装 HLK 的步骤

在 HLK Studio 中连接到设备手机网络调制解调器驱动程序并运行测试: TestNitzInfo - GSM

手动测试

[NITZ]在手机网络上漫游时的时间更新

  1. 将 Cobalt 设备置于禁用“手机网络”的 RF 笼中。
  2. 启用飞行模式。
  3. 禁用以太网和所有其他连接。
  4. 将时间模式设置为手动。
  5. 将时间设置为 2016 年 10 月 15 日上午 11:15 UTC。
  6. 验证时间是否设置为系统托盘中给定的值。
  7. 将时间模式设置为自动。
  8. 打开“手机网络”。
  9. 等待设备从模拟的手机网络基地台接收 NITZ 信息。
  10. 验证时间是否设置为模拟的基地台发送的值。