共用方式為


使用 DSS 進行 MB 數據機記錄

注意

如果您打算支援數據機 MBIM_CID_MODEM_LOGGING_CONFIG,請在此頁面提供意見反應,以便我們提供最佳的支援。 此 CID 目前為實驗性,尚未使用數據機進行測試,因為沒有任何支援。

本主題描述透過 Microsoft 延伸模組透過 Microsoft 擴充功能提供於 Windows 10 版本 1903 和更新版本的 USB MBIM 1.0 規格的新標準 Windows 行動寬頻 (MBB) 記錄介面。

透過這個新的記錄介面,OS 可以透過 MBIM CID 命令通知 MBB 裝置啟動、停止和排清作業系統的記錄。 假設數據機記錄承載的非IP本質,MBB服務用來將記錄承載傳輸至OS的數據通道會使用 MBB Data Service Stream (DSS)。 DSS 定義於 行動寬頻介面模型 (MBIM) 1.0 規格中。

OS 會使用一組 Windows 特定的 MBB 記錄組態,將數據機的診斷功能和組態抽象化整個 MBB 生態系統。 這些 MBB 記錄設定可讓數據機的廠商將 OS MBB 記錄需求對應至適當的內部記錄設定。 OS 所抽象和定義的記錄組態包括 MBB 記錄詳細資訊層級和排清時間上限。

調製解調器會持續填滿其記錄緩衝區,直到填滿該區段,且 MBIM 架構會將區段傳輸至 OS,或在達到最大排清時間時排清緩衝區的內容(即使未填滿區段也一樣)。 OS 會定義一組標準 Windows MBB 記錄設定層級,本主題稍後會說明。 每個組態層級都會指定 MBB 記錄詳細數據和詳細資訊的 OS 抽象概念。

MBB 設定層級的OS抽象概念會對應到數據機的適當內部數據機設定。 OS 不會將記錄篩選器或遮罩等任何其他設定承載提供給OS MBB組態層級以外的數據機。

對於支援 MBB 記錄的數據機,除了 MBIMLoggingLevelOem 之外,所有 MBB 記錄設定層級都必須存在於所有 BSP 變體上。 換句話說,IHV 或 OEM 必須在 BSP 的生產與 R&D 版本中支援 MBB 記錄的 PROD 或 LAB 層級。 MBB 記錄的實驗室層級只能從OS停用。

這個新的記錄介面設計會使用控制通道來設定記錄參數,並使用數據通道來接收數據機記錄,因為數據通道是設計來傳輸大量數據機數據。 此設計的優點是,大量數據不需要透過控制通道傳輸,因此可讓裝置效能保持一致。 它也會針對更高的輸送量進行調整。 數據通道是由 DSS 命令所操作。 調製解調器的範例流程可能如下所示:

  1. OS 會將MBIM_CID_MODEM_LOGGING_CONFIG CID 傳送至數據機,以設定記錄參數,例如 MaxSegmentSize、MaxFlushTime和 LoggingLevel。
  2. 一旦OS收到來自數據機的成功回應之後,它會將MBIM_CID_DSS_CONNECT DSS 命令傳送至具有數據機記錄特定 GUID 的數據機、MBIMDssLinkActivate 狀態,以及唯一的 DSS 會話識別符。
  3. 收到成功狀態代碼之後,OS 會準備從數據機接收片段。 這些片段稱為 DataServiceSessionRead 封包。
  4. DataServiceSessionRead 封包會繼續送達,直到 OS 發出具有相同 DSS 會話標識碼和 MBIMDSSLinkDeactivate 狀態的另一個MBIM_CID_DSS_CONNECT命令為止。

當數據機將任何記錄寫入新建立的數據通道之後,數據機會呼叫 MbbDeviceReceiveDeviceServiceSessionData,這是應用程式可透過 WinRT 層取得的數據:MobileBroadbandDeviceService。 數據化為可列印的字串數據,以重新導向至 ETW 工作階段。

數據機記錄資料路徑

數據機記錄會使用 MBIM Data Service Stream (DSS) 來傳輸記錄承載的數據。 如需 DSS 的詳細資訊,請參閱 MBIM 1.0 規格的第 10.5.38 節。

線上或中斷 DSS 連線或中斷連線時,會使用下列 GUID 進行數據機記錄:

GUID
ModemFileTransfer GUID 0EBB1CEB-AF2D-484D-8DF3-53BC51FD162C

下列流程圖說明 DSS 設定和卸除程式。

DSS 數據機記錄設定和卸除流程圖。

NDIS 介面延伸模組

下列 OID 已在 Windows 10 版本 1903 中定義,以支援數據機記錄。

MBIM 服務和 CID 值

服務名稱 UUID UUID 值
Microsoft Basic IP 連線 ivity Extensions UUID_BASIC_CONNECT_EXTENSIONS 3d01dcc5-fef5-4d05-9d3a-bef7058e9aaf

下表指定每個 CID 的 UUID 和命令程式代碼,以及 CID 是否支援 Set、Query 或 Event (notification) 要求。 如需參數、數據結構和通知的詳細資訊,請參閱本主題中的每個 CID 個別區段。

