Поделиться через


Доступ к приложению и файловой системе MB UICC

Обзор

В этом разделе описывается расширение интерфейса модели мобильного широкополосного интерфейса (MBIM), позволяющее получить доступ к приложению и файловым системам смарт-карты UICC. Это расширение для MBIM предоставляет логический доступ к приложениям и файловым системам ETSI TS ETSI TS 102 221, совместимым с спецификациями и файловыми системами, и поддерживается в Windows 10 версии 1903 и более поздних версий.

Доступ и безопасность UICC

UICC предоставляет файловую систему и поддерживает набор приложений, которые могут выполняться одновременно. К ним относятся USIM для UMTS, CSIM для CDMA и ISIM для IMS. SIM-карта является устаревшей частью UICC, которую можно моделировать как одно из этих приложений (для GSM).

На следующей схеме из раздела 8.1 технической спецификации ETSI TS 102 221 показан пример структуры приложения карточек.

Схема, демонстрирующая пример структуры приложения UICC.

Файловая система UICC может рассматриваться как лес деревьев каталогов. Устаревшее дерево SIM-карты коренится в главном файле (MF) и содержит до двух уровней подкаталогов (выделенных файлов или DFS), содержащих элементальные файлы (EFS), которые содержат различные типы сведений. Sim определяет DFs в MF, один из которых, DFTelecom, содержит информацию, общую для нескольких типов доступа, таких как общая телефонная книга. Дополнительные приложения эффективно реализуются в виде отдельных деревьев, каждый из которых коренится в собственном файле каталога приложений (ADF). Каждый ADF определяется идентификатором приложения, который может составлять до 128 битов. Файл под корнем карточки (EFDir под MF на схеме) содержит имена приложений и соответствующие идентификаторы. В дереве (MF или ADF) DFS и EFS могут быть идентифицированы путем идентификаторов файлов, где идентификатор файла — 16-разрядное целое число.

Расширения интерфейса NDIS

Следующие идентификаторы OID определены для поддержки доступа к приложению и файловой системе UICC.

Значения службы MBIM и CID

Service name UUID Значение UUID
Доступ к пользовательскому интерфейсу Майкрософт низкого уровня UUID_MS_UICC_LOW_LEVEL C2F6588E-F037-4BC9-8665-F4D44BD09367
Расширения подключения к IP-адресам Microsoft Basic UUID_BASIC_CONNECT_EXTENSIONS 3D01DCC5-FEF5-4D05-9D3A-BEF7058E9AAF

В следующей таблице указывается код UUID и команд для каждого CID, а также поддерживает ли CID запросы Set, Query или Event (notification). Дополнительные сведения о его параметрах, структурах данных и уведомлениях см. в отдельном разделе каждого CID в этом разделе.

CID UUID Код команды Set Query Notify
MBIM_CID_MS_UICC_APP_LIST UUID_MS_UICC_LOW_LEVEL 7 N Y N
MBIM_CID_MS_UICC_FILE_STATUS UUID_MS_UICC_LOW_LEVEL 8 N Y N
MBIM_CID_MS_UICC_ACCESS_BINARY UUID_MS_UICC_LOW_LEVEL 9 Y Y N
MBIM_CID_MS_UICC_ACCESS_RECORD UUID_MS_UICC_LOW_LEVEL 10 Y Y N
MBIM_CID_MS_PIN_EX UUID_BASIC_CONNECT_EXTENSIONS 14 Y Y N

MBIM_CID_MS_UICC_APP_LIST

Этот идентификатор CID извлекает список приложений в UICC и сведения о них. Когда UICC в модеме полностью инициализирован и готов к регистрации в мобильном операторе, приложение UICC должно быть выбрано для регистрации, а запрос с этим идентификатором должен возвращать выбранное приложение в поле ActiveAppIndex в MBIM_UICC_APP_LIST структуре, используемой в ответе.

Параметры

