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 から抜粋したもので、カード アプリケーション構造の例を示します。

Diagram that shows an example UICC application structure.

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 が定義されています。

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 クエリ 通知
コマンド 適用なし 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 クエリ 通知
コマンド 適用なし 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 クエリ 通知
コマンド 適用なし 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 クエリ 通知
コマンド 適用なし 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 クエリ 通知
コマンド 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 がデバイスでサポートされていないため、操作は失敗しました。