CID UUID 命令程序代碼 設定 查詢 Notify
MBIM_CID_MODEM_LOGGING_CONFIG UUID_BASIC_CONNECT_EXTENSIONS 待定 Y Y Y

MBIM_CID_MODEM_LOGGING_CONFIG

此 CID 可用來設定數據機所收集的記錄,以及它們從數據機傳送到透過 DSS 主機的頻率。 必須先設定記錄,才能啟動記錄會話。 由於此 CID 是連線延伸模組的一部分,因此 IHD 支援此 CID 是選擇性的。 如果 IHV 支援透過 DSS 資料通道進行數據機記錄,則必須將此功能指定為功能。 您可以使用 MBIM_BASIC_CID_DEVICE_SERVICES CID 來公告此功能。

參數

作業 設定 查詢 通知
Command MBIM_MODEM_LOGGING_CONFIG 不適用 不適用
回應 MBIM_MODEM_LOGGING_CONFIG MBIM_MODEM_LOGGING_CONFIG MBIM_MODEM_LOGGING_CONFIG

查詢

查詢目前的數據機記錄設定。 不會使用MBIM_COMMAND_MSG的 InformationBuffer。 下列MBIM_MODEM_LOGGING_CONFIG結構用於 MBIM_COMMAND_DONE 的 InformationBuffer 中。

MBIM_MODEM_LOGGING_CONFIG

位移 大小 欄位 類型 描述
0 4 版本 UINT32 這個結構的版本號碼。 此欄位必須針對此結構第 1 版設定為 1
4 4 MaxSegmentSize UINT32 指定數據機所傳送之每個片段的區段大小,以 KB 為單位。 如果 Device Service Command 的數據機所支援的片段大小上限超過設定的值,則此值會設定為支援的區段大小上限。
8 4 MaxFlushTime UINT32 以毫秒為單位的時間,表示數據機在傳送記錄片段之前等候的時間上限。 如果收集的記錄在上次傳送記錄片段之後的 MaxFlushTime 持續時間內未達到 MaxSegmentSize,則不論其大小為何,都會傳送記錄片段。 如果沒有記錄數據,則不會傳送任何通知。 如果裝置無法處理較小的排清時間,則裝置會傳回它可以在響應中處理的時間。 查詢或集合的回應包含目前設定 的 MaxFlushTime
12 4 LevelConfig MBIM_LOGGING_LEVEL_CONFIG 設定要收集記錄的層級。 查詢或集合的回應包含目前設定 的 LevelConfig

注意

如果數據無法在要求的 MaxSegmentSizeMaxFlushTimer 上提供記錄數據給 OS,它可以為這些參數選擇自己的值,並將 OS 更新為設定回應或未請求的事件。 如果 MaxSegmentSizeMaxFlushTimer 變更,OS 行為不會變更,因為它會接收數據封包,而不論數據封包為何,並將其傾印至檔案。

在上述MBIM_MODEM_LOGGING_CONFIG 結構中使用下列MBIM_LOGGING_LEVEL_CONFIG列舉。

類型 Description
MBIMLoggingLevelProd 0 適用於零售或生產母體擴展的遙測收集。 產生的記錄檔應為膠囊大小,且只包含密鑰數據機或 MBB 狀態或失敗資訊。
MBIMLoggingLevelLabVerbose 1 適用於開發成熟度低的 MBB 產品。 數據機的詳細完整堆疊擷取。 產生的數據機擷取應該讓IHV在記錄檔期間重新執行並完整復原擷取。
MBIMLoggingLevelLabMedium 2 適用於具有相對成熟度和穩定性的 MBB 產品的驗證和現場測試。 詳細數據和詳細資訊層級提供足夠的數據點,讓IHV工程師分級大部分的 MBB 失敗。
MBIMLoggingLevelLabLow 3 適用於自我主機層級記錄。 完整堆棧擷取數據機的摘要層級擷取。 啟用對數據機狀態和OS互動的醒目提示層級瞭解。
MBIMLoggingLevelOem 4 保留給 OEM 和 IHV 內部使用量。

設定

set 命令可用來設定數據機記錄的層級、區段大小和最大排清時間。 InformationBuffer 中使用MBIM_MODEM_LOGGING_CONFIG結構。

回應

MBIM_COMMAND_DONE中的 InformationBuffer 包含MBIM_MODEM_LOGGING_CONFIG結構。

未請求的事件

針對數據機需要通知 OS 內部變更的案例,支援未經請求的事件。 目前,在 Windows 10 版本 1903 中,這些案例不會發生。

狀態碼

此 CID 只會使用 MBIM 規格修訂 1.0 第 9.4.5 節中定義的泛型狀態代碼。

閑置期間的 DSS 會話行為

下表說明 DSS 會話在閑置的各個階段如何運作:

案例 DSS 工作階段狀態
系統睡眠、僅限數據機睡眠、重設和復原 DSS 會話保持開啟
系統關機、重新啟動、休眠 DSS 工作階段已關閉