共用方式為


NDIS_PM_PROTOCOL_OFFLOAD結構 (ntddndis.h)

NDIS_PM_PROTOCOL_OFFLOAD 結構會指定低功率通訊協定卸除至網路適配器的參數。

語法

typedef struct _NDIS_PM_PROTOCOL_OFFLOAD {
  NDIS_OBJECT_HEADER            Header;
  ULONG                         Flags;
  ULONG                         Priority;
  NDIS_PM_PROTOCOL_OFFLOAD_TYPE ProtocolOffloadType;
  NDIS_PM_COUNTED_STRING        FriendlyName;
  ULONG                         ProtocolOffloadId;
  ULONG                         NextProtocolOffloadOffset;
  union {
    struct {
      ULONG Flags;
      UCHAR RemoteIPv4Address[4];
      UCHAR HostIPv4Address[4];
      UCHAR MacAddress[6];
    } IPv4ARPParameters;
    struct {
      ULONG Flags;
      UCHAR RemoteIPv6Address[16];
      UCHAR SolicitedNodeIPv6Address[16];
      UCHAR MacAddress[6];
      UCHAR TargetIPv6Addresses[2][16];
    } IPv6NSParameters;
    struct {
      ULONG     Flags;
      UCHAR     KCK[DOT11_RSN_KCK_LENGTH];
      UCHAR     KEK[DOT11_RSN_KEK_LENGTH];
      ULONGLONG KeyReplayCounter;
    } Dot11RSNRekeyParameters;
    struct {
      ULONG     Flags;
      ULONGLONG KeyReplayCounter;
      ULONG     AuthAlgo;
      ULONG     KCKLength;
      ULONG     KEKLength;
      UCHAR     KCK[DOT11_RSN_MAX_CIPHER_KEY_LENGTH];
      UCHAR     KEK[DOT11_RSN_MAX_CIPHER_KEY_LENGTH];
    } Dot11RSNRekeyParametersV2;
  } ProtocolOffloadParameters;
  _PROTOCOL_OFFLOAD_PARAMETERS  _PROTOCOL_OFFLOAD_PARAMETERS;
} NDIS_PM_PROTOCOL_OFFLOAD, *PNDIS_PM_PROTOCOL_OFFLOAD;

成員

Header

NDIS_PM_PROTOCOL_OFFLOAD 結構的 NDIS_OBJECT_HEADER 結構。 驅動程式會將 Type 成員設定為 NDIS_OBJECT_TYPE_DEFAULT。

若要指出 NDIS_PM_PROTOCOL_OFFLOAD 結構的版本,請將 Revision member of Header 設定為下列其中一個值:

NDIS_PM_PROTOCOL_OFFLOAD_REVISION_2

已針對 NDIS 6.84 新增 Dot11RSNRekeyParametersV2 結構。

Size 成員設定為 NDIS_SIZEOF_NDIS_PM_PROTOCOL_OFFLOAD_REVISION_2。

NDIS_PM_PROTOCOL_OFFLOAD_REVISION_1

NDIS 6.20 和更新版本的原始版本。

Size 成員設定為 NDIS_SIZEOF_NDIS_PM_PROTOCOL_OFFLOAD_REVISION_1。

Flags

包含位 OR 旗標的 ULONG 值。 此成員保留給 NDIS。

Priority

ULONG 值,其中包含通訊協定卸除的優先順序。 如果過度部署的驅動程式在沒有任何資源可供更多通訊協定卸載時新增較高優先順序的通訊協定卸除,NDIS 可能會移除優先順序較低的通訊協定卸除以釋放資源。 迷你埠驅動程序應該忽略此成員。 通訊協定驅動程式可以在預先定義的範圍內提供任何值。 下列值是預先定義的:

NDIS_PM_PROTOCOL_OFFLOAD_PRIORITY_LOWEST

指定最低優先順序通訊協定卸除。

NDIS_PM_PROTOCOL_OFFLOAD_PRIORITY_NORMAL

指定一般優先順序通訊協定卸除。