Операция Set Query Notification
Команда Нет данных Нет значения Нет данных
Response Нет данных MBIM_UICC_APP_LIST Нет данных

Query

InformationBuffer MBIM_COMMAND_MSG пуст.

Set

Неприменимо.

Response

InformationBuffer в MBIM_COMMAND_DONE содержит следующую структуру MBIM_UICC_APP_LIST.

MBIM_UICC_APP_LIST (версия 1)

Смещение Размер Поле Тип Описание
0 4 Версия UINT32 Номер версии следующей структуры. Это поле должно иметь значение 1 для версии 1 этой структуры.
4 4 AppCount UINT32 Количество MBIM_UICC_APP_INFO структур приложения UICC, возвращаемых в этом ответе.
8 4 ActiveAppIndex UINT32(0.NumApp - 1) Индекс приложения, выбранного модемом для регистрации в мобильной сети. Это поле должно быть от 0 до AppCount – 1. Он индексирует массив приложений, возвращаемых этим ответом. Если приложение не выбрано для регистрации, это поле содержит 0xFFFFFFFF.
12 4 AppListSize UINT32 Размер данных списка приложений в байтах.
8*AppCount AppList OL_PAIR_LIST Первый элемент пары — это поле 4-байтов с смещением сведений о приложении в DataBuffer. Второй элемент пары — это 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 Смещение для идентификатора приложения в databuffer. Имеют смысл только первые байты AppIdSize. Если идентификатор приложения превышает MBIM_MAXLENGTH_APPID байтов, appIdSize указывает фактическую длину, но только первые MBIM_MAXLENGTH_APPID байты находятся в этом поле. Это поле допустимо, только если AppType не является MBIMUiccAppTypeMf, MBIMUiccAppTypeMfSIM или MBIMUiccAppTypeMfRUIM.
8 4 AppIdSize SIZE (0..16) Размер идентификатора приложения в байтах, как определено в разделе 8.3 технической спецификации ETSI TS 102 221. AppIdSize может содержать число больше 16, но в этом случае в databuffer находятся только первые 16 байтов (MBIM_MAXLENGTH_APPID). Это поле равно нулю для типов приложений MBIMUiccAppTypeMf, MBIMUiccAppTypeMfSIM или MBIMUiccAppTypeMfRUIM.
12 AppNameOffset OFFSET Смещение имени приложения в databuffer. Строка UTF-8, указывающая имя приложения. Длина этого поля определяется AppNameLength. Если длина больше или равна MBIM_MAXLENGTH_APPNAME байтам, это поле содержит первую MBIM_MAXLENGTH_APPNAME - 1 байт имени. Строка всегда завершается значением NULL.
16 4 AppNameLength SIZE (0.256) Длина в байтах имени приложения. AppNameLength может содержать число, равное или больше 256, но в этих случаях только первые 255 (MBIM_MAXLENGTH_APPNAME – 1) байты находятся в databuffer.
20 4 NumPinKeyRefs SIZE (0.8) Количество ссылок на ключ ПИН-кода приложения. Другими словами, количество допустимых элементов PinKeyRef. Приложения на виртуальном R-UIM не имеют ссылок на ключ ПИН-кода.
24 4 KeyRefOffset OFFSET Смещение PinKeyRef в DataBuffer. PinKeyRef — это массив байтов, указывающий ключевые ссылки на ПИН-код приложения для различных уровней проверки (ключи для ПИН-кода, PIN2 и, возможно, универсального ПИН-кода), как определено в таблице 9.3 и разделе 9.4.2 технической спецификации ETSI TS 102 221. В случае с одной проверкой карты или драйвера MBB и (или) модема, который не поддерживает разные ключи приложений для разных приложений, первый байт поля PinKeyRef должен быть 0x01 (PIN1), а второй байт должен быть 0x81 (PIN2), как описано в разделе 9.5.1 ETSI TS 102 221.
28 4 KeyRefSize SIZE (0.8) Размер PinKeyRef.
32 DataBuffer DATABUFFER Буфер данных, содержащий AppId, AppName и PinKeyRef.карты с одной проверкой, или драйвер MBB и (или) модем, который не поддерживает разные ключи приложений для разных приложений, это поле должно быть 0x01.

