共用方式為


OID_PNP_SET_POWER

OID_PNP_SET_POWER OID 通知迷你埠驅動程式,其基礎網路介面卡將會轉換為 InformationBuffer中指定的裝置電源狀態。 裝置電源狀態會指定為下列其中一個 NDIS_DEVICE_POWER_STATE 值:

  • NdisDeviceStateD0
  • NdisDeviceStateD1
  • NdisDeviceStateD2
  • NdisDeviceStateD3

OID_PNP_SET_POWER要求前面可能會有 OID_PNP_QUERY_POWER 要求。

從 NDIS 6.30 開始,如果下列條件成立,NDIS 將不會在電源狀態轉換期間暫停並重新啟動驅動程式堆疊中的 NDIS 驅動程式:

  • 基礎迷你埠驅動程式會在 NDIS_MINIPORT_ADAPTER_REGISTRATION_ATTRIBUTES 結構中設定 NDIS_MINIPORT_ATTRIBUTES_NO_PAUSE_ON_SUSPEND 旗標。 驅動程式會在其呼叫 NdisMSetMiniportAttributes 函式時,傳遞這個結構的指標。

  • 附加至迷你埠驅動程式的所有過度篩選驅動程式都支援 NDIS 6.30 或更新版本的 NDIS。

  • 系結至迷你埠驅動程式的所有過度通訊協定驅動程式都支援 NDIS 6.30 或更新版本的 NDIS。

轉換至Low-Power狀態 (D1-D3)

當迷你埠驅動程式處理一組OID_PNP_SET_POWER要求以轉換為低電源狀態時,它必須執行下列動作:

支援 NDIS 6.30 和更新版本 NDIS 的迷你埠驅動程式也必須執行下列動作:

網路介面卡轉換至 D3 狀態之前,迷你埠驅動程式必須執行下列工作,以關閉迷你埠驅動程式控制下的所有專案:

  • 停用網路介面卡上的中斷和 DMA 引擎。

  • 停止網路介面卡上的接收引擎。

  • 請勿解除配置或修改與擱置接收指示相關聯的接收描述元和封包緩衝區。

  • 取消所有 NDIS 計時器。

注意 在匯流排驅動程式將網路介面卡轉換為 D3 狀態之後,迷你埠驅動程式無法存取網路介面卡。

轉換至 Full-Power State (D0)

當迷你埠驅動程式處理一組OID_PNP_SET_POWER要求以轉換至全電源狀態時,它必須將網路介面卡的接收引擎還原為轉接器轉換至低電源狀態之前,接收引擎所在的相同狀態。

注意 迷你埠驅動程式不得存取或變更與擱置接收指示相關聯的任何接收緩衝區。

只有在 NDIS 在轉換至低電源狀態之前呼叫驅動程式的 MiniportPause函式時,NDIS 才會呼叫迷你埠驅動程式的MiniportRestart函式。

注意 中繼驅動程式必須一律 將NDIS_STATUS_SUCCESS 傳回OID_PNP_SET_POWER查詢。 中繼驅動程式絕對不應該將OID_PNP_SET_POWER要求傳播至基礎迷你埠驅動程式。

傳回狀態碼

迷你埠驅動程式的 MiniportOidRequest 函式會針對此要求傳回下列其中一個值:

詞彙 描述

NDIS_STATUS_SUCCESS

迷你埠驅動程式已成功完成要求。

NDIS_STATUS_PENDING

迷你埠驅動程式會以非同步方式完成要求。 在迷你埠驅動程式完成所有處理之後,它必須藉由呼叫 NdisMOidRequestComplete 函式來成功要求,並傳遞 Status 參數的NDIS_STATUS_SUCCESS。

NDIS_STATUS_NOT_ACCEPTED

迷你埠驅動程式已重設。

規格需求

版本

支援 NDIS 5.1 和 NDIS 6.0 和更新版本。

標頭

Ntddndis.h (包含 Ndis.h)

另請參閱


MiniportInitializeEx

MiniportPause

MiniportRestart

MiniportReturnNetBufferLists

MiniportSendNetBufferLists

NDIS_DEVICE_POWER_STATE

NdisMIndicateReceiveNetBufferLists

NdisMSendNetBufferListsComplete

NET_BUFFER_LIST