Доступ к приложению MB UICC и файловой системе
Общие сведения
В этом разделе указывается расширение для интерфейса модели мобильного широкополосного интерфейса (MBIM), чтобы разрешить доступ к интеллектуальным карта приложениям и файловым системам UICC. Это расширение для MBIM предоставляет логический доступ к приложениям и файловым системам, совместимым с техническими спецификациями ETSI TS 102 221 UICC, и поддерживается в Windows 10 версии 1903 и более поздних версиях.
Доступ и безопасность UICC
UICC предоставляет файловую систему и поддерживает набор приложений, которые могут выполняться параллельно. К ним относятся USIM для UMTS, CSIM для CDMA и ISIM для IMS. SIM-карта является устаревшей частью UICC, которую можно смоделировать как одно из этих приложений (для GSM).
На следующей схеме из раздела 8.1 технической спецификации ETSI TS 102 221 показан пример карта структуры приложения.
Файловую систему UICC можно рассматривать как лес деревьев каталогов. Устаревшее дерево SIM-карты коренится в главном файле (MF) и содержит до двух уровней подкаталогов (выделенные файлы или DFS), содержащих элементные файлы (EF), которые содержат различные типы информации. SIM-карта определяет DFs в MF, один из которых, DFTelecom, содержит сведения, общие для нескольких типов доступа, таких как общая телефонная книга. Дополнительные приложения эффективно реализуются в виде отдельных деревьев, каждое из которых корнями является собственный файл каталога приложений (ADF). Каждая ADF идентифицируется идентификатором приложения длиной до 128 бит. Файл в корневом каталоге карта (EFDir в MF на схеме) содержит имена приложений и соответствующие идентификаторы. В дереве (MF или ADF) DFs и EFs могут быть определены путем к идентификаторам файлов, где идентификатором файла является 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 Low-Level UICC Access | UUID_MS_UICC_LOW_LEVEL | C2F6588E-F037-4BC9-8665-F4D44BD09367 |
Расширения Microsoft Basic IP Connectivity | UUID_BASIC_CONNECT_EXTENSIONS | 3D01DCC5-FEF5-4D05-9D3A-BEF7058E9AAF |
В следующей таблице указаны UUID и код команды для каждого идентификатора CID, а также указывается, поддерживает ли CID запросы set, query или Event (notification). Дополнительные сведения о параметрах, структурах данных и уведомлениях см. в разделе каждого идентификатора CID в этом разделе.
CID | UUID | Код команды | Присвойте параметру | Запрос | Уведомление |
---|---|---|---|---|---|
MBIM_CID_MS_UICC_APP_LIST | UUID_MS_UICC_LOW_LEVEL | 7 | N | Да | N |
MBIM_CID_MS_UICC_FILE_STATUS | UUID_MS_UICC_LOW_LEVEL | 8 | N | Да | N |
MBIM_CID_MS_UICC_ACCESS_BINARY | UUID_MS_UICC_LOW_LEVEL | 9 | Да | Да | N |
MBIM_CID_MS_UICC_ACCESS_RECORD | UUID_MS_UICC_LOW_LEVEL | 10 | Да | Да | N |
MBIM_CID_MS_PIN_EX | UUID_BASIC_CONNECT_EXTENSIONS | 14 | Да | Да | N |
MBIM_CID_MS_UICC_APP_LIST
Этот CID извлекает список приложений в UICC и сведения о них. Когда UICC в модеме полностью инициализирован и готов к регистрации у оператора мобильной связи, для регистрации должно быть выбрано приложение UICC, а запрос с этим идентификатором CID должен возвращать выбранное приложение в поле ActiveAppIndex в структуре MBIM_UICC_APP_LIST, используемой в ответе.
Параметры
Операция | Присвойте параметру | Запрос | Уведомление |
---|---|---|---|
Get-Help | Неприменимо | Empty | Неприменимо |
Ответ | Неприменимо | MBIM_UICC_APP_LIST | Неприменимо |
Запрос
DataBuffer для MBIM_COMMAND_MSG пуст.
Присвойте параметру
Не применяется
Ответ
InformationBuffer в MBIM_COMMAND_DONE содержит следующую структуру MBIM_UICC_APP_LIST.
MBIM_UICC_APP_LIST (версия 1)
Offset | Размер | Поле | Тип | Описание |
---|---|---|---|---|
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 | Первый элемент пары — это 4-байтовое поле со смещением сведений о приложении в DataBuffer. Второй элемент пары — это 4-байтовое поле с размером сведений о приложении. | |
AppListSize | DataBuffer | DATABUFFER | Массив структур MBIM_UICC_APP_INFO AppCount * . |
MBIM_UICC_APP_INFO
Offset | Размер | Поле | Тип | Описание |
---|---|---|---|---|
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) байтов. Для этого поля задано значение 0 для типов приложений 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 — это массив байтов, указывающий ссылки на ключи ПИН-кода приложения для различных уровней проверки (ключи для PIN1, 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 applicaton. |
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.
Параметры
Операция | Присвойте параметру | Запрос | Уведомление |
---|---|---|---|
Get-Help | Неприменимо | MBIM_UICC_FILE_PATH | Неприменимо |
Ответ | Неприменимо | MBIM_UICC_FILE_STATUS | Неприменимо |
Запрос
InformationBuffer MBIM_COMMAND_MSG содержит целевой EF в виде структуры MBIM_UICC_FILE_PATH.
MBIM_UICC_FILE_PATH (версия 1)
Offset | Размер | Поле | Тип | Описание |
---|---|---|---|---|
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. |
Присвойте параметру
Не применяется
Ответ
Следующая MBIM_UICC_FILE_STATUS структура используется в InformationBuffer.
MBIM_UICC_FILE_STATUS (версия 1)
Offset | Размер | Поле | Тип | Описание |
---|---|---|---|---|
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 | Структура файла | 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 и DEACTIVATE в указанном порядке) в этом файле. |
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 | Одна запись переменной длины. |
MBIMUiccFileStructureCyclic | 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 | Ключ ПИН-кода 2. |
MBIMPinTypeDeviceSimPin | 4 | Ключ SIM-карты устройства. |
MBIMPinTypeDeviceFirstSimPin | 5 | Устройство к самой первой SIM-клавише. |
MBIMPinTypeNetworkPin | 6 | Ключ персонализации сети. |
MBIMPinTypeNetworkSubsetPin | 7 | Ключ персонализации подмножества сети. |
MBIMPinTypeServiceProviderPin | 8 | Ключ персонализации поставщика услуг( SP). |
MBIMPinTypeCorporatePin | 9 | Ключ корпоративной персонализации. |
MBIMPinTypeSubsidyLock | 10 | Ключ разблокировки субсидии. |
MBIMPinTypePuk1 | 11 | Ключ разблокировки личного удостоверения 1 (PUK1). |
MBIMPinTypePuk2 | 12 | Ключ разблокировки (PUK2) личного идентификационного номера 2. |
MBIMPinTypeDeviceFirstSimPuk | 13 | Устройство для первой клавиши разблокировки ПИН-кода SIM-карты. |
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.
Параметры
Операция | Присвойте параметру | Запрос | Уведомление |
---|---|---|---|
Get-Help | Неприменимо | MBIM_UICC_ACCESS_BINARY | Неприменимо |
Ответ | Неприменимо | MBIM_UICC_RESPONSE | Неприменимо |
Запрос
Считывает двоичный файл. InformationBuffer для MBIM_COMMAND_MSG содержит структуру MBIM_UICC_ACCESS_BINARY. Структура MBIM_UICC_RESPONSE возвращается в InformationBuffer MBIM_COMMAND_DONE.
MBIM_UICC_ACCESS_BINARY (версия 1)
Offset | Размер | Поле | Тип | Описание |
---|---|---|---|---|
0 | 4 | Версия | UINT32 | Номер версии следующей структуры. Это поле должно иметь значение 1 для версии 1 этой структуры. |
4 | 4 | AppIdOffset | OFFSET | Смещение в байтах от начала этой структуры до буфера, содержащего идентификатор приложения. |
8 | 4 | AppIdSize | РАЗМЕР (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 | Размер пути к файлу в байтах. |
20 | 4 | FileOffset | UINT32 | Смещение, используемое при чтении из файла. Это поле может быть больше 256 и сочетает в себе как высокое смещение, так и низкое смещение, как определено в технической спецификации ETSI TS 102 221. |
24 | 4 | NumberOfBytes | UINT32 | Количество байтов, чтение которых необходимо выполнить. Например, драйвер клиента может использовать эту функцию для чтения прозрачного (двоичного) файла размером более 256 байт, хотя максимальный объем, который можно прочитать или записать в одной операции UICC, составляет 256 байт для технической спецификации ETSI TS 102 221. Функция отвечает за то, чтобы разделить это на несколько APDU и отправить результат обратно в одном ответе. |
28 | 4 | LocalPinOffset | OFFSET | Смещение в байтах, вычисленное от начала этой структуры до буфера, содержащего пароль. Это локальный ПИН-код (PIN2) и используется в случае, если операция требует проверки локального ПИН-кода. |
32 | 4 | LocalPinSize | РАЗМЕР (0..16) | Размер пароля в байтах. |
36 | 4 | BinaryDataOffset | OFFSET | Смещение в байтах, вычисленное от начала этой структуры до буфера, содержащего данные для конкретных команд. Двоичные данные используются только для операций SET. |
40 | 4 | BinaryDataSize | РАЗМЕР (0..32768) | Размер данных в байтах. |
44 | DataBuffer | DATABUFFER | Буфер данных, содержащий AppId, FilePath, LocalPin и BinaryData. |
Присвойте параметру
Не применяется
Ответ
Следующая MBIM_UICC_RESPONSE структура используется в InformationBuffer.
MBIM_UICC_RESPONSE (версия 1)
Offset | Размер | Поле | Тип | Описание |
---|---|---|---|---|
0 | 4 | Версия | UINT32 | Номер версии структуры. Это поле должно иметь значение 1 для версии 1 этой структуры. |
4 | 4 | StatusWord1 | UINT32(0..256) | Возвращаемый параметр, характерный для команды UICC. |
8 | 4 | StatusWord2 | UINT32(0..256) | Возвращаемый параметр, характерный для команды UICC. |
12 | 4 | ResponseDataOffset | OFFSET | Смещение в байтах, вычисленное от начала этой структуры до буфера, содержащего данные ответа. Данные ответа используются только для операций ЗАПРОСА. |
16 | 4 | ResponseDataSize | РАЗМЕР (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 | Операция завершилась сбоем из-за ошибки ПИН-кода. |
MBIM_CID_MS_UICC_ACCESS_RECORD
Этот CID отправляет определенную команду для доступа к линейному фиксированному или циклическому файлу UICC с типом структуры MBIMUiccFileStructureCyclic или MBIMUIccFileStructureLinear.
Параметры
Операция | Присвойте параметру | Запрос | Уведомление |
---|---|---|---|
Get-Help | Неприменимо | MBIM_UICC_ACCESS_RECORD | Неприменимо |
Ответ | Неприменимо | MBIM_UICC_RESPONSE | Неприменимо |
Запрос
Считывает содержимое записи. InformationBuffer для MBIM_COMMAND_MSG содержит следующую структуру MBIM_UICC_ACCESS_RECORD. MBIM_UICC_RESPONSE возвращается в InformationBuffer MBIM_COMMAND_DONE.
MBIM_UICC_ACCESS_RECORD (версия 1)
Offset | Размер | Поле | Тип | Описание |
---|---|---|---|---|
0 | 4 | Версия | UINT32 | Номер версии следующей структуры. Это поле должно иметь значение 1 для версии 1 этой структуры. |
4 | 4 | AppIdOffset | OFFSET | Смещение в байтах от начала этой структуры до буфера, содержащего идентификатор приложения. |
8 | 4 | AppIdSize | РАЗМЕР (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 | Размер пути к файлу в байтах. |
20 | 4 | RecordNumber | UINT32(0..256) | Номер записи. Он всегда представляет абсолютный индекс записей. Относительный доступ к записям не поддерживается, так как модем может выполнять несколько операций доступа к файлу (NEXT, PREVIOUS). |
24 | 4 | LocalPinOffset | OFFSET | Смещение в байтах, вычисленное от начала этой структуры до буфера, содержащего пароль. Пароль блокировки представляет собой строку UTF-8, завершаемую null, из десятичных цифр. |
28 | 4 | LocalPinSize | РАЗМЕР (0..16) | Размер пароля в байтах. |
32 | 4 | RecordDataOffset | OFFSET | Смещение в байтах, вычисленное от начала этой структуры до буфера, содержащего данные для конкретных команд. Данные записи используются только для операций SET. |
36 | 4 | RecordDataSize | РАЗМЕР (0..256) | Размер данных в байтах. |
40 | DataBuffer | DATABUFFER | Буфер данных, содержащий AppId, FilePath, LocalPin и RecordData. |
Присвойте параметру
Не применяется
Ответ
Структура 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 | Операция завершилась сбоем из-за ошибки ПИН-кода. |
MBIM_CID_MS_PIN_EX
Этот идентификатор кода используется для выполнения всех операций безопасности ПИН-кода, как определено в разделе 9 технической спецификации ETSI TS 102 221. CID похож на MBIM_CID_MS_PIN, но расширяет его для поддержки карт UICC с несколькими приложениями. Поддерживаются только UICC с поддержкой одной проверки. UICC с поддержкой нескольких проверок, которые поддерживают более одного ПИН-кода приложения, не поддерживаются. Один ПИН-код приложения (PIN1) назначается всем ADFs/DFs и файлам в UICC. Однако каждое приложение может указать локальный ПИН-код (PIN2) в качестве требования проверки пользователя уровня 2, что приводит к необходимости дополнительной проверки для каждой команды доступа. Этот сценарий поддерживается MBIM_CID_MS_PIN_EX.
Как и MBIM_CID_MS_PIN, при MBIM_CID_MS_PIN_EX устройство сообщает только один ПИН-код за раз. Если включено несколько ПИН-кодов и включена отчетность по нескольким ПИН-кодам, функции должны сначала сообщать о ПИН-коде1. Например, если включена отчетность о блокировке субсидий и включен ПИН-код SIM-карты 1, то ПИН-код блокировки субсидии следует сообщать в последующем запросе только после успешной проверки ПИН-кода 1. Пустой ПИН-код разрешен вместе с MBIMPinOperationEnter. Пустой ПИН-код задается путем установки для PinSize равным нулю. В этом случае команда SET аналогична запросу и возвращает состояние указанного ПИН-кода. Это полностью соответствует поведению команды VERIFY, как указано в разделе 11.1.9 технической спецификации ETSI TS 102 221.
Параметры
Операция | Присвойте параметру | Запрос | Уведомление |
---|---|---|---|
Get-Help | MBIM_SET_PIN_EX | MBIM_PIN_APP | Неприменимо |
Ответ | MBIM_PIN_INFO_EX | MBIM_PIN_INFO_EX | Неприменимо |
Запрос
Следующая MBIM_PIN_APP структура используется в InformationBuffer.
MBIM_PIN_APP (версия 1)
Offset | Размер | Поле | Тип | Описание |
---|---|---|---|---|
0 | 4 | Версия | UINT32 | Номер версии следующей структуры. Это поле должно иметь значение 1 для версии 1 этой структуры. |
4 | 4 | AppIdOffset | OFFSET | Смещение в байтах от начала этой структуры до буфера, содержащего идентификатор приложения. |
8 | 4 | AppIdSize | SIZE (0..16) | Размер идентификатора приложения в байтах, как определено в разделе 8.3 технической спецификации ETSI TS 102 221. Для карт 2G это поле должно быть равно нулю (0). |
12 | DataBuffer | DATABUFFER | AppId, как определено в технической спецификации ETSI TS 102 221. |
Присвойте параметру
В InformationBuffer используется следующая структура MBIM_SET_PIN_EX.
MBIM_SET_PIN_EX
Offset | Размер | Поле | Тип | Описание |
---|---|---|---|---|
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 | PinSize | 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 | Буфер данных, содержащий pin, NewPin и AppId. |
Ответ
Следующая структура MBIM_PIN_INFO_EX используется в InformationBuffer.
Offset | Размер | Поле | Тип | Описание |
---|---|---|---|---|
0 | 4 | PinType | MBIM_PIN_TYPE_EX | Тип ПИН-кода. См. таблицу MBIM_PIN_TYPE_EX в этом разделе. |
4 | 4 | PinState | MBIM_PIN_STATE | Состояние ПИН-кода. См. MBIM 1.0. |
8 | 4 | RemainingAttempts | UINT32 | Количество оставшихся попыток для любых операций, связанных с ПИН-кодом, таких как ввод, включение или отключение. Устройства, которые не поддерживают эти сведения, должны задать для этого элемента значение 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 | Операция завершилась сбоем, так как ПИН-код отключен. |
MBIM_STATUS_PIN_REQUIRED | Операция завершилась сбоем, так как для продолжения необходимо ввести ПИН-код. |
MBIM_STATUS_NO_DEVICE_SUPPORT | Операция завершилась сбоем, так как устройство не поддерживает set для соответствующего типа ПИН-кода. |