标头版本的 NDIS 支持概述

许多 NDIS 结构都包含结构版本信息。 NDIS 或 NDIS 驱动程序在每个结构所需的此类结构中初始化 标头 成员。 NDIS 驱动程序在访问结构成员之前,应在每个结构中检查版本信息(如果有)。

标头成员是一个NDIS_OBJECT_HEADER结构。 此结构包含包含 Header 成员的结构的修订号、类型和大小。

包含 标头 成员的结构满足以下要求:

  • 如果将新信息添加到新 NDIS 版本的成员列表中,结构将具有新的修订值。 例如,如果结构的 NDIS 6.1 版本在成员列表的末尾、联合或位掩码中具有新成员,则其修订值与 NDIS 6.0 版本不同。

  • 更改结构后,结构的后续修订大小可以等于或大于结构的早期修订的大小,但不会更小。 如果新大小大于早期修订的大小,则会在成员列表的末尾添加新成员。

  • 仅当以前的修订信息仍然有效且完整时,结构才会有新的修订。 也就是说,新版本的结构包含较旧版本成员的超集。 注意 如果无法满足上述任何条件,则 NDIS 会提供一个具有新名称的新结构,该名称将替换现有结构,而不是提供现有结构的修订版本。

  • NDIS 驱动程序应始终使用预定义的修订值。 NDIS 分别以Xxx_REVISION_Nn和NDIS_SIZEOF_Xxx_REVISION_Nn的形式为NDIS_OBJECT_HEADER修订成员和大小成员提供此类定义。 此外,Xxx 表示结构的名称,Nn 是修订号。 例如, NDIS_FILTER_PARTIAL_CHARACTERISTICS 结构第一个修订版本的修订和大小分别NDIS_FILTER_PARTIAL_CHARACTERISTICS_REVISION_1和NDIS_SIZEOF_FILTER_PARTIAL_CHARACTERISTICS_REVISION_1。

  • Header.Size 值必须与 Header.Revision 值一致。 也就是说,如果 Revision 成员包含Xxx_REVISION_1, 则 Size 成员值必须等于或大于 NDIS_SIZEOF_Xxx_REVISION_1。

NDIS 版本概述

指定 NDIS 版本信息