共用方式為


NDIS 對標頭版本的支援概觀

許多 NDIS 結構包括結構版本資訊。 NDIS 或 NDIS 驅動程式會根據每個結構的需求初始化 標頭中的 成員。 NDIS 驅動程式在存取結構成員之前,應該先檢查每個結構中的版本資訊,如果有的話。

Header 成員是 NDIS_OBJECT_HEADER 結構。 此結構包含包含 Header 成員的修訂編號、類型和大小。

包含 標頭 成員的結構符合下列需求:

  • 如果新的資訊新增至新 NDIS 版本的成員清單,結構將會有新的修訂值。 例如,如果結構的 NDIS 6.1 版本在成員清單結尾、聯集或位掩碼中有新的成員,它將會有與 NDIS 6.0 版本不同的修訂值。

  • 在結構變更之後,結構稍後修訂的大小可以等於或大於結構先前修訂的大小,但不會更小。 如果新大小大於先前修訂的大小,則會在成員清單結尾新增新成員。

  • 結構只有在先前的修訂資訊仍然有效且完成時,才會有新的修訂。 也就是說,新版的結構包含舊版成員的超集。 附註 如果不符合上述任何條件,NDIS 會以新的名稱提供新的結構,以取代現有結構,而不是提供現有結構的修訂版本。

  • NDIS 驅動程序應該一律使用預先定義的修訂值。 NDIS 針對 NDIS_OBJECT_HEADER 成員中的 修訂大小,分別以 Xxx_REVISION_Nn 和 NDIS_SIZEOF_Xxx_REVISION_Nn 格式提供這類定義。 此外,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 版本資訊