Доступ к приложению и файловой системе 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 может рассматриваться как лес деревьев каталогов. Устаревшее дерево SIM-карты коренится в главном файле (MF) и содержит до двух уровней подкаталогов (выделенных файлов или DFS), содержащих элементальные файлы (EFS), которые содержат различные типы сведений. Sim определяет DFs в MF, один из которых, DFTelecom, содержит информацию, общую для нескольких типов доступа, таких как общая телефонная книга. Дополнительные приложения эффективно реализуются в виде отдельных деревьев, каждый из которых коренится в собственном файле каталога приложений (ADF). Каждый ADF определяется идентификатором приложения, который может составлять до 128 битов. Файл под корнем карточки (EFDir под MF на схеме) содержит имена приложений и соответствующие идентификаторы. В дереве (MF или ADF) DFS и EFS могут быть идентифицированы путем идентификаторов файлов, где идентификатор файла — 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
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 | Операция завершилась сбоем, так как НАБОР для соответствующего типа ПИН-кода не поддерживается устройством. |