MBIM_UICC_APP_TYPE

Тип значение Описание
MBIMUiccAppTypeUnknown 0 Неизвестный тип.
MBIMUiccAppTypeMf 1 Устаревшие каталоги SIM-карт, корневые на MF.
MBIMUiccAppTypeMfSIM 2 Устаревшие каталоги SIM-карт, корневые в DF_GSM.
MBIMUiccAppTypeMfRUIM 3 Устаревшие каталоги SIM-карт, корневые в DF_CDMA.
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

Незапрошенные события

Неприменимо.

Коды состояний

Применимы следующие коды состояния:

Код состояния Description
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 Query Notification
Команда Нет данных MBIM_UICC_FILE_PATH Нет данных
Response Нет данных MBIM_UICC_FILE_STATUS Нет данных

Query

InformationBuffer MBIM_COMMAND_MSG содержит целевой EF как структуру MBIM_UICC_FILE_PATH.

MBIM_UICC_FILE_PATH (версия 1)

Смещение Размер Поле Тип Описание
0 4 Версия UINT32 Номер версии следующей структуры. Это поле должно быть 1 для версии 1 этой структуры.
4 4 AppIdOffset OFFSET Смещение в байтах, вычисляемое с начала этой структуры до буфера, содержащего идентификатор приложения.
8 4 AppIdSize SIZE (0..16) Размер идентификатора приложения в байтах, как определено в разделе 8.3 технической спецификации ETSI TS 102 221. Для карт 2G это поле должно быть равно нулю (0).
12 4 FilePathOffset OFFSET Смещение в байтах, вычисляемое с начала этой структуры в буфер, содержащий путь к файлу. Путь к файлу представляет собой массив 16-разрядных идентификаторов файлов. Первый идентификатор должен быть либо 0x7FFF, либо 0x3F00. Если первый идентификатор 0x7FFF, путь относится к ADF приложения, указанному AppId. В противном случае это абсолютный путь, начиная с MF.
16 4 FilePathSize SIZE (0.8) Размер пути к файлу в байтах.
20 DataBuffer DATABUFFER Буфер данных, содержащий AppId и FilePath.

Set

Неприменимо.

Response

Следующая MBIM_UICC_FILE_STATUS структура используется в InformationBuffer.

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] Массив типа MBIM_PIN_TYPE_EX, описывающий условие доступа для каждой операции (READ, UPDATE, ACTIVATE и ДЕАКТИВИРОВАТЬ в этом порядке) в этом файле.

MBIM_UICC_FILE_ACCESSIBILITY

Перечисление MBIM_UICC_FILE_ACCESSIBILITY используется в предыдущей MBIM_UICC_FILE_STATUS структуре.

Тип значение Описание
MBIMUiccFileAccessibilityUnknown 0 Неизвестный общий доступ к файлам.
MBIMUiccFileAccessibilityNotShareable 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 Одна запись переменной длины.
MBIMUiccFileStructureStructureCyclic 2 Циклический набор записей, каждый из которых имеет одинаковую длину.
MBIMUiccFileStructureLinear 3 Линейный набор записей, каждая из которых имеет одинаковую длину.
MBIMUiccFileStructureBerTLV 4 Набор значений данных, доступных по тегу.

MBIM_PIN_TYPE_EX

Перечисление MBIM_PIN_TYPE_EX используется в предыдущей MBIM_UICC_FILE_STATUS структуре.

