Доступ к приложению 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.

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

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

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

Значения службы 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 для соответствующего типа ПИН-кода.