NDIS_PM_PROTOCOL_OFFLOAD_PRIORITY_HIGHEST

指定最高優先順序的通訊協定卸除。

ProtocolOffloadType

NDIS_PM_PROTOCOL_OFFLOAD_TYPE 值,其中包含通訊協定卸除的類型。

FriendlyName

NDIS_PM_COUNTED_STRING 結構,其中包含低功率通訊協定卸除的用戶可讀取描述。

ProtocolOffloadId

ULONG 值,其中包含識別卸除通訊協定的 NDIS 提供值。 在 NDIS 將 OID_PM_ADD_PROTOCOL_OFFLOAD OID 要求向下傳送至基礎 NDIS 驅動程式或完成對過度配置驅動程式的要求之前,NDIS 會將 ProtocolOffloadId 設定為網路適配器上通訊協定卸除中唯一的值。

NextProtocolOffloadOffset

包含位移的 ULONG 值,以位元組為單位。 清單中每個 NDIS_PM_PROTOCOL_OFFLOAD 結構的 NextProtocolOffloadOffset 成員會設定為清單中下一個 NDIS_PM_PROTOCOL_OFFLOAD 結構的位移(從 OID 要求 InformationBuffer 的開頭)。 如果 NextProtocolOffloadOffset 為零,則目前的結構是清單中的最後一個結構。

ProtocolOffloadParameters

包含下列成員結構的等位:

ProtocolOffloadParameters.IPv4ARPParameters

結構,包含 IPv4 ARP 參數。 此結構包含下列成員:

ProtocolOffloadParameters.IPv4ARPParameters.Flags

ULONG 值,其中包含旗標的位 OR。 此成員保留給 NDIS。

ProtocolOffloadParameters.IPv4ARPParameters.RemoteIPv4Address[4]

包含選擇性 IPv4 位址的 UCHAR 陣列。 此位址代表 ARP 要求的來源通訊協定位址 (SPA) 欄位。

如果連入 ARP 要求具有符合此 IPv4 位址的 SPA 值,網路適配器會在處於低功率狀態時傳送 ARP 回應。 如果此成員為零,網路適配器應該回應來自任何遠端 IPv4 位址的 ARP 要求。

如需 ARP 通訊協定的詳細資訊,請參閱 RFC 826。

ProtocolOffloadParameters.IPv4ARPParameters.HostIPv4Address[4]

包含 IPv4 位址的 UCHAR 陣列。 當它傳送 ARP 回應時,網路適配器會針對回應的 SPA 字段使用此成員。

ProtocolOffloadParameters.IPv4ARPParameters.MacAddress[6]

包含媒體存取控制 (MAC) 位址的 UCHAR 陣列。 網路適配器會針對它產生的 ARP 回應封包的來源硬體位址 (SHA) 欄位使用此 MAC 位址。

注意 傳送 ARP 回應時,網路適配器必須一律在 ARP 承載中使用這個 MAC 位址。 不過,它應該使用網路適配器的目前 MAC 位址作為 MAC 標頭中的來源位址。
 

ProtocolOffloadParameters.IPv6NSParameters

結構,包含 IPv6 芳鄰請求 (NS) 參數。 此結構包含下列成員:

ProtocolOffloadParameters.IPv6NSParameters.Flags

ULONG 值,其中包含一個位 OR 旗標。 此成員保留給 NDIS。

ProtocolOffloadParameters.IPv6NSParameters.RemoteIPv6Address[16]

包含選擇性 IPv6 位址的 UCHAR 陣列。 此位址代表 NS 訊息 IPv6 標頭中的 [來源位址] 欄位。

如果傳入 NS 訊息具有符合此 IPv6 位址的來源位址值,則網路適配器會在處於低電源狀態時傳送鄰近公告 (NA) 訊息。 如果此成員為零,網路適配器應該回應來自任何遠端 IPv6 位址的 NS 訊息。

如需 IPv6 NS 和 NA 訊息的詳細資訊,請參閱 RFC 4861

ProtocolOffloadParameters.IPv6NSParameters.SolicitedNodeIPv6Address[16]

