共用方式為


(PCO) 作業的 MB 通訊協定組態選項

概觀

PCO) (通訊協定組態選項的目的是傳輸與封包資料協定相關聯的外部網路通訊協定選項, (PDP) 內容啟用。 PCO 值的 Windows NDIS 定義通常為泛型,未來從數據機和網路接收完整的 PCO 值。 不過,從 Windows 10 1709 版開始,某些數據機只能將操作員特定的 PCO 元素傳遞至 OS。 本主題定義目前運算子專屬 PCO 實作的行為。

流程

有三種案例會將 PCO 值傳遞至主機:

  • 當新的 PCO 值到達已啟用的連線時
  • 當應用程式或服務從數據機查詢最新的 PCO 值時
  • 第一次橋接或啟動連線,且數據機中已有 PCO 值時

在第一個案例中,數據機應該將 NDIS_STATUS_WWAN_PCO_STATUS 通知傳送給 OS,指出每當從網路收到新的 PCO 值時,就會變更新的 PCO 值,並使用適當的 NDIS 埠號碼來代表對應的 PDN。 為了避免不必要的電池耗盡,數據機應該避免雜訊通知,如 選擇性暫停和連線待命的數據機行為中所述。

針對第二個案例,當應用程式或服務從已啟用 PDN 連線的數據機查詢 PCO 值時,主機會將 OID_WWAN_PCO 查詢要求傳送至數據機,以讀取數據機中最新的快取 PCO 值。

針對第三個案例,當主機上啟動或橋接連線時,數據機應該會在數據機中已有 PCO 值時傳送 NDIS_STATUS_WWAN_PCO_STATUS 通知,以取得所要求主機的已啟動或橋接連線。 通知應該從 PDN 的對應 NDIS 埠號碼向上傳遞。

下圖顯示案例流程:

顯示 MB PCO 作業流程的圖表。

選擇性暫停和連線待命的數據機行為

啟用選擇性暫停時,數據機可以在收到來自網路的 PCO 資料結構時通知 OS。 不過,數據機應該避免不必要的裝置喚醒。 否則,來自網路的雜訊 PCO 通知會經常喚醒裝置,並不必要的清空電池。

啟用連線待命時,數據機在收到來自網路的 PCO 資料結構時,不應通知 OS,因為它不僅會喚醒裝置,也會喚醒不需要的 OS。 相反地,數據機應該從資料結構快取所有最新的 PCO 元素,並在 OS 結束連線待命之後通知 OS。 如果是 MBIM 數據機,它應該快取所有 PCO 資料結構,而且只有在主機訂閱 PCO 通知之後,才會將 PCO 通知傳送至 OS。 當系統電源在離開連線待命之後回到完整電源時,將會使用 MBIM_CID_DEVICE_SERVICE_SUBSCRIBE_LIST CID 來完成。

根據 PCO 值重設數據機

根據從網路收到的 PCO 值,數據機將會在下列案例中重設:

  • 使用者從網路收到 PCO = 5 之後,已完成自我啟用。 新的 PCO 值 (3、0 或任何行動電信業者應用程式可以辨識) 將會傳送至作業系統,而 OS 會將它傳遞給電信業者應用程式。
  • 在收到 PCO = 3 之後,使用者已將更多點數新增至其帳戶。 新的 PCO 值 (0,或者任何行動電信業者應用程式都可以辨識) 會傳送至作業系統,而 OS 會將它傳遞給電信業者應用程式。

主機不知道要重設的數據機,因此不會停用來自主機的啟動連線,而且數據機應該在重設之後自動重新建立與這些 PDN 的連線。 建立連線並從網路接收新的傳入 PCO 值時,數據機會將未經要求 NDIS_STATUS_WWAN_PCO_STATUS 通知提供給主機。

下圖說明當其中一個案例發生時,使用 Verizon Wireless 作為範例 MO 時的數據機重設流程:

此圖顯示以 PCO 值為基礎的 MB 數據機重設程式。

數據機的 NDIS 介面

如需查詢 PCO 值的狀態和承載,請參閱 OID_WWAN_PCOOID_WWAN_PCO 會使用 NDIS_WWAN_PCO_STATUS 結構,而結構會接著包含代表來自網路的 PCO 資訊承載 WWAN_PCO_VALUE 結構。

如需數據機迷你埠驅動程式傳送的狀態通知,以通知數據機中目前 PCO 狀態的 OS,請參閱 NDIS_STATUS_WWAN_PCO_STATUS

MB CID 至數據機

服務 = MBB_UUID_BASIC_CONNECT_EXT_CONSTANT

服務 UUID = 3d01dcc5-fef5-4d05-0d3a-bef7058e9aaf

PCO 定義了下列 CID:

CID 命令程式碼 最低 OS 版本
MBIM_CID_PCO 9 Windows 10 (版本 1709)

MBIM_CID_PCO

此命令可用來查詢從電信業者網路快取的數據機中快取的 PCO 資料。

查詢

InformationBuffer 包含 MBIM_PCO_VALUE ,其中唯一的相關欄位是 SessionIdSessionId保留供日後使用,且一律為 0,Windows 10 1709 版。 查詢中的 SessionId 表示函式要傳回哪一個 IP 資料流程的 PCO 值。

集合

不適用。

未經請求的事件

未經請求的事件包含MBIM_PCO_VALUE,而且會在新的 PCO 值到達已啟用的連線時傳送。

參數

作業 集合 查詢 通知
命令 不適用 MBIM_PCO_VALUE 不適用
回應 不適用 MBIM_PCO_VALUE MBIM_PCO_VALUE

資料結構

MBIM_PCO_TYPE
類型 Description
MBIMPcoTypeComplete 0 指定從網路接收的完整 PCO 結構會向上傳遞,標頭會實際反映 PCO 結構八位 3 中的通訊協定,該通訊協定定義于 3GPP TS24.008 規格中。
MBIMPcoTypePartial 1 指定數據機只會傳遞它從網路接收的 PCO 結構子集。 標頭符合 3GPP TS24.008 規格中定義的 PCO 結構,但八位 3 的「設定通訊協定」可能無效。
MBIM-PCO-TYPE
Offset 大小 欄位 類型 描述
0 4 SessionId UINT32 查詢中的 SessionId 表示函式要傳回哪一個 IP 資料流程的 PCO 值。
4 4 PcoDataSize UINT32 PcoData 的長度,從 0 到 256。 此值會在查詢中為 0。
8 4 PcoDataType UINT32 PCO 資料類型。 如需詳細資訊,請參閱 MBIM_PCO_TYPE
12 PcoDataBuffer DATABUFFER 來自 3GPP TS24.008 規格的 PCO 結構。

狀態碼

此 CID 只會使用泛型狀態碼。

硬體實驗室套件 (HLK) 測試

請參閱 安裝 HLK 的步驟

在 HLK Studio 中,連線到行動數據機驅動程式並執行測試: TestPco

WinRT API

Pco

PCO 背景觸發程式

另請參閱

NDIS_STATUS_WWAN_PCO_STATUS

NDIS_WWAN_PCO_STATUS

WWAN_PCO_VALUE

OID_WWAN_PCO