概觀
本主題指定行動寬頻介面模型 (MBIM) 介面的延伸模組,以允許存取 UICC 智慧卡應用程式和檔案系統。 MBIM 的此延伸模組提供對符合 ETSI TS 102 221 技術規範的 UICC 應用程式和檔案系統的邏輯存取,而且在 Windows 10 版本 1903 及更高版本中皆受支援。
UICC 存取與安全性
UICC 提供檔案系統,並支援一組可並行執行的應用程式。 其中包括用於 UMTS 的 USIM、用於 CDMA 的 CSIM 和用於 IMS 的 ISIM。 SIM 是 UICC 的舊版部分,可建模為其中一個應用程式 (適用於 GSM) 。
ETSI TS 102 221 技術規範第 8.1 節中的下圖顯示了卡片應用結構範例。
UICC檔案系統可以看作是目錄樹的樹林。 舊版 SIM 樹狀結構植根於主檔案 (MF) ,最多包含兩個層級的子目錄 (專用檔案或 DF),其中包含包含各種類型資訊的元素檔案 (EF)。 SIM 在 MF 下定義了多個 DF,其中一個是 DFTelecom,它包含多種存取類型共用的資訊,例如一般電話簿。 其他應用程式會有效地實作為個別樹狀結構,每個應用程式都植根於自己的應用程式目錄檔案 (ADF)。 每個 ADF 都由應用程式識別碼識別,其長度最多可達 128 位。 卡片根目錄下的檔案 (圖表中 MF 下的 EFDir) 包含應用程式名稱和對應的識別碼。 在樹狀結構 (MF 或 ADF) 中,DF 和 EF 可能會由檔案標識碼的路徑來識別,其中檔案標識碼是 16 位整數。
NDIS 介面延伸模組
已定義下列 OID 以支援 UICC 應用程式和檔案系統存取。
- OID_WWAN_UICC_APP_LIST
- OID_WWAN_UICC_FILE_STATUS
- OID_WWAN_UICC_ACCESS_BINARY
- OID_WWAN_UICC_ACCESS_RECORD
- OID_WWAN_PIN_EX2
MBIM 服務和 CID 值
| 服務名稱 | 通用唯一識別碼 (UUID) | UUID 值 |
|---|---|---|
| Microsoft Low-Level UICC 存取功能 | UUID_MS_UICC_LOW_LEVEL | C2F6588E-F037-4BC9-8665-F4D44BD09367 |
| Microsoft基本IP連線延伸模組 | UUID_基本連接擴展 | 3D01DCC5-FEF5-4D05-9D3A-BEF7058E9AAF |
下表指定每個 CID 的 UUID 和命令程式代碼,以及 CID 是否支援 Set、Query 或 Event (notification) 要求。 如需參數、數據結構和通知的詳細資訊,請參閱本主題中的每個 CID 個別區段。
| CID | 通用唯一識別碼 (UUID) | 命令碼 | 設定 | 查詢 | 通知 |
|---|---|---|---|---|---|
| MBIM_CID_MS_UICC_APP_LIST | UUID_MS_UICC_LOW_LEVEL | 7 | N | 是 | N |
| MBIM_CID_MS_UICC_FILE_STATUS | UUID_MS_UICC_LOW_LEVEL | 8 | N | 是 | N |
| MBIM_CID_MS_UICC_ACCESS_BINARY | UUID_MS_UICC_LOW_LEVEL | 9 | 是 | 是 | N |
| MBIM_CID_MS_UICC_ACCESS_RECORD | UUID_MS_UICC_LOW_LEVEL | 10 | 是 | 是 | N |
| MBIM_CID_MS_PIN_EX | UUID_基本連接擴展 | 14 | 是 | 是 | N |
MBIM_CID_MS_UICC_APP_LIST
此 CID 會擷取 UICC 中的應用程式清單,以及它們的相關資訊。 當數據機中的 UICC 已完全初始化並準備好向行動電信業者註冊時,必須選取 UICC 應用程式進行註冊,而且使用此 CID 的查詢應該會在回應中使用的 MBIM_UICC_APP_LIST 結構的 ActiveAppIndex 欄位中傳回選取的應用程式。
參數
| 行動 | 設定 | 查詢 | 通知 |
|---|---|---|---|
| 指令 | 不適用 | 空 | 不適用 |
| 回應 | 不適用 | MBIM_UICC_APP_LIST | 不適用 |
查詢
MBIM_COMMAND_MSG的 InformationBuffer 是空的。
設定
不適用。
回應
MBIM_COMMAND_DONE 中的 InformationBuffer 包含下列MBIM_UICC_APP_LIST結構。
MBIM_UICC_APP_LIST (版本 1)
| Offset | 大小 | 領域 | 類型 | 說明 |
|---|---|---|---|---|
| 0 | 4 | 版本 | UINT32 | 後續結構的版本號碼。 此欄位必須設定為此結構第 1 版的 1。 |
| 4 | 4 | 應用程序計數 | UINT32 | 此回應中傳回的 UICC 應用程式 MBIM_UICC_APP_INFO 結構數目。 |
| 8 | 4 | ActiveApp索引 | UINT32(0..NumApp - 1) | 數據機選取的應用程式索引,以便向行動網路註冊。 此欄位必須介於 0 和 AppCount - 1 之間。 它會索引此回應所傳回的應用程式陣列。 如果未選取任何應用程式進行註冊,此欄位會包含 0xFFFFFFFF。 |
| 12 | 4 | 應用程式清單大小 | UINT32 | 應用程式清單數據的大小,以位元組為單位。 |
| 8*應用程式計數 | 應用程式清單 | OL_PAIR_LIST | 配對的第一個元素是 4 位元組欄位,其中包含 DataBuffer 中應用程式資訊的偏移量。 配對中的第二個元素是一個 4 位元組字段,表示應用程式資訊的大小。 | |
| 應用程式清單大小 | 資料緩衝器 (DataBuffer) | 資料緩衝器 | AppCount * MBIM_UICC_APP_INFO結構的陣列。 |
MBIM_UICC_APP_INFO
| Offset | 大小 | 領域 | 類型 | 說明 |
|---|---|---|---|---|
| 0 | 4 | 應用程式類型 | MBIM_UICC_APP_TYPE | UICC 應用程式的類型。 |
| 4 | 4 | AppIdOffset | 抵消 | 資料緩衝區中應用程式識別碼的偏移量。 只有第一個 AppIdSize 位元組才有意義。 如果應用程式識別碼超過 MBIM_MAXLENGTH_APPID 個位元組,則 AppIdSize 會指定實際長度,但只有前 MBIM_MAXLENGTH_APPID 個位元組位於此欄位中。 只有在 AppType 不是 MBIMUiccAppTypeMf、MBIMUiccAppTypeMfSIM 或 MBIMUiccAppTypeMfRUIM 時,此欄位才有效。 |
| 8 | 4 | AppIdSize (應用ID大小) | 尺寸 (0..16) | 應用程式識別碼的大小 (以位元組為單位),如 ETSI TS 102 221 技術規格第 8.3 節所定義。 AppIdSize 可能包含大於 16 的數字,但在此情況下,只有前 16 (MBIM_MAXLENGTH_APPID) 個位元組位於資料緩衝區中。 對於 MBIMUiccAppTypeMf、MBIMUiccAppTypeMfSIM 或 MBIMUiccAppTypeMfRUIM 應用程式類型,此欄位會設定為零。 |
| 12 | 應用程式名稱位移 | 抵消 | 資料緩衝區中應用程式名稱的位移量。 指定應用程式名稱的 UTF-8 字串。 此欄位的長度由 AppNameLength 指定。 如果長度大於或等於 MBIM_MAXLENGTH_APPNAME 個位元組,則此欄位會包含名稱的第一個MBIM_MAXLENGTH_APPNAME - 1 個位元組。 字串一律會以 Null 結束。 | |
| 16 | 4 | 應用程式名稱長度 | 尺寸 (0..256) | 應用程式名稱的長度 (以位元組為單位)。 AppNameLength 可能包含等於或大於 256 的數字,但在這些情況下,只有前 255 (MBIM_MAXLENGTH_APPNAME - 1) 個位元組位於資料緩衝區中。 |
| 20 | 4 | NumPinKeyRefs | 尺寸 (0..8) | 應用程式 PIN 金鑰參照的數目。 換句話說,有效的 PinKeyRef 元素數目。 虛擬 R-UIM 上的應用程式沒有 PIN 金鑰參照。 |
| 24 | 4 | 索引鍵參考偏移 | 抵消 | DataBuffer 中 PinKeyRef 的位移。 PinKeyRef 是一個位元組陣列,指定應用程式的 PIN 金鑰參考,以進行不同層級的驗證 (PIN1、PIN2 的金鑰,以及可能的通用 PIN),如 ETSI TS 102 221 技術規格的表 9.3 和第 9.4.2 節所定義。 如果是單一驗證卡,或不支援不同應用程式的不同應用程式金鑰的 MBB 驅動程式和/或數據機,PinKeyRef 欄位的第一個位元組必須是 0x01 (PIN1) ,第二個位元組必須是 0x81 (PIN2),如 ETSI TS 102 221 的第 9.5.1 節所述。 |
| 28 | 4 | KeyRef大小 | 尺寸 (0..8) | PinKeyRef 的大小。 |
| 32 | 資料緩衝器 (DataBuffer) | 資料緩衝器 | 包含單一驗證卡的 AppId、AppName 和 PinKeyRef,或不支援不同應用程式之間不同應用程式金鑰的 MBB 驅動程式和/或數據機的數據緩衝區,該欄位必須是0x01。 |
MBIM_UICC_APP_TYPE
| 類型 | 價值觀 | 說明 |
|---|---|---|
| MBIMUiccAppTypeUnknown | 0 | 未知的類型。 |
| MBIMUiccAppTypeMf | 1 | 根目錄在 MF 的舊版 SIM 卡目錄。 |
| MBIMUiccAppTypeMfSIM | 2 | 根目錄位於DF_GSM的舊版 SIM 卡目錄。 |
| MBIMUiccAppTypeMfRUIM | 3 | 在DF_CDMA根目錄的舊版 SIM 卡目錄。 |
| MBIMUiccAppTypeUSIM | 4 | USIM 應用程序。 |
| MBIMUicc應用類型CSIM | 5 | CSIM 應用程式。 |
| MBIMUiccAppTypeISIM | 6 | ISIM 應用程序。 |
常數
下列常數會針對MBIM_CID_MS_UICC_APP_INFO定義。
const int MBIM_MAXLENGTH_APPID = 32
const int MBIM_MAXLENGTH_APPNAME = 256
const int MBIM_MAXNUM_PINREF = 8
未請求的事件
不適用。
狀態代碼
下列狀態代碼適用:
| 狀態代碼 | 說明 |
|---|---|
| MBIM_STATUS_SUCCESS | 針對所有命令所定義的基本 MBIM 狀態。 |
| MBIM_STATUS_BUSY | 針對所有命令所定義的基本 MBIM 狀態。 |
| MBIM_STATUS_FAILURE(指示失敗狀態) | 針對所有命令所定義的基本 MBIM 狀態。 |
| MBIM狀態_不支持設備 | 針對所有命令所定義的基本 MBIM 狀態。 |
| MBIM_狀態_SIM未插入 | 無法執行 UICC 作業,因為缺少 UICC。 |
| MBIM_STATUS_SIM卡錯誤 | 無法執行 UICC 作業,因為 UICC 處於錯誤狀態。 |
| MBIM_STATUS_NOT_INITIALIZED | 無法執行 UICC 作業,因為 UICC 尚未完全初始化。 |
MBIM_CID_MS_UICC_FILE_STATUS
此 CID 會擷取指定 UICC 檔案的相關資訊。
參數
| 行動 | 設定 | 查詢 | 通知 |
|---|---|---|---|
| 指令 | 不適用 | MBIM_UICC_FILE_PATH | 不適用 |
| 回應 | 不適用 | MBIM_UICC_FILE_STATUS | 不適用 |
查詢
MBIM_COMMAND_MSG 的 InformationBuffer 包含目標 EF 作為MBIM_UICC_FILE_PATH結構。
MBIM_UICC_FILE_PATH (第 1 版)
| Offset | 大小 | 領域 | 類型 | 說明 |
|---|---|---|---|---|
| 0 | 4 | 版本 | UINT32 | 後續結構的版本號碼。 此欄位在此結構的第 1 版中必須設為 1。 |
| 4 | 4 | AppIdOffset | 抵消 | 位移量 (以位元組為單位),從此結構的開頭計算到包含應用程式識別碼的緩衝區。 |
| 8 | 4 | AppIdSize (應用ID大小) | 尺寸 (0..16) | 應用程式識別碼的大小,以位元組為單位,如 ETSI TS 102 221 技術規格的第 8.3 節所定義,。 對於 2G 卡片,此字段必須設定為零 (0)。 |
| 12 | 4 | 檔案路徑位移 | 抵消 | 位移 (以位元組為單位) ,從此結構的開頭計算到包含檔案路徑的緩衝區。 檔案路徑是 16 位元檔案 ID 的陣列。 第一個識別碼必須是 0x7FFF 或 0x3F00。 如果第一個標識碼是 0x7FFF,則路徑會相對於由 AppId所指定之應用程式的 ADF。 否則,它是從 MF 開始的絕對路徑。 |
| 16 | 4 | 檔案路徑大小 | 尺寸 (0..8) | 檔案路徑的大小,以位元組為單位。 |
| 20 | 資料緩衝器 (DataBuffer) | 資料緩衝器 | 包含 AppId 和 FilePath 的資料緩衝區。 |
設定
不適用。
回應
下列MBIM_UICC_FILE_STATUS結構會用於 InformationBuffer。
MBIM_UICC_FILE_STATUS (版本 1)
| Offset | 大小 | 領域 | 類型 | 說明 |
|---|---|---|---|---|
| 0 | 4 | 版本 | UINT32 | 後續結構的版本號碼。 此欄位在此結構的第 1 版中必須設為 1。 |
| 4 | 4 | 狀態字詞1 | UINT32(0..256) | UICC 命令專屬的傳回參數。 |
| 8 | 4 | 狀態字詞2 | UINT32(0..256) | UICC 命令專屬的傳回參數。 |
| 12 | 4 | 檔案可存取性 | MBIM_UICC_FILE_ACCESSIBILITY | UICC 檔案可存取性。 |
| 16 | 4 | 檔案類型 | MBIM_UICC_FILE_TYPE | UICC 檔案類型。 |
| 20 | 4 | 檔案結構 | MBIM_UICC_FILE_STRUCTURE | UICC 檔案結構。 |
| 24 | 4 | 項目數量 | UINT32 | UICC 檔案中的項目數。 對於透明和 TLV 檔案,這會設定為 1。 |
| 28 | 4 | 大小 | UINT32 | 每個專案的大小,以位元組為單位。 對於透明或 TLV 檔案,這是整個 EF 的大小。 對於記錄型檔案,這代表記錄總數。 |
| 32 | 16 | 檔案鎖定狀態 | MBIM_PIN_TYPE_EX[4] | 類型為 MBIM_PIN_TYPE_EX 的陣列,說明該檔案上每一個作業 (依該順序排列的 READ、UPDATE、ACTIVATE 及 DEACTIVATE) 的存取條件。 |
MBIM_UICC_FILE_ACCESSIBILITY
MBIM_UICC_FILE_ACCESSIBILITY列舉用於上述MBIM_UICC_FILE_STATUS結構中。
| 類型 | 價值觀 | 說明 |
|---|---|---|
| MBIMUiccFileAccessibilityUnknown | 0 | 檔案共用性未知。 |
| MBIMUiccFileAccessibility無法共享 | 1 | 不可共用的檔案。 |
| MBIMUiccFileAccessibilityShareable | 2 | 可共用的檔案。 |
MBIM_UICC_FILE_TYPE
MBIM_UICC_FILE_TYPE列舉用於上述MBIM_UICC_FILE_STATUS結構中。
| 類型 | 價值觀 | 說明 |
|---|---|---|
| MBIMUiccFileTypeUnknown | 0 | 檔案類型未知。 |
| MBIMUiccFileTypeWorkingEf | 1 | 工作 EF. |
| MBIMUiccFileTypeInternalEf | 2 | 內部 EF。 |
| MBIMUiccFileTypeDfOrAdf | 3 | 專用檔案,這是其他節點的父項目錄。 這可能是 DF 或 ADF。 |
MBIM_UICC_FILE_STRUCTURE
MBIM_UICC_FILE_STRUCTURE列舉用於上述MBIM_UICC_FILE_STATUS結構中。
| 類型 | 價值觀 | 說明 |
|---|---|---|
| MBIMUiccFileStructureUnknown | 0 | 未知的檔案結構。 |
| MBIMUiccFileStructureTransparent | 1 | 可變長度的單一記錄。 |
| MBIMUiccFileStructureCyclic | 2 | 一組循環的記錄,每一個長度相同。 |
| MBIMUiccFileStructureLinear | 3 | 一組線性記錄,每一個長度相同。 |
| MBIMUiccFileStructureBerTLV | 4 | 標記可存取的一組數據值。 |
MBIM_PIN_TYPE_EX
MBIM_PIN_TYPE_EX列舉會用於上述MBIM_UICC_FILE_STATUS結構中。
| 類型 | 價值觀 | 說明 |
|---|---|---|
| MBIMPinType無 | 0 | 未擱置任何 PIN 才能輸入。 |
| MBIMPinType自訂 | 1 | PIN 類型是自定義類型,而且不是此列舉中所列的其他 PIN 類型。 |
| MBIMPinType Pin1 | 2 | PIN1 金鑰。 |
| MBIMPin類型引腳2 | 3 | PIN2 金鑰。 |
| MBIMPinTypeDeviceSimPin | 4 | 裝置到 SIM 鍵。 |
| MBIMPinTypeDeviceFirstSimPin | 5 | 第一個 SIM 鍵的裝置。 |
| MBIMPinTypeNetworkPin | 6 | 網路個人化金鑰。 |
| MBIMPinTypeNetworkSubsetPin | 7 | 網路子集個人化金鑰。 |
| MBIMPinTypeServiceProviderPin | 8 | 服務提供者 (SP) 個人化金鑰。 |
| MBIMPinTypeCorporatePin | 9 | 公司個人化金鑰。 |
| MBIMPinTypeSubsidyLock | 10 | 補貼解除鎖定金鑰。 |
| MBIMPinTypePuk1 | 11 | 個人標識碼 1 解除鎖定金鑰 (PUK1)。 |
| MBIMPin類型Puk2 | 12 | 個人識別號 2 解除鎖定金鑰 (PUK2) 。 |
| MBIMPinTypeDeviceFirstSimPuk | 13 | 第一個 SIM PIN 解除鎖定金鑰的裝置。 |
| MBIMPinTypeNetworkPuk | 14 | 網路個人化解除鎖定金鑰。 |
| MBIMPinTypeNetworkSubsetPuk | 15 | 網路子集個人化解除鎖定密鑰。 |
| MBIMPinTypeServiceProviderPuk | 16 | 服務提供者 (SP) 個人化解除鎖定金鑰。 |
| MBIMPinTypeCorporatePuk | 17 | 公司個人化解除鎖定金鑰。 |
| MBIMPinTypeNev | 18 | NEV 金鑰。 |
| MBIMPinTypeAdm | 19 | 系統管理金鑰。 |
未請求的事件
不適用。
狀態代碼
下列狀態代碼適用:
| 狀態代碼 | 說明 |
|---|---|
| MBIM_STATUS_BUSY | 針對所有命令所定義的基本 MBIM 狀態。 |
| MBIM_STATUS_FAILURE(指示失敗狀態) | 針對所有命令所定義的基本 MBIM 狀態。 |
| MBIM_狀態_SIM未插入 | 無法執行 UICC 作業,因為缺少 UICC。 |
| MBIM_STATUS_SIM卡錯誤 | 無法執行 UICC 作業,因為 UICC 處於錯誤狀態。 |
| MBIM_狀態_共享性_條件_錯誤 | 無法選取檔案,因為它不可共用,且目前正在由其他應用程式存取。 SIM 卡傳回的狀態字是 6985。 |
MBIM_CID_MS_UICC_ACCESS_BINARY
此 CID 會傳送特定命令來存取結構類型為 MBIMUiccFileStructureTransparent 或 MBIMUiccFileStructureBerTLV 的 UICC 二進位檔。
參數
| 行動 | 設定 | 查詢 | 通知 |
|---|---|---|---|
| 指令 | 不適用 | MBIM_UICC_ACCESS_BINARY | 不適用 |
| 回應 | 不適用 | MBIM_UICC_RESPONSE | 不適用 |
查詢
讀取二進位檔案。 MBIM_COMMAND_MSG 的 InformationBuffer 包含 MBIM_UICC_ACCESS_BINARY 結構。 MBIM_UICC_RESPONSE結構會在 MBIM_COMMAND_DONE 的 InformationBuffer 中傳回。
MBIM_UICC_ACCESS_BINARY (版本 1)
| Offset | 大小 | 領域 | 類型 | 說明 |
|---|---|---|---|---|
| 0 | 4 | 版本 | UINT32 | 後續結構的版本號碼。 此欄位必須設定為此結構第 1 版的 1。 |
| 4 | 4 | AppIdOffset | 抵消 | 從此結構開頭到包含應用程式標識碼的緩衝區的位移量 (以位元組為單位)。 |
| 8 | 4 | AppIdSize (應用ID大小) | 尺寸 (0..16) | 應用程式識別碼的大小,以位元組為單位,如 ETSI TS 102 221 技術規格的第 8.3 節所定義,。 對於 2G 卡片,此字段必須設定為零 (0)。 |
| 12 | 4 | 檔案路徑位移 | 抵消 | 位移 (以位元組為單位) ,從此結構的開頭計算到包含檔案路徑的緩衝區。 檔案路徑是 16 位元檔案 ID 的陣列。 第一個識別碼必須是 0x7FFF 或 0x3F00。 如果第一個標識碼是 0x7FFF,則路徑會相對於由 AppId所指定之應用程式的 ADF。 否則,它是從 MF 開始的絕對路徑。 |
| 16 | 4 | 檔案路徑大小 | 大小 | 檔案路徑的大小,以位元組為單位。 |
| 20 | 4 | FileOffset | UINT32 | 從檔案讀取時要使用的偏移量。 此欄位可以大於 256,並且結合 ETSI TS 102 221 技術規格中所定義的位移高和位移低。 |
| 24 | 4 | NumberOfBytes | UINT32 | 要讀取的位元組數目。 例如,用戶端驅動程式可以使用此函式來讀取大於 256 個字節的透明(二進位)檔案,不過單一 UICC 作業中可讀取或寫入的最大數量是每個 ETSI TS 102 221 技術規格256 個字節。 函數有責任將其拆分為多個APDU,並在單個回應中將結果傳回。 |
| 28 | 4 | 本地引腳偏移 | 抵消 | 位移量 (以位元組為單位),從此結構的開頭計算到包含密碼的緩衝區。 這是本機 PIN (PIN2),用於作業需要本機 PIN 驗證的情況下使用。 |
| 32 | 4 | LocalPin大小 | 尺寸 (0..16) | 密碼的大小,以位元組為單位。 |
| 36 | 4 | BinaryDataOffset (二進位數據偏移量) | 抵消 | 位移 (以位元組為單位) 從此結構的開頭計算到包含命令特定資料的緩衝區。 二進位資料僅用於 SET 作業。 |
| 40 | 4 | 二進位資料大小 | 尺寸 (0..32768) | 資料大小 (以位元組為單位)。 |
| 44 | 資料緩衝器 (DataBuffer) | 資料緩衝器 | 包含 AppId、FilePath、LocalPin 和 BinaryData 的資料緩衝區。 |
設定
不適用。
回應
下列MBIM_UICC_RESPONSE結構會用於 InformationBuffer。
MBIM_UICC_RESPONSE (版本 1)
| Offset | 大小 | 領域 | 類型 | 說明 |
|---|---|---|---|---|
| 0 | 4 | 版本 | UINT32 | 後續結構的版本號碼。 此欄位在此結構的第 1 版中必須設為 1。 |
| 4 | 4 | 狀態字詞1 | UINT32(0..256) | UICC 命令專屬的傳回參數。 |
| 8 | 4 | 狀態字詞2 | UINT32(0..256) | UICC 命令專屬的傳回參數。 |
| 12 | 4 | 回應資料偏移 | 抵消 | 偏移量以位元組為單位,從此結構的開頭計算至包含回應資料的緩衝區。 回應資料僅用於 QUERY 作業。 |
| 16 | 4 | 回應資料大小 | 尺寸 (0..32768) | 資料大小 (以位元組為單位)。 |
| 20 | 資料緩衝器 (DataBuffer) | 資料緩衝器 | 包含 ResponseData 的資料緩衝區。 |
未請求的事件
不適用。
狀態代碼
下列狀態代碼適用:
| 狀態代碼 | 說明 |
|---|---|
| MBIM_STATUS_BUSY | 針對所有命令所定義的基本 MBIM 狀態。 |
| MBIM_STATUS_FAILURE(指示失敗狀態) | 針對所有命令所定義的基本 MBIM 狀態。 |
| MBIM_狀態_SIM未插入 | 無法執行 UICC 作業,因為缺少 UICC。 |
| MBIM_STATUS_SIM卡錯誤 | 無法執行 UICC 作業,因為 UICC 處於錯誤狀態。 |
| MBIM_STATUS_SHAREABILITY_CONDITION_ERROR(狀態共用條件錯誤) | 無法選取檔案,因為它不可共用,且目前正在由其他應用程式存取。 SIM 卡傳回的狀態字是 6985。 |
| MBIM_STATUS_PIN_FAILURE(PIN碼驗證失敗) | 由於 PIN 錯誤,作業失敗。 |
MBIM_CID_MS_通用集成電路卡存取記錄
此 CID 會傳送特定命令來存取 UICC 線性固定或循環檔案,其結構類型為 MBIMUiccFileStructureCyclic 或 MBIMUIccFileStructureLinear。
參數
| 行動 | 設定 | 查詢 | 通知 |
|---|---|---|---|
| 指令 | 不適用 | MBIM_UICC_ACCESS_RECORD | 不適用 |
| 回應 | 不適用 | MBIM_UICC_RESPONSE | 不適用 |
查詢
讀取記錄的內容。 MBIM_COMMAND_MSG 的 InformationBuffer 包含下列 MBIM_UICC_ACCESS_RECORD 結構。 MBIM_UICC_RESPONSE會在 MBIM_COMMAND_DONE 的 InformationBuffer 中傳回。
MBIM_UICC_ACCESS_RECORD (第 1 版)
| Offset | 大小 | 領域 | 類型 | 說明 |
|---|---|---|---|---|
| 0 | 4 | 版本 | UINT32 | 後續結構的版本號碼。 此欄位必須設定為此結構第 1 版的 1。 |
| 4 | 4 | AppIdOffset | 抵消 | 從此結構開頭到包含應用程式標識碼的緩衝區的位移量 (以位元組為單位)。 |
| 8 | 4 | AppIdSize (應用ID大小) | 尺寸 (0..16) | 應用程式識別碼的大小,以位元組為單位,如 ETSI TS 102 221 技術規格的第 8.3 節所定義,。 對於 2G 卡片,此字段必須設定為零 (0)。 |
| 12 | 4 | 檔案路徑位移 | 抵消 | 位移 (以位元組為單位) ,從此結構的開頭計算到包含檔案路徑的緩衝區。 檔案路徑是 16 位元檔案 ID 的陣列。 第一個識別碼必須是 0x7FFF 或 0x3F00。 如果第一個標識碼是 0x7FFF,則路徑會相對於由 AppId所指定之應用程式的 ADF。 否則,它是從 MF 開始的絕對路徑。 |
| 16 | 4 | 檔案路徑大小 | 大小 | 檔案路徑的大小,以位元組為單位。 |
| 20 | 4 | 記錄號碼 | UINT32(0..256) | 記錄編號。 這代表所有時間的絕對記錄索引。 不支援相對記錄存取,因為數據機可以在檔案上執行多個存取權(NEXT、PREVIOUS)。 |
| 24 | 4 | 本地引腳偏移 | 抵消 | 位移量 (以位元組為單位),從此結構的開頭計算到包含密碼的緩衝區。 鎖定密碼是以空值結尾的 UTF-8 十進位數字字串。 |
| 28 | 4 | LocalPin大小 | 尺寸 (0..16) | 密碼的大小,以位元組為單位。 |
| 32 | 4 | 記錄數據偏移量 | 抵消 | 位移 (以位元組為單位) 從此結構的開頭計算到包含命令特定資料的緩衝區。 記錄資料僅用於 SET 作業。 |
| 36 | 4 | 記錄資料大小 | 尺寸 (0..256) | 資料大小 (以位元組為單位)。 |
| 40 | 資料緩衝器 (DataBuffer) | 資料緩衝器 | 包含 AppId、FilePath、LocalPin 和 RecordData 的資料緩衝區。 |
設定
不適用。
回應
MBIM_UICC_RESPONSE結構會用於 InformationBuffer。
未請求的事件
不適用。
狀態代碼
下列狀態代碼適用:
| 狀態代碼 | 說明 |
|---|---|
| MBIM_STATUS_BUSY | 針對所有命令所定義的基本 MBIM 狀態。 |
| MBIM_STATUS_FAILURE(指示失敗狀態) | 針對所有命令所定義的基本 MBIM 狀態。 |
| MBIM_狀態_SIM未插入 | 無法執行 UICC 作業,因為缺少 UICC。 |
| MBIM_STATUS_SIM卡錯誤 | 無法執行 UICC 作業,因為 UICC 處於錯誤狀態。 |
| MBIM_狀態_共享性_條件_錯誤 | 無法選取檔案,因為它不可共用,且目前正在由其他應用程式存取。 SIM 卡傳回的狀態字是 6985。 |
| MBIM_STATUS_PIN_FAILURE (PIN 驗證失敗) | 由於 PIN 錯誤,作業失敗。 |
MBIM_CID_MS_PIN_EX
此 CID 用於執行 ETSI TS 102 221 技術規範第 9 節中定義的所有 PIN 安全操作。 CID 類似於 MBIM_CID_MS_PIN,但將其擴展為支持多應用程序 UICC 卡。 僅支援具有單一驗證功能的 UICC。 不支援支援多個應用程式 PIN 的多驗證支援 UIC。 一個應用程式 PIN (PIN1) 會指派給 UICC 上的所有 ADF/DF 和檔案。 不過,每個應用程式都可以將本機 PIN (PIN2) 指定為層級 2 用戶驗證需求,進而產生每個存取命令的額外驗證需求。 此案例是MBIM_CID_MS_PIN_EX支援的。
就像 MBIM_CID_MS_PIN 一樣,使用 MBIM_CID_MS_PIN_EX設備一次只報告一個 PIN。 如果已啟用多個 PIN 碼,且也已啟用報告多個 PIN,則函式必須先報告 PIN1。 例如,如果已啟用補貼鎖定報告,且已啟用 SIM 卡的 PIN 1,則只有在成功驗證 PIN1 之後,才應該在後續查詢要求中報告補貼鎖定 PIN。 允許空的 PIN 與 MBIMPinOperationEnter 一起使用。 將 PinSize 設定為零,即可指定空 PIN。 在此情況下,SET 命令類似於 QUERY,並傳回所參考 PIN 的狀態。 這完全符合 ETSI TS 102 221 技術規格第 11.1.9 節中所指定 VERIFY 命令的行為。
參數
| 行動 | 設定 | 查詢 | 通知 |
|---|---|---|---|
| 指令 | MBIM_SET_PIN_EX | MBIM_PIN_APP | 不適用 |
| 回應 | MBIM_PIN_INFO_EX | MBIM_PIN_INFO_EX | 不適用 |
查詢
下列MBIM_PIN_APP結構會用於 InformationBuffer。
MBIM_PIN_APP (第 1 版)
| Offset | 大小 | 領域 | 類型 | 說明 |
|---|---|---|---|---|
| 0 | 4 | 版本 | UINT32 | 後續結構的版本號碼。 此欄位必須設定為此結構第 1 版的 1。 |
| 4 | 4 | AppIdOffset | 抵消 | 從此結構開頭到包含應用程式標識碼的緩衝區的位移量 (以位元組為單位)。 |
| 8 | 4 | AppIdSize (應用ID大小) | 尺寸 (0..16) | 應用程式識別碼的大小,以位元組為單位,如 ETSI TS 102 221 技術規格的第 8.3 節所定義,。 對於 2G 卡片,此字段必須設定為零 (0)。 |
| 12 | 資料緩衝器 (DataBuffer) | 資料緩衝器 | ETSI TS 102 221 技術規格中定義的 AppId。 |
設定
下列MBIM_SET_PIN_EX結構會用於 InformationBuffer。
MBIM_SET_PIN_EX
| Offset | 大小 | 領域 | 類型 | 說明 |
|---|---|---|---|---|
| 0 | 4 | PinType | MBIM_PIN_TYPE_EX | PIN 類型。 請參閱本主題中的MBIM_PIN_TYPE_EX表格。 |
| 4 | 4 | 引腳操作 | MBIM_PIN_OPERATION(MBIM 密碼操作) | PIN 操作 請參閱 MBIM 1.0。 |
| 8 | 4 | 引腳偏移 | 抵消 | 位移 (以位元組為單位) 從此結構的開頭計算到字串 PIN ,代表要執行動作的 PIN 值,或啟用或停用 PIN 設定所需的 PIN 值。 此欄位適用於 PinOperation的所有值。 |
| 12 | 4 | 針腳大小 | 尺寸 (0..32) | 用於 PIN 的大小 (以位元組為單位)。 |
| 16 | 4 | NewPinOffset (新引腳偏移) | 抵消 | 位移 (以位元組為單位) 從此結構的開頭計算到 NewPin 字串,代表 PinOperation 為 MBIMPinOperationChange 或 MBIMPinOperationEnter 時要針對 PinTypeMBIMPinTypePuk1 或 PinTypeMBIMPinTypePuk2 設定的新 PIN 值。 |
| 20 | 4 | NewPin大小 | 尺寸 (0..32) | 用於 NewPin 的大小 (以位元組為單位)。 |
| 24 | 4 | AppIdOffset | 抵消 | 位移量 (以位元組為單位),從此結構的開頭計算到包含應用程式識別碼的緩衝區。 |
| 28 | 4 | AppIdSize (應用ID大小) | 尺寸 (0..16) | 應用程式識別碼的大小,以位元組為單位,如 ETSI TS 102 221 技術規格的第 8.3 節所定義,。 對於 2G 卡片,此字段必須設定為零 (0)。 |
| 32 | 資料緩衝器 (DataBuffer) | 資料緩衝器 | 包含 Pin、NewPin 和 AppId 的資料緩衝區。 |
回應
下列MBIM_PIN_INFO_EX結構會用於 InformationBuffer。
| Offset | 大小 | 領域 | 類型 | 說明 |
|---|---|---|---|---|
| 0 | 4 | PinType | MBIM_PIN_TYPE_EX | PIN 類型。 請參閱本主題中的MBIM_PIN_TYPE_EX表格。 |
| 4 | 4 | PinState | MBIM_PIN_STATE | PIN 狀態。 請參閱 MBIM 1.0。 |
| 8 | 4 | 剩餘嘗試次數 | UINT32 | 任何 PIN 相關作業 (例如 enter、啟用或停用) 的剩餘嘗試次數。 不支援此資訊的裝置必須將此成員設定為0xFFFFFFFF。 |
未請求的事件
不適用。
狀態代碼
下列狀態代碼適用:
| 狀態代碼 | 說明 |
|---|---|
| MBIM_STATUS_BUSY | 針對所有命令所定義的基本 MBIM 狀態。 |
| MBIM_STATUS_FAILURE(指示失敗狀態) | 針對所有命令所定義的基本 MBIM 狀態。 |
| MBIM_狀態_SIM未插入 | 無法執行 UICC 作業,因為缺少 UICC。 |
| MBIM_STATUS_SIM卡錯誤 | 無法執行 UICC 作業,因為 UICC 處於錯誤狀態。 |
| MBIM_STATUS_PIN已停用 | 作業失敗,因為 PIN 已停用。 |
| MBIM_STATUS_需要PIN碼 | 作業失敗,因為必須輸入 PIN 才能繼續。 |
| MBIM狀態_不支持設備 | 作業失敗,因為裝置不支援對應 PIN 類型的 SET。 |