OID_WAN_CO_GET_INFO
OID_WAN_CO_GET_INFO OID 请求微型端口驱动程序返回信息,该信息适用于其 NIC 上) 的所有虚拟连接 (VC。 此信息在NDIS_WAN_CO_INFO结构中返回,定义如下。
typedef struct _NDIS_WAN_CO_INFO {
OUT ULONG MaxFrameSize;
OUT ULONG MaxSendWindow;
OUT ULONG FramingBits;
OUT ULONG DesiredACCM;
} NDIS_WAN_CO_INFO, *PNDIS_WAN_CO_INFO;
此结构的成员包含以下信息:
MaxFrameSize
指定微型端口驱动程序可以发送和接收的任何网络数据包的最大帧大小。 此值应排除微型端口驱动程序自己的帧开销和/或 PPP HDLC 开销。 通常此值约为 1500。
但是,所有 CoNDIS WAN 微型端口驱动程序都应使用比为此 OID 返回的值大 32 字节的内部 MaxFrameSize 。 例如,为此 OID 返回 1500 的 CoNDIS WAN 微型端口驱动程序应在内部接受并发送最多 1532。 此类微型端口驱动程序随时可以支持将来的桥接和其他协议。
MaxSendWindow
指定 CoNDIS WAN 微型端口驱动程序可在 VC 上处理的最大未完成数据包数。 此成员必须至少设置为一个。
NDISWAN 驱动程序使用此成员的值作为在 NDISWAN 保留发送数据包之前向微型端口驱动程序的 MiniportCoSendPackets 函数发送请求中提交的数据包数的限制。 这些数据包将排队,直到微型端口驱动程序完成未完成的发送。 微型端口驱动程序可以使用微型端口驱动程序传递给 NdisMCoIndicateStatus 的 WAN_CO_LINKPARAMS 结构中的 SendWindow 成员,根据每个 VC 动态调整此值。 NDISWAN 使用当前 SendWindow 值作为对未完成发送的限制。 如果微型端口驱动程序将 SendWindow 设置为零,则 NDISWAN 必须停止为特定 VC 发送数据包。 也就是说,微型端口驱动程序指定关闭发送窗口,这实际上指定它不能接受来自 NDISWAN 的任何数据包。
由于 CoNDIS WAN 微型端口驱动程序必须在内部对数据包进行排队, 因此 MaxSendWindow 的值理论上是 uLONG) (最大值 。 但是,此驱动程序确定的值应反映 NIC 的链接速度或硬件功能。 例如,如果微型端口驱动程序的 NIC 始终具有至少四个数据包的空间,则微型端口驱动程序会将 MaxSendWindow 设置为 4,以便可以立即将任何传入到 MiniportCoSendPackets 的数据包放置在硬件上。
FramingBits
一个 32 位值,该值指定指定微型端口驱动程序支持的帧类型的位掩码。 微型端口驱动程序可以使用二进制 OR 运算符指定以下值的组合:
RAS_FRAMING
仅当微型端口驱动程序可以检测到较旧的 RAS 帧时设置。 只有支持早期 RAS 框架的旧驱动程序才会设置此标志。
RAS_COMPRESSION
仅当微型端口驱动程序支持较旧的 RAS 压缩方案时设置。
PPP_FRAMING
应始终设置。 指示微型端口驱动程序可以检测并支持其中等类型的 PPP 框架。
PPP_COMPRESS_ADDRESS_CONTROL
设置微型端口驱动程序是否支持 PPP 地址和控制字段压缩。
如果协商此 LCP 选项,NDISWAN 将删除地址和控制字段。 某些 WAN 介质类型(如 X.25)不支持此选项。
PPP_COMPRESS_PROTOCOL_FIELD
如果微型端口驱动程序支持 PPP 协议字段压缩,则设置 。
如果协商此 LCP 选项,则 NDISWAN 将从协议字段中删除一个字节(如果适用)。
PPP_ACCM_SUPPORTED
如果微型端口驱动程序支持异步控制字符映射,则设置 。 此位仅对异步媒体(如调制解调器)有效。 如果设置了此位, 则 DesiredACCM 成员应有效。
PPP_MULTILINK_FRAMING
如果微型端口驱动程序支持 IETF RFC 1717 中指定的多链路框架,则设置 。
PPP_SHORT_SEQUENCE_HDR_FORMAT
如果微型端口驱动程序支持 IETF RFC 1717 中指定的多链接帧的标头格式,则设置 。
SLIP_FRAMING
设置微型端口驱动程序是否可以检测并支持 SLIP 框架 (异步微型端口驱动程序仅) 。
SLIP_VJ_COMPRESSION
设置微型端口驱动程序是否可以支持 VAN Jacobsen TCP/IP 标头压缩的 SLIP。 NDISWAN 支持具有 16 个槽) 的SLIP_VJ_COMPRESSION (。 支持 SLIP 帧的异步媒体 (串行微型端口驱动程序) 应设置此位。
异步媒体无需编写任何代码来支持 VJ 标头压缩。 NDISWAN 会处理它。
SLIP_VJ_AUTODETECT
设置微型端口驱动程序是否可以自动检测 VAN Jacobsen TCP/IP 标头压缩的 SLIP。 NDISWAN 将自动检测 VJ 标头压缩。 异步媒体 (串行微型端口驱动程序) 应设置此位(如果它们支持 SLIP 帧)。
TAPI_PROVIDER
如果微型端口驱动程序支持 TAPI 服务提供商 OID,请设置 。 除非设置了此位,否则不会对微型端口驱动程序进行 TAPI OID 调用。
MEDIA_NRZ_ENCODING
如果微型端口驱动程序支持 NRZ 编码,则设置某些媒体类型(如 ISDN)的 PPP 默认值。 保留此值供将来使用。
MEDIA_NRZI_ENCODING
如果微型端口驱动程序支持 NRZI 编码,则设置 。 保留此值供将来使用。
MEDIA_NLPID
如果微型端口驱动程序具有 并且可以在其帧中设置 NLPID,则设置 。 保留此值供将来使用。
RFC_1356_FRAMING
如果微型端口驱动程序支持 IETF RFC 1356 X.25 和 ISDN 帧,则设置 。 保留此值供将来使用。
RFC_1483_FRAMING
如果微型端口驱动程序支持 IETF RFC 1483 ATM 适配第 5 层封装,请设置 。 保留此值供将来使用。
RFC_1490_FRAMING
如果微型端口驱动程序支持 IETF RFC 1490 帧中继帧,则设置 。 保留此值供将来使用。
NBF_PRESERVE_MAC_ADDRESS
如果微型端口驱动程序支持“PPP NETBIOS 帧控制协议 (NBFCP) ”草案中指定的 IETF 框架,则设置 。
SHIVA_FRAMING
被NBF_PRESERVE_MAC_ADDRESS取代。
PASS_THROUGH_MODE
如果微型端口驱动程序执行自己的框架,则设置 。 如果设置了此标志,NDISWAN 将传递未解释和未修改的帧。
微型端口驱动程序必须处于默认的 PPP 帧模式,直到每个微型端口驱动程序收到 OID_WAN_CO_SET_LINK_INFO 请求。 微型端口驱动程序必须自动检测它声称支持的任何帧。
例如,支持旧 RAS 帧的微型端口驱动程序必须从 PPP 帧自动检测 RAS 帧。 如果微型端口驱动程序检测到非默认帧方案,该微型端口驱动程序应自动将其帧切换到新检测到的帧中。
具有 OID_WAN_CO_GET_LINK_INFO 的后续查询应指示检测到的帧。 如果尚未检测到任何帧,则返回NDIS_WAN_CO_GET_LINK_INFO信息中的 FramingBits 应为零。
如果随后使用 FramingBits 成员为零OID_WAN_CO_SET_LINK_INFO调用 WAN 微型端口驱动程序,则微型端口驱动程序应尝试在接收每个帧时自动检测帧。
DesiredACCM
异步控件字符映射是协商的。 此成员仅与异步媒体类型相关。
要求
版本 |
支持 Windows Vista 中的 NDIS 6.0 和 NDIS 5.1 驱动程序。 支持 Windows XP 中的 NDIS 5.1 驱动程序。 |
标头 |
Ntddndis.h (包括 Ndis.h) |