Тип значение Описание
MBIMPinTypeNone 0 Не ожидается ввод ПИН-кода.
MBIMPinTypeCustom 1 Тип ПИН-кода — это пользовательский тип, и ни один из других типов ПИН-кода, перечисленных в этом перечислении.
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-карты.
MBIMPinTypeNetworkPuk 14 Ключ разблокировки сетевой персонализации.
MBIMPinTypeNetworkSubsetPuk 15 Ключ разблокировки подмножества сети.
MBIMPinTypeServiceProviderPuk 16 Ключ разблокировки персонализации поставщика услуг (SP).
MBIMPinTypeCorporatePuk 17 Ключ разблокировки корпоративной персонализации.
MBIMPinTypeNev 18 Ключ NEV.
MBIMPinTypeAdm 19 Административный ключ.

Незапрошенные события

Неприменимо.

Коды состояний

Применимы следующие коды состояния:

Код состояния Description
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 с типом структуры MBIMUiccFileTransparent или MBIMUiccFileStructureBerTLV.

Параметры

Операция Set Query Notification
Команда Нет данных MBIM_UICC_ACCESS_BINARY Нет данных
Response Нет данных MBIM_UICC_RESPONSE Нет данных

Query

Считывает двоичный файл. InformationBuffer для MBIM_COMMAND_MSG содержит структуру MBIM_UICC_ACCESS_BINARY. Структура MBIM_UICC_RESPONSE возвращается в InformationBuffer MBIM_COMMAND_DONE.

MBIM_UICC_ACCESS_BINARY (версия 1)

Смещение Размер Поле Тип Описание
0 4 Версия UINT32 Номер версии следующей структуры. Это поле должно иметь значение 1 для версии 1 этой структуры.
4 4 AppIdOffset OFFSET Смещение в байтах с начала этой структуры до буфера, содержащего идентификатор приложения.
8 4 AppIdSize SIZE (0..16) Размер идентификатора приложения в байтах, как определено в разделе 8.3 технической спецификации ETSI TS 102 221. Для карт 2G это поле должно быть равно нулю (0).
12 4 FilePathOffset OFFSET Смещение в байтах, вычисляемое с начала этой структуры в буфер, содержащий путь к файлу. Путь к файлу представляет собой массив 16-разрядных идентификаторов файлов. Первый идентификатор должен быть либо 0x7FFF, либо 0x3F00. Если первый идентификатор 0x7FFF, путь относится к ADF приложения, указанному AppId. В противном случае это абсолютный путь, начиная с MF.
16 4 FilePathSize РАЗМЕР Размер пути к файлу в байтах.
20 4 FileOffset UINT32 Смещение, используемое при чтении из файла. Это поле может быть больше 256, и оно объединяет как смещение с высоким, так и смещение низким, как определено в технической спецификации ETSI TS 102 221.
24 4 NumberOfBytes UINT32 Количество байтов, чтение которых необходимо выполнить. Например, драйвер клиента может использовать эту функцию для чтения прозрачного (двоичного) файла, который превышает 256 байт, хотя максимальное количество, которое может быть прочитано или записано в одной операции UICC, составляет 256 байт на техническую спецификацию ETSI TS 102 221. Это ответственность функции разделить на несколько API и отправить обратно результат в одном ответе.
28 4 LocalPinOffset OFFSET Смещение в байтах, вычисляемое с начала этой структуры до буфера, содержащего пароль. Это локальный ПИН-код (PIN2) и используется в случае, если операция требует локальной проверки ПИН-кода.
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

Неприменимо.

Response

Следующая MBIM_UICC_RESPONSE структура используется в InformationBuffer.

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.

Незапрошенные события

Неприменимо.

Коды состояний

Применимы следующие коды состояния:

Код состояния Description
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 Сбой операции из-за ошибки ПИН-кода.

MBIM_CID_MS_UICC_ACCESS_RECORD

Этот CID отправляет определенную команду для доступа к линейному или циклическому файлу UICC с типом структуры MBIMUiccFileStructureStructureCyclic или MBIMUIccFileStructureLinear.

Параметры

