OID_PM_ADD_PROTOCOL_OFFLOAD
作為集合,NDIS 通訊協定驅動程式會使用 OID_PM_ADD_PROTOCOL_OFFLOAD OID,將通訊協定卸載新增至網路介面卡的電源管理。 NDIS_OID_REQUEST結構的InformationBuffer成員包含NDIS_PM_PROTOCOL_OFFLOAD結構的指標。
備註
NDIS 6.20 和更新版本的通訊協定驅動程式會使用 OID_PM_ADD_PROTOCOL_OFFLOAD OID,將通訊協定卸載新增至網路介面卡的電源管理。 如果要求成功,當網路介面卡處於低電源狀態時,網路介面卡必須產生並傳輸卸載通訊協定的必要回應封包。
通訊協定驅動程式可以在通訊協定成功系結至基礎網路介面卡之後卸載通訊協定,而且只要有必要的資料 (,例如介面的 IP 位址) 卸載通訊協定。 通訊協定驅動程式也可以卸載通訊協定,以回應一些其他電源管理事件通知,例如拒絕先前新增的 WOL 模式或卸載的通訊協定。
若要避免 NDIS 和其他系結至相同迷你埠介面卡的通訊協定驅動程式中的競爭狀況,在 NDIS 開始將網路介面卡設定為低電源狀態之後,任何嘗試將另一個通訊協定卸載至該網路介面卡時都會失敗。 例如,如果 NDIS 通訊協定驅動程式嘗試卸載該網路介面卡的 NetEventSetPower 事件通知內容中的通訊協定,NDIS 將會失敗要求。
在 NDIS 將這個 OID 要求向下傳送至基礎 NDIS 驅動程式或完成對過度配置驅動程式的要求之前,它會將NDIS_PM_PROTOCOL_OFFLOAD結構的 ULONG ProtocolOffloadId成員設定為唯一值。 通訊協定驅動程式和 NDIS 會使用此通訊協定卸載識別碼搭配 OID_PM_REMOVE_PROTOCOL_OFFLOAD OID 要求,以從基礎網路介面卡移除通訊協定卸載。
注意 通訊協定卸載識別碼是網路介面卡上設定的每個通訊協定卸載的唯一值。 不過,通訊協定卸載識別碼在所有網路介面卡上並非全域唯一的。
如果 NDIS 或基礎網路介面卡拒絕卸載,它會產生 NDIS_STATUS_PM_OFFLOAD_REJECTED 狀態指示。 這會在傳回 OID 的NDIS_STATUS_SUCCESS之後發生。 NDIS_STATUS_INDICATION結構的StatusBuffer成員包含拒絕通訊協定卸載的 ULONG 通訊協定卸載識別碼。
如需原生 802.11 無線區域網路 迷你埠驅動程式如何使用此 OID 的資訊,請參閱 新增和刪除低電源通訊協定卸載。
迷你埠驅動程式會針對要求傳回下列其中一個狀態碼:
NDIS_STATUS_SUCCESS
已成功新增要求的通訊協定卸載。 NDIS_PM_PROTOCOL_OFFLOAD結構的ProtocolOffloadId成員包含通訊協定卸載識別碼。
NDIS_STATUS_PENDING
要求正在擱置完成。 NDIS 會在要求完成之後,將最終狀態代碼和結果傳遞至呼叫端的 OID 要求完成處理常式。
NDIS_STATUS_PM_PROTOCOL_OFFLOAD_LIST_FULL
要求失敗,因為通訊協定卸載清單已滿,且網路介面卡無法新增另一個通訊協定卸載。
NDIS_STATUS_RESOURCES
由於缺少資源,NDIS 或基礎網路介面卡無法新增通訊協定卸載。
NDIS_STATUS_INVALID_PARAMETER
NDIS_PM_PROTOCOL_OFFLOAD結構中的一或多個參數無效。
NDIS_STATUS_BUFFER_TOO_SHORT
資訊緩衝區太短。 NDIS 會設定 DATA。SET_INFORMATION。NDIS_OID_REQUEST 結構中的 BytesNeeded 成員,以達到所需的最小緩衝區大小。
NDIS_STATUS_NOT_SUPPORTED
網路介面卡不支援要求的通訊協定卸載。
NDIS_STATUS_FAILURE
要求因上述原因以外的原因而失敗。
規格需求
版本 |
NDIS 6.20 和更新版本支援。 迷你埠驅動程式的必要專案。 |
標頭 |
Ntddndis.h (包括 Ndis.h) |
另請參閱
NDIS_STATUS_PM_OFFLOAD_REJECTED