包含所請求節點 IPv6 位址的 UCHAR 陣列。 如需這種類型的 IPv6 位址的詳細資訊,請參閱多播 IPv6 位址。

ProtocolOffloadParameters.IPv6NSParameters.MacAddress[6]

包含 MAC 位址的 UCHAR 陣列。 當它傳送 NA 訊息時,網路適配器會針對 NA 訊息的目標連結層位址 (TLLA) 字段使用此陣列。

注意 傳送 NA 訊息時,網路適配器必須一律在 NA 訊息的 TLLA 字段中使用此 MAC 位址。 不過,它應該使用網路適配器的目前 MAC 位址作為 MAC 標頭中的來源位址。
 

ProtocolOffloadParameters.IPv6NSParameters.TargetIPv6Addresses[2]

包含一或兩個 IPv6 位址的 UCHAR 陣列。 如果它只包含一個位址,該位址會儲存在陣列的第一個元素中,而第二個元素會填入零。

迷你埠驅動程序必須取用數位中的所有位址。

這些位址代表 NS 訊息的目標位址欄位。 如果其中一個位址符合傳入 NS 訊息的目標位址欄位,網路適配器就會傳送 NA 訊息以回應。

ProtocolOffloadParameters.Dot11RSNRekeyParameters

結構,包含 IEEE 802.11i 強固安全性網路 (RSN) 交握參數。 此結構包含下列成員:

ProtocolOffloadParameters.Dot11RSNRekeyParameters.Flags

ULONG 值,其中包含一個位 OR 旗標。 此成員保留給 NDIS。

ProtocolOffloadParameters.Dot11RSNRekeyParameters.KCK[DOT11_RSN_KCK_LENGTH]

包含 IEEE 802.11 金鑰確認金鑰 (KCK) 的 UCHAR 陣列。

ProtocolOffloadParameters.Dot11RSNRekeyParameters.KEK[DOT11_RSN_KEK_LENGTH]

包含 IEEE 802.11 金鑰加密金鑰 (KEK) 的 UCHAR 陣列。

ProtocolOffloadParameters.Dot11RSNRekeyParameters.KeyReplayCounter

包含重新執行計數器的 ULONGLONG 值。

ProtocolOffloadParameters.Dot11RSNRekeyParametersV2

結構,包含 V2 IEEE 802.11i 強固安全性網路 (RSN) 交握參數。 適用於 NDIS 6.84 和更新版本。 此結構包含下列成員:

ProtocolOffloadParameters.Dot11RSNRekeyParametersV2.Flags

ProtocolOffloadParameters.Dot11RSNRekeyParametersV2.KeyReplayCounter

ProtocolOffloadParameters.Dot11RSNRekeyParametersV2.AuthAlgo

ProtocolOffloadParameters.Dot11RSNRekeyParametersV2.KCKLength

ProtocolOffloadParameters.Dot11RSNRekeyParametersV2.KEKLength

ProtocolOffloadParameters.Dot11RSNRekeyParametersV2.KCK[DOT11_RSN_MAX_CIPHER_KEY_LENGTH]

ProtocolOffloadParameters.Dot11RSNRekeyParametersV2.KEK[DOT11_RSN_MAX_CIPHER_KEY_LENGTH]

_PROTOCOL_OFFLOAD_PARAMETERS

言論

NDIS_PM_PROTOCOL_OFFLOAD 結構用於 OID_PM_ADD_PROTOCOL_OFFLOAD OID_PM_PROTOCOL_OFFLOAD_LIST OID。

要求

要求 價值
最低支援的用戶端 NDIS 6.20 和更新版本支援。
標頭 ntddndis.h (包括 Ntddndis.h)

另請參閱

NDIS_OBJECT_HEADER

NDIS_PM_COUNTED_STRING

NDIS_PM_PROTOCOL_OFFLOAD_TYPE

OID_PM_ADD_PROTOCOL_OFFLOAD

OID_PM_PROTOCOL_OFFLOAD_LIST