Операция Set Query Notification
Команда Нет данных MBIM_UICC_ACCESS_RECORD Нет данных
Response Нет данных MBIM_UICC_RESPONSE Нет данных

Query

Считывает содержимое записи. InformationBuffer для MBIM_COMMAND_MSG содержит следующую MBIM_UICC_ACCESS_RECORD структуру. MBIM_UICC_RESPONSE возвращается в InformationBuffer MBIM_COMMAND_DONE.

MBIM_UICC_ACCESS_RECORD (версия 1)

Смещение Размер Поле Тип Описание
0 4 Версия UINT32 Номер версии следующей структуры. Это поле должно иметь значение 1 для версии 1 этой структуры.
4 4 AppIdOffset OFFSET Смещение в байтах с начала этой структуры до буфера, содержащего идентификатор приложения.
8 4 AppIdSize SIZE (0..16) Размер идентификатора приложения в байтах, как определено в разделе 8.3 технической спецификации ETSI TS 102 221. Для карт 2G это поле должно быть равно нулю (0).
12 4 FilePathOffset OFFSET Смещение в байтах, вычисляемое с начала этой структуры в буфер, содержащий путь к файлу. Путь к файлу представляет собой массив 16-разрядных идентификаторов файлов. Первый идентификатор должен быть либо 0x7FFF, либо 0x3F00. Если первый идентификатор 0x7FFF, путь относится к ADF приложения, указанному AppId. В противном случае это абсолютный путь, начиная с MF.
16 4 FilePathSize РАЗМЕР Размер пути к файлу в байтах.
20 4 RecordNumber UINT32(0.256) Номер записи. Это всегда представляет абсолютный индекс записей. Относительный доступ к записи не поддерживается, так как модем может выполнять несколько обращений к файлу (NEXT, PREVIOUS).
24 4 LocalPinOffset OFFSET Смещение в байтах, вычисляемое с начала этой структуры до буфера, содержащего пароль. Пароль блокировки является строкой 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

Неприменимо.

Response

Структура MBIM_UICC_RESPONSE используется в InformationBuffer.

Незапрошенные события

Неприменимо.

Коды состояний

Применимы следующие коды состояния:

Код состояния Description
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 Сбой операции из-за ошибки ПИН-кода.

MBIM_CID_MS_PIN_EX

Этот CID используется для выполнения всех операций безопасности ПИН-кода, как определено в разделе 9 технической спецификации ETSI TS 102 221. CID аналогичен MBIM_CID_MS_PIN, но расширяет его для поддержки карт UICC с несколькими приложениями. Поддерживаются только однофункционарные UICCs. Многоэквериционные UICCs, поддерживающие несколько ПИН-кодов приложений, не поддерживаются. Один ПИН-код приложения (PIN1) назначается всем ADFs/DFs и файлам в UICC. Однако каждое приложение может указать локальный ПИН-код (PIN2) как требование проверки пользователя уровня 2, что приводит к необходимости дополнительной проверки для каждой команды доступа. Этот сценарий — это то, что поддерживает MBIM_CID_MS_PIN_EX.

Как и MBIM_CID_MS_PIN, при MBIM_CID_MS_PIN_EX устройство сообщает только один ПИН-код за раз. Если включены несколько ПИН-кодов и отчеты о нескольких ПИН-кодах также включены, функции должны сначала сообщать ПИН-код 1. Например, если включена отчетность о блокировке субсидий и включен ПИН-код SIM1, пин-код блокировки субсидии должен быть сообщен в последующем запросе только после успешной проверки ПИН-кода ПИН-кода. Пустой ПИН-код разрешен вместе с MBIMPinOperationEnter. Пустой ПИН-код задается путем задания PinSize равным нулю. В этом случае команда SET аналогична запросу и возвращает состояние ПИН-кода, на который ссылается ССЫЛКА. Это полностью соответствует поведению команды VERIFY, указанной в разделе 11.1.9 технической спецификации ETSI TS 102 221.

Параметры

