共用方式為


新增和刪除低電源通訊協定卸載

若要新增低電源通訊協定卸載,NDIS 通訊協定驅動程式會發出 OID_PM_ADD_PROTOCOL_OFFLOAD的 OID 集要求。 NDIS_OID_REQUEST結構的InformationBuffer成員包含NDIS_PM_PROTOCOL_OFFLOAD結構的指標。

注意 例如,如果傳入封包符合卸載通訊協定和模式 (,因為組態錯誤) ,網路介面卡應該回應封包並喚醒電腦。

NDIS_PM_PROTOCOL_OFFLOAD結構包含下列資訊:

member 描述

優先順序

包含通訊協定卸載的優先順序。 如果過度配置驅動程式在沒有資源可供更多通訊協定卸載時新增較高的優先順序通訊協定卸載,NDIS 可能會移除優先順序較低的通訊協定卸載,以釋出資源。 迷你埠驅動程式應該忽略此成員。 通訊協定驅動程式可以在預先定義的範圍內提供任何值,從NDIS_PM_PROTOCOL_OFFLOAD_PRIORITY_LOWEST到NDIS_PM_PROTOCOL_OFFLOAD_PRIORITY_HIGHEST。

ProtocolOffloadType

包含指定通訊協定卸載類型的 NDIS_PM_PROTOCOL_OFFLOAD_TYPE 值。

FriendlyName

包含 NDIS_PM_COUNTED_STRING 結構,其中包含低電源通訊協定卸載的使用者可讀取描述。

ProtocolOffloadId

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

NextProtocolOffloadOffset

包含 OID 要求InformationBuffer開頭的位移,包含在OID_PM_PROTOCOL_OFFLOAD_LIST OID 清單中下一個NDIS_PM_PROTOCOL_OFFLOAD結構。 如需OID_PM_PROTOCOL_OFFLOAD_LIST的詳細資訊,請參閱 取得低電源通訊協定卸載的目前參數設定

ProtocolOffloadParameters

包含等位中的其中一個 IPv4ARPParametersIPv6NSParametersDot11RSNRekeyParameters 結構。

詞彙 描述

IPv4ARPParameters

包含 IPv4 ARP 參數。

IPv6NSParameters

包含 IPv6 芳鄰要求 (NS) 參數。

Dot11RSNRekeyParameters

包含 IEEE 802.11 強固的安全網路 (RSN) 交握參數

 

NDIS 會將網路介面卡唯一的識別碼指派給每個卸載通訊協定。 通訊協定卸載識別碼是網路介面卡上卸載之每個通訊協定的唯一值。 不過,通訊協定卸載識別碼在所有網路介面卡上並非全域唯一的。 當 NDIS 將 OID_PM_ADD_PROTOCOL_OFFLOAD OID 要求傳送至迷你埠驅動程式時,NDIS 會將此識別碼傳遞至基礎迷你埠驅動程式。 如果卸載通訊協定成功,NDIS 會將識別碼傳回給卸載通訊協定的超載驅動程式。 過度配置驅動程式會使用識別碼來移除先前卸載的通訊協定。 當卸載通訊協定從網路介面卡移除時,通訊協定卸載識別碼也會用於上層驅動程式的狀態指示。

通訊協定驅動程式必須先從網路介面卡移除所有卸載的通訊協定,才能將系結關閉至該網路介面卡。 若要移除低電源通訊協定卸載,通訊協定驅動程式會傳送 OID_PM_REMOVE_PROTOCOL_OFFLOAD的 OID 集合要求。 NDIS_OID_REQUEST結構的InformationBuffer成員包含通訊協定卸載識別碼的指標。

NDIS 允許多個 NDIS 通訊協定驅動程式將通訊協定卸載新增至相同的網路介面卡。 為了確保在要求的卸載通訊協定數目高於網路介面卡所能支援的通訊協定數目時,通訊協定驅動程式會將優先順序指派給每個卸載的通訊協定時,已卸載至網路介面卡。 當 NDIS 無法卸載新的高優先順序通訊協定時,因為網路介面卡的資源不足,NDIS 會刪除其中一個優先順序較低的卸載通訊協定, (如果有任何) ,並嘗試再次卸載高優先順序通訊協定。

注意 迷你埠驅動程式應該會失敗低電源通訊協定卸載要求,並傳回STATUS_NDIS_PM_PROTOCOL_OFFLOAD_LIST_FULL狀態碼,以允許 NDIS 重新設定通訊協定卸載的優先順序。

如果卸載高優先順序通訊協定的結果,則會刪除其中一個優先順序較低的卸載通訊協定,NDIS 會傳送 NDIS_STATUS_PM_OFFLOAD_REJECTED 狀態指示,以通知過度部署的驅動程式,以設定已刪除的通訊協定卸載。 NDIS_STATUS_INDICATION結構的StatusBuffer成員包含拒絕通訊協定卸載的通訊協定卸載識別碼。 NDIS 在NDIS_PM_PROTOCOL_OFFLOAD結構的ProtocolOffloadId成員中提供通訊協定卸載識別碼。