MB UICC アプリケーションとファイル システム アクセス
概要
このトピックでは、UICC スマート カード アプリケーションとファイル システムへのアクセスを許可するモバイル ブロードバンド インターフェイス モデル (MBIM) インターフェイスの拡張機能の指定について説明します。 MBIM へのこの拡張は、UICC の ETSI TS 102 221 技術仕様に準拠したアプリケーションとファイル システムへの論理アクセスを公開するもので、Windows 10 バージョン 1903 以降でサポートされています。
UICC のアクセスとセキュリティ
UICC はファイル システムを提供し、同時に実行できる一連のアプリケーションをサポートします。 UMTS の場合は USIM、CDMA の場合は CSIM、および IMS の場合は ISIM がこれに該当します。 SIM は UICC のレガシ部分であり、これらのアプリケーションの 1 つとしてモデル化できます (GSM の場合)。
次の図は ETSI TS 102 221 技術仕様のセクション 8.1 から抜粋したもので、カード アプリケーション構造の例を示します。
UICC ファイル システムは、ディレクトリ ツリーのフォレストと見なすことができます。 レガシ SIM ツリーはマスター ファイル (MF) をルートとし、さまざまな種類の情報を保持する EF (Elemental File) を含んだ最大 2 つのサブディレクトリ レベル (専用ファイル (DF)) が含まれています。 SIM は MF の下に DF を定義します。そのうちの 1 つ、DFTelecom には複数のアクセスの種類に共通する情報 (共通電話帳など) が含まれています。 追加アプリケーションは、それぞれ独自のアプリケーション ディレクトリ ファイル (ADF) にルート化された個別のツリーとして、効果的に実装されます。 各 ADF は、最大 128 ビット長を指定できるアプリケーション識別子によって識別されます。 カード ルートの下にあるファイル (図の MF の下にある EFDir) には、アプリケーション名と対応する識別子が含まれています。 ツリー (MF または ADF) 内では、DF と EF は、ファイル ID のパス (ファイル ID は 16 ビットの整数) で識別される場合があります。
NDIS インターフェイス拡張機能
UICC アプリケーションとファイル システムのアクセスをサポートするために、次の OID が定義されています。
- 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 低レベル UICC アクセス | UUID_MS_UICC_LOW_LEVEL | C2F6588E-F037-4BC9-8665-F4D44BD09367 |
Microsoft Basic IP Connectivity Extensions | UUID_BASIC_CONNECT_EXTENSIONS | 3D01DCC5-FEF5-4D05-9D3A-BEF7058E9AAF |
次の表では、各 CID の UUID とコマンド コード、および CID が Set、Query、または Event (通知) 要求をサポートするかどうかの指定について説明します。 パラメーター、データ構造、および通知の詳細については、このトピック内の CID ごとの個々のセクションを参照してください。
CID | UUID | コマンド コード | Set | クエリ | Notify |
---|---|---|---|---|---|
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_BASIC_CONNECT_EXTENSIONS | 14 | 年 | 年 | N |
MBIM_CID_MS_UICC_APP_LIST
この CID は、UICC 内のアプリケーションの一覧とその情報を取得します。 モデムの UICC が完全に初期化され、通信事業者に登録する準備ができたら、登録する UICC アプリケーションを選択する必要があります。この CID を使用したクエリでは、応答で使用される MBIM_UICC_APP_LIST 構造体の ActiveAppIndex フィールドで選択されたアプリケーションを返す必要があります。
パラメーター
操作 | Set | クエリ | 通知 |
---|---|---|---|
command | 適用なし | Empty | 適用なし |
回答 | 適用なし | MBIM_UICC_APP_LIST | 適用なし |
クエリ
MBIM_COMMAND_MSG の InformationBuffer は空です。
Set
該当なし。
回答
MBIM_COMMAND_DONE の InformationBuffer には、次の MBIM_UICC_APP_LIST 構造体が含まれています。
MBIM_UICC_APP_LIST (バージョン 1)
オフセット | サイズ | フィールド | タイプ | 説明 |
---|---|---|---|---|
0 | 4 | バージョン | UINT32 | その次の構造体のバージョン番号。 この構造体のバージョン 1 の場合、このフィールドを 1 に設定する必要があります。 |
4 | 4 | AppCount | UINT32 | この応答で返される UICC アプリケーションの MBIM_UICC_APP_INFO 構造体の数。 |
8 | 4 | ActiveAppIndex | UINT32(0..NumApp - 1) | モバイル ネットワークへの登録でモデムが選択したアプリケーションのインデックス。 このフィールドに指定できるのは、0 から AppCount - 1 までの値です。 この応答によって返されるアプリケーションの配列にインデックスを作成します。 登録のアプリケーションが選択されていない場合、このフィールドには 0xFFFFFFFF が含まれます。 |
12 | 4 | AppListSize | UINT32 | アプリ リスト データのサイズ (バイト単位)。 |
8*AppCount | AppList | OL_PAIR_LIST | ペアの最初の要素は、DataBuffer のアプリ情報のオフセットを持つ 4 バイトのフィールドです。 ペアの 2 番目の要素は、アプリ情報のサイズを持つ 4 バイト のフィールドです。 | |
AppListSize | DataBuffer | DATABUFFER | AppCount * MBIM_UICC_APP_INFO 構造体の配列。 |
MBIM_UICC_APP_INFO
オフセット | サイズ | フィールド | タイプ | 説明 |
---|---|---|---|---|
0 | 4 | AppType | MBIM_UICC_APP_TYPE | UICC アプリケーションの種類。 |
4 | 4 | AppIdOffset | OFFSET | データバッファー内のアプリケーション ID のオフセット。 最初の AppIdSize バイトのみが意味を持ちます。 アプリケーション ID が MBIM_MAXLENGTH_APPID バイトより長い場合、AppIdSize は実際の長さを指定しますが、このフィールドには最初の MBIM_MAXLENGTH_APPID バイトのみが含まれます。 このフィールドは、AppType が MBIMUiccAppTypeMf、MBIMUiccAppTypeMfSIM、または MBIMUiccAppTypeMfRUIM ではない場合のみ有効です。 |
8 | 4 | AppIdSize | SIZE (0..16) | ETSI TS 102 221 技術仕様のセクション 8.3 で定義されているアプリケーション ID のサイズ (バイト単位)。 AppIdSize には 16 より大きい数値を含めることができますが、その場合は、最初の 16 (MBIM_MAXLENGTH_APPID) バイトのみがデータバッファーに含まれます。 このフィールドは、アプリの種類が MBIMUiccAppTypeMf、MBIMUiccAppTypeMfSIM、または MBIMUiccAppTypeMfRUIM の場合、0 に設定されます。 |
12 | AppNameOffset | OFFSET | データバッファー内のアプリケーション名のオフセット。 アプリケーションの名前を指定する UTF-8 文字列。 このフィールドの長さは AppNameLength によって指定されます。 長さが MBIM_MAXLENGTH_APPNAME バイト以上の場合、このフィールドには名前の最初の MBIM_MAXLENGTH_APPNAME - 1 バイトが含まれます。 文字列は常に null で終わります。 | |
16 | 4 | AppNameLength | SIZE (0..256) | アプリケーション名の長さ (バイト単位)。 AppNameLength には 256 以上の数値を含むことができますが、このような場合は、最初の 255 (MBIM_MAXLENGTH_APPNAME - 1) バイトのみがデータバッファーに含まれます。 |
20 | 4 | NumPinKeyRefs | SIZE (0..8) | アプリケーションの PIN キー参照の数。 つまり、有効な PinKeyRef の要素の数です。 仮想 R-UIM 上のアプリケーションには、PIN キー参照がありません。 |
24 | 4 | KeyRefOffset | OFFSET | DataBuffer の PinKeyRef のオフセット。 PinKeyRef は、ETSI TS 102 221 技術仕様の表 9.3 とセクション 9.4.2 で定義されているように、さまざまな検証レベル (PIN1、PIN2、場合によってはユニバーサル PIN のキー) に対するアプリケーションの PIN キー参照を指定するバイト配列です。 単一検証カードの場合、または異なるアプリケーションに対して異なるアプリケーション キーをサポートしていないMBB ドライバーやモデムの場合、ETSI TS 102 221 のセクション 9.5.1 で説明されているように、PinKeyRef フィールドの最初のバイトは 0x01 (PIN1)、2 番目のバイトは 0x81 (PIN2) である必要があります。 |
28 | 4 | KeyRefSize | SIZE (0..8) | PinKeyRef のサイズ。 |
32 | DataBuffer | DATABUFFER | 単一検証カードの AppId、AppName、PinKeyRef を含むデータ バッファー、または異なるアプリケーションのさまざまなアプリケーション キーをサポートしていない MBB ドライバーやモデムを含むデータ バッファーは、このフィールドを 0x01 にする必要があります。 |
MBIM_UICC_APP_TYPE
Type | 値 | 説明 |
---|---|---|
MBIMUiccAppTypeUnknown | 0 | 不明な型です。 |
MBIMUiccAppTypeMf | 1 | MF をルートとするレガシ SIM ディレクトリ。 |
MBIMUiccAppTypeMfSIM | 2 | DF_GSM をルートとするレガシ SIM ディレクトリ。 |
MBIMUiccAppTypeMfRUIM | 3 | DF_CDMA をルートとするレガシ SIM ディレクトリ。 |
MBIMUiccAppTypeUSIM | 4 | USIM アプリケーション。 |
MBIMUiccAppTypeCSIM | 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_STATUS_NO_DEVICE_SUPPORT | すべてのコマンドにおいて定義される基本的な MBIM 状態。 |
MBIM_STATUS_SIM_NOT_INSERTED | UICC が見つからないため、UICC オペレーションを実行できません。 |
MBIM_STATUS_BAD_SIM | UICC がエラー状態であるため、UICC オペレーションを実行できません。 |
MBIM_STATUS_NOT_INITIALIZED | UICC がまだ完全に初期化されていないため、UICC 操作を実行できません。 |
MBIM_CID_MS_UICC_FILE_STATUS
この CID は、指定された UICC ファイルに関する情報を取得します。
パラメーター
操作 | Set | クエリ | 通知 |
---|---|---|---|
command | 適用なし | MBIM_UICC_FILE_PATH | 適用なし |
回答 | 適用なし | MBIM_UICC_FILE_STATUS | 適用なし |
クエリ
MBIM_COMMAND_MSG の InformationBuffer には、MBIM_UICC_FILE_PATH 構造体としてターゲット EF が含まれています。
MBIM_UICC_FILE_PATH (バージョン 1)
オフセット | サイズ | フィールド | タイプ | 説明 |
---|---|---|---|---|
0 | 4 | バージョン | UINT32 | その次の構造体のバージョン番号。 この構造体のバージョン 1 では、このフィールドで 1 を指定する必要があります。 |
4 | 4 | AppIdOffset | OFFSET | この構造体の先頭から計算された、アプリケーション ID を含むバッファーに対するオフセット (バイト単位)。 |
8 | 4 | AppIdSize | SIZE (0..16) | ETSI TS 102 221 技術仕様のセクション 8.3 で定義されているアプリケーション ID のサイズ (バイト単位)。 2G カードの場合、このフィールドはゼロ (0) に設定する必要があります。 |
12 | 4 | FilePathOffset | OFFSET | この構造体の先頭から計算された、ファイル パスを含むバッファーに対するオフセット (バイト単位)。 ファイル パスは、16 ビットのファイル ID の配列です。 最初の ID は、0x7FFF または 0x3F00 である必要があります。 最初の ID が 0x7FFF の場合、パスは AppId で指定されたアプリケーションの ADF に対する相対パスになります。 それ以外の場合は、MF から始まる絶対パスです。 |
16 | 4 | FilePathSize | SIZE (0..8) | ファイル パスのサイズ (バイト単位)。 |
20 | DataBuffer | DATABUFFER | AppId と FilePath を含むデータ バッファー。 |
Set
該当なし。
回答
InformationBuffer では、次の MBIM_UICC_FILE_STATUS 構造体が使用されます。
MBIM_UICC_FILE_STATUS (バージョン 1)
オフセット | サイズ | フィールド | タイプ | 説明 |
---|---|---|---|---|
0 | 4 | バージョン | UINT32 | その次の構造体のバージョン番号。 この構造体のバージョン 1 では、このフィールドで 1 を指定する必要があります。 |
4 | 4 | StatusWord1 | UINT32(0..256) | UICC コマンドに固有の戻り値パラメーター。 |
8 | 4 | StatusWord2 | UINT32(0..256) | UICC コマンドに固有の戻り値パラメーター。 |
12 | 4 | FileAccessibility | MBIM_UICC_FILE_ACCESSIBILITY | UICC ファイルのアクセシビリティ。 |
16 | 4 | FileType | MBIM_UICC_FILE_TYPE | UICC ファイルの種類。 |
20 | 4 | FileStructure | MBIM_UICC_FILE_STRUCTURE | UICC ファイル構造。 |
24 | 4 | ItemCount | UINT32 | UICC ファイル内の項目の数。 透過的ファイルと TLV ファイルの場合、これを 1 に設定します。 |
28 | 4 | サイズ | UINT32 | 各項目のサイズ (バイト単位)。 透過的ファイルまたは TLV ファイルの場合、これは EF 全体のサイズです。 レコードベースのファイルの場合、これはレコードの合計数を表します。 |
32 | 16 | FileLockStatus | MBIM_PIN_TYPE_EX[4] | そのファイルでの各操作 (READ、UPDATE、ACTIVATE、および DEACTIVATE) のアクセス条件を記述する MBIM_PIN_TYPE_EX 型の配列。 |
MBIM_UICC_FILE_ACCESSIBILITY
MBIM_UICC_FILE_ACCESSIBILITY 列挙は、上記の MBIM_UICC_FILE_STATUS 構造体で使用されます。
Type | 値 | 説明 |
---|---|---|
MBIMUiccFileAccessibilityUnknown | 0 | ファイルの共有可能性が不明です。 |
MBIMUiccFileAccessibilityNotShareable | 1 | 共有できないファイル。 |
MBIMUiccFileAccessibilityShareable | 2 | 共有可能なファイル。 |
MBIM_UICC_FILE_TYPE
MBIM_UICC_FILE_TYPE 列挙は、上記の MBIM_UICC_FILE_STATUS 構造体で使用されます。
Type | 値 | 説明 |
---|---|---|
MBIMUiccFileTypeUnknown | 0 | ファイルの種類が不明です。 |
MBIMUiccFileTypeWorkingEf | 1 | 作業中の EF。 |
MBIMUiccFileTypeInternalEf | 2 | 内部 EF。 |
MBIMUiccFileTypeDfOrAdf | 3 | 専用ファイル (他のノードの親であるディレクトリ)。 DF または ADF を指定できます。 |
MBIM_UICC_FILE_STRUCTURE
MBIM_UICC_FILE_STRUCTURE 列挙は、上記の MBIM_UICC_FILE_STATUS 構造体で使用されます。
Type | 値 | 説明 |
---|---|---|
MBIMUiccFileStructureUnknown | 0 | 不明なファイル構造。 |
MBIMUiccFileStructureTransparent | 1 | 可変長の単一レコード。 |
MBIMUiccFileStructureCyclic | 2 | それぞれ長さが同じレコードの循環セット。 |
MBIMUiccFileStructureLinear | 3 | それぞれ長さが同じレコードの線形セット。 |
MBIMUiccFileStructureBerTLV | 4 | タグでアクセスできるデータ値セット。 |
MBIM_PIN_TYPE_EX
MBIM_PIN_TYPE_EX 列挙は、上記の MBIM_UICC_FILE_STATUS 構造体で使用されます。
Type | 値 | 説明 |
---|---|---|
MBIMPinTypeNone | 0 | 入力が保留されている PIN はありません。 |
MBIMPinTypeCustom | 1 | PIN の種類はカスタム型であり、この列挙に記載されている他の PIN の種類のいずれにも該当しません。 |
MBIMPinTypePin1 | 2 | PIN1 キー。 |
MBIMPinTypePin2 | 3 | PIN2 キー。 |
MBIMPinTypeDeviceSimPin | 4 | SIM キーへのデバイス。 |
MBIMPinTypeDeviceFirstSimPin | 5 | 最初の SIM キーへのデバイス。 |
MBIMPinTypeNetworkPin | 6 | ネットワーク パーソナル化キー。 |
MBIMPinTypeNetworkSubsetPin | 7 | ネットワーク サブセット パーソナル化キー。 |
MBIMPinTypeServiceProviderPin | 8 | サービス プロバイダー (SP) パーソナル化キー。 |
MBIMPinTypeCorporatePin | 9 | 企業パーソナル化キー。 |
MBIMPinTypeSubsidyLock | 10 | 補助ロック解除キー。 |
MBIMPinTypePuk1 | 11 | 暗唱番号 1 ロック解除キー (PUK1)。 |
MBIMPinTypePuk2 | 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_STATUS_SIM_NOT_INSERTED | UICC が見つからないため、UICC オペレーションを実行できません。 |
MBIM_STATUS_BAD_SIM | UICC がエラー状態であるため、UICC 操作を実行できません。 |
MBIM_STATUS_SHAREABILITY_CONDITION_ERROR | ファイルは共有可能ではなく、現在、別のアプリケーションからアクセスされているため、選択できません。 SIM によって返される状態ワードは 6985 です。 |
MBIM_CID_MS_UICC_ACCESS_BINARY
この CID は、UICC バイナリ ファイルにアクセスするための特定のコマンドを送信します。構造体型は、MBIMUiccFileStructureTransparent または MBIMUiccFileStructureBerTLV です。
パラメーター
操作 | Set | クエリ | 通知 |
---|---|---|---|
command | 適用なし | MBIM_UICC_ACCESS_BINARY | 適用なし |
回答 | 適用なし | MBIM_UICC_RESPONSE | 適用なし |
クエリ
バイナリ ファイルを読み取ります。 MBIM_COMMAND_MSG の InformationBuffer には、MBIM_UICC_ACCESS_BINARY 構造体が含まれています。 MBIM_COMMAND_DONE の InformationBuffer に MBIM_UICC_RESPONSE 構造体が返されます。
MBIM_UICC_ACCESS_BINARY (バージョン 1)
オフセット | サイズ | フィールド | タイプ | 説明 |
---|---|---|---|---|
0 | 4 | バージョン | UINT32 | その次の構造体のバージョン番号。 この構造体のバージョン 1 の場合、このフィールドを 1 に設定する必要があります。 |
4 | 4 | AppIdOffset | OFFSET | この構造体の先頭から計算された、アプリケーション ID を含むバッファーに対するオフセット (バイト単位)。 |
8 | 4 | AppIdSize | SIZE (0..16) | ETSI TS 102 221 技術仕様のセクション 8.3 で定義されているアプリケーション ID のサイズ (バイト単位)。 2G カードの場合、このフィールドはゼロ (0) に設定する必要があります。 |
12 | 4 | FilePathOffset | OFFSET | この構造体の先頭から計算された、ファイル パスを含むバッファーに対するオフセット (バイト単位)。 ファイル パスは、16 ビットのファイル ID の配列です。 最初の ID は、0x7FFF または 0x3F00 である必要があります。 最初の ID が 0x7FFF の場合、パスは AppId で指定されたアプリケーションの ADF に対する相対パスになります。 それ以外の場合は、MF から始まる絶対パスです。 |
16 | 4 | FilePathSize | SIZE | ファイル パスのサイズ (バイト単位)。 |
20 | 4 | FileOffset | UINT32 | ファイルから読み取るときに使用するオフセット。 このフィールドは 256 より大きい場合があり、ETSI TS 102 221 技術仕様で定義されているオフセット ハイとオフセット ローの両方を組み合わせます。 |
24 | 4 | NumberOfBytes | UINT32 | 読み取るバイト数。 たとえば、1 つの UICC 操作で読み取れるまたは書き込める最大量は ETSI TS 102 221 技術仕様に従って 256 バイトですが、クライアント ドライバーはこの関数を使用して、256 バイトを超える透過的な (バイナリ) ファイルを読み取ることができます。 これを複数の APDU に分割し、1 つの応答で結果を返すのがこの関数の役割です。 |
28 | 4 | LocalPinOffset | OFFSET | この構造体の先頭から計算された、パスワードを含むバッファーに対するオフセット (バイト単位)。 これはローカル PIN (PIN2) であり、操作でローカル PIN 検証が必要な場合に使用されます。 |
32 | 4 | LocalPinSize | SIZE (0..16) | パスワードのサイズ (バイト単位)。 |
36 | 4 | BinaryDataOffset | OFFSET | この構造体の先頭から計算された、コマンド固有のデータを含むバッファーに対するオフセット (バイト単位)。 バイナリ データは、SET 操作にのみ使用されます。 |
40 | 4 | BinaryDataSize | SIZE (0..32768) | データのサイズ (単位: バイト)。 |
44 | DataBuffer | DATABUFFER | AppId、FilePath、LocalPin、BinaryData を含むデータ バッファー。 |
Set
該当なし。
回答
InformationBuffer では、次の MBIM_UICC_RESPONSE 構造体が使用されます。
MBIM_UICC_RESPONSE (バージョン 1)
オフセット | サイズ | フィールド | タイプ | 説明 |
---|---|---|---|---|
0 | 4 | バージョン | UINT32 | その次の構造体のバージョン番号。 この構造体のバージョン 1 では、このフィールドで 1 を指定する必要があります。 |
4 | 4 | StatusWord1 | UINT32(0..256) | UICC コマンドに固有の戻り値パラメーター。 |
8 | 4 | StatusWord2 | UINT32(0..256) | UICC コマンドに固有の戻り値パラメーター。 |
12 | 4 | ResponseDataOffset | OFFSET | この構造体の先頭から計算された、応答データを含むバッファーに対するオフセット (バイト単位)。 応答データは、QUERY 操作にのみ使用されます。 |
16 | 4 | ResponseDataSize | SIZE (0..32768) | データのサイズ (単位: バイト)。 |
20 | DataBuffer | DATABUFFER | ResponseData が格納されているデータ バッファー。 |
要求されていないイベント
該当なし。
状態コード
次の状態コードが適用されます。
状態コード | 説明 |
---|---|
MBIM_STATUS_BUSY | すべてのコマンドにおいて定義される基本的な MBIM 状態。 |
MBIM_STATUS_FAILURE | すべてのコマンドで定義されている基本的なMBIM 状態。 |
MBIM_STATUS_SIM_NOT_INSERTED | UICC が見つからないため、UICC オペレーションを実行できません。 |
MBIM_STATUS_BAD_SIM | UICC がエラー状態であるため、UICC 操作を実行できません。 |
MBIM_STATUS_SHAREABILITY_CONDITION_ERROR | ファイルは共有可能ではなく、現在、別のアプリケーションからアクセスされているため、選択できません。 SIM によって返される状態ワードは 6985 です。 |
MBIM_STATUS_PIN_FAILURE | PIN エラーが発生したため、操作は失敗しました。 |
MBIM_CID_MS_UICC_ACCESS_RECORD
この CID は、UICC 線形固定ファイルまたは循環ファイルにアクセスするための特定のコマンドを送信します。構造体型は MBIMUiccFileStructureCyclic または MBIMUIccFileStructureLinear です。
パラメーター
操作 | Set | クエリ | 通知 |
---|---|---|---|
command | 適用なし | 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)
オフセット | サイズ | フィールド | タイプ | 説明 |
---|---|---|---|---|
0 | 4 | バージョン | UINT32 | その次の構造体のバージョン番号。 この構造体のバージョン 1 の場合、このフィールドを 1 に設定する必要があります。 |
4 | 4 | AppIdOffset | OFFSET | この構造体の先頭から計算された、アプリケーション ID を含むバッファーに対するオフセット (バイト単位)。 |
8 | 4 | AppIdSize | SIZE (0..16) | ETSI TS 102 221 技術仕様のセクション 8.3 で定義されているアプリケーション ID のサイズ (バイト単位)。 2G カードの場合、このフィールドはゼロ (0) に設定する必要があります。 |
12 | 4 | FilePathOffset | OFFSET | この構造体の先頭から計算された、ファイル パスを含むバッファーに対するオフセット (バイト単位)。 ファイル パスは、16 ビットのファイル ID の配列です。 最初の ID は、0x7FFF または 0x3F00 である必要があります。 最初の ID が 0x7FFF の場合、パスは AppId で指定されたアプリケーションの ADF に対する相対パスになります。 それ以外の場合は、MF から始まる絶対パスです。 |
16 | 4 | FilePathSize | SIZE | ファイル パスのサイズ (バイト単位)。 |
20 | 4 | RecordNumber | UINT32(0..256) | レコード番号。 これは、常に絶対レコード インデックスを表します。 モデムはファイル (NEXT、PREVIOUS) で複数のアクセスを実行できるため、相対レコード アクセスはサポートされていません。 |
24 | 4 | LocalPinOffset | OFFSET | この構造体の先頭から計算された、パスワードを含むバッファーに対するオフセット (バイト単位)。 ロック パスワードは、NULL で終わる 10 進数の UTF-8 文字列です。 |
28 | 4 | LocalPinSize | SIZE (0..16) | パスワードのサイズ (バイト単位)。 |
32 | 4 | RecordDataOffset | OFFSET | この構造体の先頭から計算された、コマンド固有のデータを含むバッファーに対するオフセット (バイト単位)。 レコード データは、SET 操作にのみ使用されます。 |
36 | 4 | RecordDataSize | SIZE (0..256) | データのサイズ (単位: バイト)。 |
40 | DataBuffer | DATABUFFER | AppId、FilePath、LocalPin、RecordData を含むデータ バッファー。 |
Set
該当なし。
回答
MBIM_UICC_RESPONSE 構造体は InformationBuffer で使用されます。
要求されていないイベント
該当なし。
状態コード
次の状態コードが適用されます。
状態コード | 説明 |
---|---|
MBIM_STATUS_BUSY | すべてのコマンドにおいて定義される基本的な MBIM 状態。 |
MBIM_STATUS_FAILURE | すべてのコマンドで定義されている基本的なMBIM 状態。 |
MBIM_STATUS_SIM_NOT_INSERTED | UICC が見つからないため、UICC オペレーションを実行できません。 |
MBIM_STATUS_BAD_SIM | UICC がエラー状態であるため、UICC 操作を実行できません。 |
MBIM_STATUS_SHAREABILITY_CONDITION_ERROR | ファイルは共有可能ではなく、現在、別のアプリケーションからアクセスされているため、選択できません。 SIM によって返される状態ワードは 6985 です。 |
MBIM_STATUS_PIN_FAILURE | PIN エラーが発生したため、操作は失敗しました。 |
MBIM_CID_MS_PIN_EX
この CID は、ETSI TS 102 221 技術仕様のセクション 9 で定義されているように、すべての PIN セキュリティ操作を実行するために使用されます。 CID は MBIM_CID_MS_PIN に似ていますが、マルチアプリ UICC カードをサポートするように拡張できます。 単一検証が可能な UICC のみがサポートされています。 複数のアプリケーション PIN をサポートするマルチ検証対応の UICC はサポートされていません。 1 つのアプリケーション PIN (PIN1) が UICC 上のすべての ADF/DF およびファイルに割り当てられます。 ただし、各アプリケーションは、レベル 2 のユーザー検証要件としてローカル PIN (PIN2) を指定できるため、アクセス コマンドごとに追加の検証が必要になります。 このシナリオは、MBIM_CID_MS_PIN_EX のサポート対象です。
MBIM_CID_MS_PIN と同様に、MBIM_CID_MS_PIN_EX デバイスは一度に 1 つの PIN のみを報告します。 複数の PIN が有効になっていて、複数の PIN の報告も有効になっている場合、関数は PIN1 から順に報告します。 たとえば、補助ロック レポートが有効になっていて、SIM の PIN1 が有効になっている場合、補助ロック PIN は、PIN1 が正常に検証された後にのみ、後続のクエリ要求で報告する必要があります。 空の PIN は MBIMPinOperationEnter と共に許可されます。 PinSize を 0 に設定すると、空の PIN が指定されます。 この場合、SET コマンドは QUERY と同じようになり、参照されている PIN の状態を返します。 これは、ETSI TS 102 221 技術仕様のセクション 11.1.9 で指定されている VERIFY コマンドの動作に完全に整合しています。
パラメーター
操作 | Set | クエリ | 通知 |
---|---|---|---|
command | MBIM_SET_PIN_EX | MBIM_PIN_APP | 適用なし |
回答 | MBIM_PIN_INFO_EX | MBIM_PIN_INFO_EX | 適用なし |
クエリ
InformationBuffer では、次の MBIM_PIN_APP 構造体が使用されます。
MBIM_PIN_APP (バージョン 1)
オフセット | サイズ | フィールド | タイプ | 説明 |
---|---|---|---|---|
0 | 4 | バージョン | UINT32 | その次の構造体のバージョン番号。 この構造体のバージョン 1 の場合、このフィールドを 1 に設定する必要があります。 |
4 | 4 | AppIdOffset | OFFSET | この構造体の先頭から計算された、アプリケーション ID を含むバッファーに対するオフセット (バイト単位)。 |
8 | 4 | AppIdSize | SIZE (0..16) | ETSI TS 102 221 技術仕様のセクション 8.3 で定義されているアプリケーション ID のサイズ (バイト単位)。 2G カードの場合、このフィールドはゼロ (0) に設定する必要があります。 |
12 | DataBuffer | DATABUFFER | ETSI TS 102 221 技術仕様で定義されている AppId。 |
Set
InformationBuffer では、次の MBIM_SET_PIN_EX 構造体が使用されます。
MBIM_SET_PIN_EX
オフセット | サイズ | フィールド | タイプ | 説明 |
---|---|---|---|---|
0 | 4 | PinType | MBIM_PIN_TYPE_EX | PIN の種類。 このトピックの MBIM_PIN_TYPE_EX の表を参照してください。 |
4 | 4 | PinOperation | MBIM_PIN_OPERATION | PIN 操作。 MBIM 1.0 を参照してください。 |
8 | 4 | PinOffset | OFFSET | この構造体の先頭から計算された、アクションの実行に使用する PIN 値を表す文字列 PIN、または PIN 設定を有効もしくは無効にするために必要な PIN 値に対するオフセット (バイト単位)。 このフィールドは、PinOperation のすべての値に適用されます。 |
12 | 4 | PinSize | SIZE (0..32) | PIN に使用されるサイズ (バイト単位)。 |
16 | 4 | NewPinOffset | OFFSET | PinType MBIMPinTypePuk1 または PinType MBIMPinTypePuk2 について、この構造体の先頭から計算された、PinOperation が MBIMPinOperationChange または MBIMPinOperationEnter のときに設定する新しい PIN 値を表す NewPin 文字列に対するオフセット (バイト単位)。 |
20 | 4 | NewPinSize | SIZE (0..32) | NewPin に使用されるサイズ (バイト単位)。 |
24 | 4 | AppIdOffset | OFFSET | この構造体の先頭から計算された、アプリケーション ID を含むバッファーに対するオフセット (バイト単位)。 |
28 | 4 | AppIdSize | SIZE (0..16) | ETSI TS 102 221 技術仕様のセクション 8.3 で定義されているアプリケーション ID のサイズ (バイト単位)。 2G カードの場合、このフィールドはゼロ (0) に設定する必要があります。 |
32 | DataBuffer | DATABUFFER | Pin、NewPin、AppId を含むデータ バッファー。 |
回答
InformationBuffer では、次の MBIM_PIN_INFO_EX 構造体が使用されます。
オフセット | サイズ | フィールド | タイプ | 説明 |
---|---|---|---|---|
0 | 4 | PinType | MBIM_PIN_TYPE_EX | PIN の種類。 このトピックの MBIM_PIN_TYPE_EX の表を参照してください。 |
4 | 4 | PinState | MBIM_PIN_STATE | PIN の状態。 MBIM 1.0 を参照してください。 |
8 | 4 | RemainingAttempts | UINT32 | 入力、有効化、無効化など、PIN 関連の操作に対する残りの試行回数。 この情報をサポートしていないデバイスでは、このメンバーを 0xFFFFFFFF に設定する必要があります。 |
要求されていないイベント
該当なし。
状態コード
次の状態コードが適用されます。
状態コード | 説明 |
---|---|
MBIM_STATUS_BUSY | すべてのコマンドにおいて定義される基本的な MBIM 状態。 |
MBIM_STATUS_FAILURE | すべてのコマンドで定義されている基本的なMBIM 状態。 |
MBIM_STATUS_SIM_NOT_INSERTED | UICC が見つからないため、UICC オペレーションを実行できません。 |
MBIM_STATUS_BAD_SIM | UICC がエラー状態であるため、UICC 操作を実行できません。 |
MBIM_STATUS_PIN_DISABLED | PIN が無効になっているため、操作は失敗しました。 |
MBIM_STATUS_PIN_REQUIRED | 続行するには PIN を入力する必要があるため、操作に失敗しました。 |
MBIM_STATUS_NO_DEVICE_SUPPORT | 対応する PIN の種類の SET がデバイスでサポートされていないため、操作は失敗しました。 |