Операция Set Query Notification
Команда MBIM_SET_PIN_EX MBIM_PIN_APP Нет данных
Response MBIM_PIN_INFO_EX MBIM_PIN_INFO_EX Нет данных

Query

Следующая MBIM_PIN_APP структура используется в InformationBuffer.

MBIM_PIN_APP (версия 1)

Смещение Размер Поле Тип Описание
0 4 Версия UINT32 Номер версии следующей структуры. Это поле должно иметь значение 1 для версии 1 этой структуры.
4 4 AppIdOffset OFFSET Смещение в байтах с начала этой структуры до буфера, содержащего идентификатор приложения.
8 4 AppIdSize SIZE (0..16) Размер идентификатора приложения в байтах, как определено в разделе 8.3 технической спецификации ETSI TS 102 221. Для карт 2G это поле должно быть равно нулю (0).
12 DataBuffer DATABUFFER Идентификатор приложения, определенный в технической спецификации ETSI TS 102 221.

Set

Следующая MBIM_SET_PIN_EX структура используется в InformationBuffer.

MBIM_SET_PIN_EX

Смещение Размер Поле Тип Описание
0 4 PinType MBIM_PIN_TYPE_EX Тип ПИН-кода. См. таблицу MBIM_PIN_TYPE_EX в этом разделе.
4 4 PinOperation MBIM_PIN_OPERATION Операция ПИН-кода. См. mbIM 1.0.
8 4 PinOffset OFFSET Смещение в байтах, вычисляемое начиная с начала этой структуры, к строковому ПИН-коду, представляющему значение ПИН-кода, с помощью которого выполняется действие, или значение ПИН-кода, необходимое для включения или отключения параметров ПИН-кода. Это поле применяется ко всем значениям PinOperation.
12 4 Закрепление SIZE (0.32) Размер в байтах, используемый для ПИН-кода.
16 4 NewPinOffset OFFSET Смещение в байтах, вычисляемое с начала этой структуры в строку NewPin , представляющую новое значение ПИН-кода, заданное при значении PinOperation MBIMPinOperationChange или MBIMPinOperationEnter, для PinTypeMBIMPinTypePuk1 или PinTypeMBIMPinTypePuk2.
20 4 NewPinSize SIZE (0.32) Размер в байтах, используемый для NewPin.
24 4 AppIdOffset OFFSET Смещение в байтах, вычисляемое с начала этой структуры до буфера, содержащего идентификатор приложения.
28 4 AppIdSize SIZE (0..16) Размер идентификатора приложения в байтах, как определено в разделе 8.3 технической спецификации ETSI TS 102 221. Для карт 2G это поле должно быть равно нулю (0).
32 DataBuffer DATABUFFER Буфер данных, содержащий Пин-код, NewPin и AppId.

Response

Следующая MBIM_PIN_INFO_EX структура используется в InformationBuffer.

Смещение Размер Поле Тип Описание
0 4 PinType MBIM_PIN_TYPE_EX Тип ПИН-кода. См. таблицу MBIM_PIN_TYPE_EX в этом разделе.
4 4 PinState MBIM_PIN_STATE Состояние ПИН-кода. См. mbIM 1.0.
8 4 ОставшиесяAttempts UINT32 Количество оставшихся попыток для любых операций, связанных с ПИН-кодом, таких как ввод, включение или отключение. Устройства, которые не поддерживают эту информацию, должны задать для этого элемента значение 0xFFFFFFFF.

Незапрошенные события

Неприменимо.

Коды состояний

Применимы следующие коды состояния:

Код состояния Description
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 Операция завершилась ошибкой, так как ПИН-код отключен.
MBIM_STATUS_PIN_REQUIRED Операция завершилась ошибкой, так как для продолжения необходимо ввести ПИН-код.
MBIM_STATUS_NO_DEVICE_SUPPORT Операция завершилась сбоем, так как НАБОР для соответствующего типа ПИН-кода не поддерживается устройством.