MB/NDIS 6.20 接口概述

本主题旨在提供有关 NDIS 6.20 规范 的足够背景,以便将 MB 驱动程序模型置于透视中。 它不用作 NDIS 6.20 的参考。 如果此内容与 NDIS 6.20 规范之间存在差异,请参阅 NDIS 6.20 文档以获取完整信息。

在 NDIS 6.20 中,MB 服务调用 NdisOidRequest 向微型端口驱动程序发出 OID 请求。 然后,微型端口驱动程序调用 NdisMIndicateStatusEx ,将数据返回给 MB 服务。

NDIS 6.20 支持以下类型的 OID 操作:

  • 设置 将数据从服务发送到微型端口驱动程序的操作。

  • 请求 微型端口驱动程序将数据返回给服务的查询操作。

  • 方法操作,等效于函数调用,具有输入参数和输出参数。

最后,微型端口驱动程序可能会发送包含数据的 指示 ,以通知服务有关 MB 设备中的状态更改。

接收 查询 请求

MB 微型端口驱动程序实现 MiniportOidRequest NDIS 处理程序,以响应 设置 请求和 查询 请求。

发送状态指示

微型端口驱动程序通过调用 NdisMIndicateStatusEx 向 MB 服务提供状态指示。 有关状态指示的更多详细信息,请参阅 NDIS_STATUS_INDICATION 结构。

连接状态指示

NDIS 6.20 微型端口驱动程序必须使用 NDIS_STATUS_LINK_STATE 状态指示来通知 NDIS 和过分的驱动程序传输介质的物理特性发生了变化。

NDIS_STATUS_INDICATION 结构的 StatusBuffer 成员是 一个NDIS_LINK_STATE 结构,它指定传输介质的物理状态。

如果介质的物理状态没有变化,MB 微型端口驱动程序应避免发送NDIS_STATUS_LINK_STATUS状态指示。 但是,不一定需要微型端口驱动程序来避免发送此状态指示。

MB 微型端口驱动程序必须报告当前连接的数据类的最大数据速率。 连接时数据类的更改必须生成连接状态指示,并报告相应的数据速率。 下面是此规则的建议实现:

  1. 符合此规范的 MB 微型端口驱动程序必须使用 NDIS_STATUS_LINK_STATE 来指示连接状态更改,而不是NDIS_STATUS_MEDIA_CONNECT、NDIS_STATUS_MEDIA_DISCONNECT或NDIS_STATUS_LINK_SPEED_CHANGE (,如 NDIS 5.1) 中的连接状态指示。

  2. NDIS_LINK_STATE 结构的 XmitLinkSpeedRcvLinkSpeed 成员不得报告NDIS_LINK_SPEED_UNKNOWN。 微型端口驱动程序必须使用下表中的信息报告速度。

对于基于 GSM 的 MB 设备速度链接

数据类 XmitLinkSpeed RcvLinkSpeed

GPRS

8 到 48 kbps

8 到 48 kbps

EDGE

8 到 220 kbps

8 到 220 kbps

UMTS

64 到 384 kbps

64 到 384 kbps

HSDPA

64 到 5.76 mbps

1.8 到 14.4 mbps

HSUPA

1.4 到 5.76 mbps

64 kbps 到 7.2 mbps

对于基于 CDMA 的 MB 设备速度链接

数据类 XmitLinkSpeed RcvLinkSpeed
1xRTT 115.2 kbps 到 307.2 kbps 153.6 kbps 到 3 mbps
3xRTT 614 kbps 到 1.04 mbps 307.2 kbps 到 1.04 mbps
1xEV-DO 153.6 kbps 2.4 mbps
1xEvDO Rev. A. 1.8 mbps 3.1 mbps
1xEV-DV 1.8 mbps 3.1 mbps
1xEvDO Rev. B. 27 mbps 3.1 mbps 到 73.5 mbps

注意 MB 设备应报告上表所示速度范围内的速度。

与 NDIS 5.1 不同,不同的链接状态更改指示通过使用NDIS_LINK_STATE数据结构合并到单个NDIS_STATUS_LINK_STATE指示中。 根据下表中的信息,可以将 NDIS 5.1 指示映射到此结构。 在链路速度更改的情况下,指示的使用者应将传输和接收速度值与其为先前指示记录的传输和接收速度值进行比较,以确定是否发生了链路速度变化。

从 NDIS 5.1 到 6.x 的连接状态指示映射

NDIS 5.1 指示 NDIS 6.x NDIS_LINK_STATE 数据结构 参数值 NDIS_STATUS_MEDIA_CONNECT

MediaConnectState

MediaConnectStateConnected

NDIS_STATUS_MEDIA_DISCONNECT

MediaConnectState

MediaConnectStateDisconnected

NDIS_STATUS_LINK_SPEED_CHANGE

XmitLinkSpeed

传输速度 (bps)

RcvLinkSpeed

接收速度 (bps)