Низкоуровневый доступ к UICC в МБ
Общие сведения
Версия 1.0 (MBIM1) определяет не зависящий от OEM и IHV интерфейс между главным устройством и модемом передачи данных.
Функция MBIM1 включает интеллектуальный карта UICC и предоставляет доступ к некоторым данным и внутреннему состоянию. Однако интеллектуальные карта могут иметь дополнительные возможности, помимо тех, которые определены в интерфейсе MBIM. Эти дополнительные возможности включают поддержку безопасного элемента для мобильных платежных решений на основе связи поблизости или для удаленной подготовки всего профиля UICC.
На мобильном широкополосном устройстве Windows в дополнение к интерфейсу RIL используется интерфейс MBIM. Одной из функций, предоставляемых RIL, является интерфейс для низкоуровневого доступа к UICC. В этом разделе описывается набор расширений Майкрософт для MBIM, описывающих эту дополнительную функциональность в интерфейсе MBIM.
Расширения Майкрософт включают в себя набор команд службы устройств (set и query) и уведомлений. Эти расширения не включают новые возможности использования потоков служб устройств.
Значения службы MBIM и CID
Имя службы | UUID | Значение UUID |
---|---|---|
Microsoft Low-Level UICC Access | UUID_MS_UICC_LOW_LEVEL | C2F6588E-F037-4BC9-8665-F4D44BD09367 |
В следующей таблице указан код команды для каждого идентификатора CID, а также указывается, поддерживает ли CID запросы Set, Query или Event (notification). Дополнительные сведения о его параметрах, структурах данных и уведомлениях см. в отдельном разделе каждого идентификатора CID в этом разделе.
CID | Код команды | Присвойте параметру | Запрос | Уведомление |
---|---|---|---|---|
MBIM_CID_MS_UICC_ATR | 1 | Нет | Да | Нет |
MBIM_CID_MS_UICC_OPEN_CHANNEL | 2 | Да | Нет | N |
MBIM_CID_MS_UICC_CLOSE_CHANNEL | 3 | Да | N | N |
MBIM_CID_MS_UICC_APDU) | 4 | Да | N | N |
MBIM_CID_MS_UICC_TERMINAL_CAPABILITY | 5 | Да | Да | N |
MBIM_CID_MS_UICC_RESET | 6 | Да | Да | N |
Коды состояния
Коды состояния MBIM определены в разделе 9.4.5 стандарта MBIM. Кроме того, определены следующие дополнительные коды состояния сбоя:
Код состояния | Значение (шестнадцатеричное) | Описание |
---|---|---|
MBIM_STATUS_MS_NO_LOGICAL_CHANNELS | 87430001 | Открыть логический канал не удалось, так как в UICC нет доступных логических каналов (либо они не поддерживаются, либо используются все). |
MBIM_STATUS_MS_SELECT_FAILED | 87430002 | Не удалось открыть логический канал, так как не удалось выполнить select. |
MBIM_STATUS_MS_INVALID_LOGICAL_CHANNEL | 87430003 | Недопустимый номер логического канала (он не был открыт MBIM_CID_MS_UICC_OPEN_CHANNEL). |
MBIM_SUBSCRIBER_READY_STATE
Тип | Значение | Описание |
---|---|---|
MBIMSubscriberReadyStateNoEsimProfile | 7 | Карта готова, но не имеет включенных профилей. |
Ответы и состояние UICC
UICC может реализовывать интерфейс на основе символов или записей или и то, и другое. Хотя конкретный механизм отличается, в результате UICC отвечает на каждую команду с двумя байтами состояния (SW1 и SW2) и ответом (который может быть пустым). Обычное состояние успешного выполнения обозначается 90 00. Однако если UICC поддерживает набор средств приложения карта и UICC хочет отправить упреждаемую команду в терминал, успешное возвращение будет отмечено состоянием 91 XX (где XX меняется). Функция MBIM (терминал) отвечает за обработку этой упреждающей команды так же, как и упреждающая команда, полученная во время любой другой операции UICC (отправка FETCH в UICC, обработка упреждающей команды или ее отправка на узел с MBIM_CID_STK_PAC). Когда узел MBIM отправляет MBIM_CID_MS_UICC_OPEN_CHANNEL или MBIM_CID_MS_UICC_APDU он должен рассматривать как 90 00, так и 91 XX в качестве нормального состояния.
Команды должны иметь возможность возвращать ответы размером более 256 байт. Этот механизм описан в разделе 5.1.3 стандарта ISO/IEC 7816-4:2013. В этом случае карта будет возвращать слова состояния SW1 SW2 61 XX, а не 90 00, где XX — это количество оставшихся байтов или 00, если осталось 256 байтов или больше. Модем должен выдавать GET RESPONSE с тем же байтом класса несколько раз, пока не будут получены все данные. Это будет указано окончательными словами состояния 90 00. Последовательность должна быть непрерывной в пределах определенного логического канала. Дополнительные APDU должны обрабатываться на модеме и быть прозрачными для узла. При обработке на узле нет никакой гарантии, что некоторые другие APDU могут асинхронно ссылаются на карта во время последовательности ASP.
Сравнение с IHVRIL
Разделы с 5.2.3.3.10 по 5.2.3.3.14 спецификации IHVRIL определяют аналогичный интерфейс, на котором основана эта спецификация. Ниже приведены некоторые отличия.
- Интерфейс RIL не предоставляет способ указания безопасного обмена сообщениями. Команда MBIM для обмена API указывает этот параметр в качестве явного параметра.
- Интерфейс RIL не четко определяет интерпретацию класса байтов в APDU. Спецификация MBIM гласит, что класс байт, отправленный с узла, должен присутствовать, но не используется (и вместо этого функция MBIM создает этот байт).
- Интерфейс RIL использует отдельную функцию для закрытия всех каналов UICC в группе, тогда как интерфейс MBIM выполняет это с помощью аргументов variant в одном идентификаторе CID.
- Связь между состоянием ошибки MBIM и состоянием UICC (SW1 SW2) более четко определена, чем связь между ошибками RIL и состоянием UICC.
- Интерфейс MBIM отличает сбой при выделении нового логического канала от сбоя при выборе указанного приложения.
- Интерфейс MBIM позволяет отправлять объекты терминала модема для отправки в карта.
MBIM_CID_MS_UICC_ATR
Ответ на сброс (ATR) — это первая строка байтов, отправляемая UICC после выполнения сброса. В нем описываются возможности карта, например количество поддерживаемых логических каналов. Функция MBIM должна сохранить ATR при получении от UICC. Затем узел может использовать команду MBIM_CID_MS_UICC_ATR для получения ATR.
Параметры
Тип | Присвойте параметру | Запрос | Уведомление |
---|---|---|---|
Get-Help | Неприменимо | Empty | Неприменимо |
Ответ | Неприменимо | MBIM_MS_ATR_INFO | Неприменимо |
Запрос
Элемент InformationBuffer сообщения запроса пуст.
Присвойте параметру
Не применяется
Ответ
InformationBuffer MBIM_COMMAND_DONE содержит следующую структуру MBIM_MS_ATR_INFO, описывающую ответ на сброс для UICC, присоединенного к этой функции.
MBIM_MS_ATR_INFO
Offset | Размер | Поле | Тип | Описание |
---|---|---|---|---|
0 | 4 | AtrSize | SIZE(0..33) | Длина AtrData. |
4 | 4 | AtrOffset | OFFSET | Смещение в байтах, вычисленное от начала этой структуры, до массива байтов с именем AtrData , содержащего данные ATR. |
8 | AtrSize | DataBuffer | DATABUFFER | Массив байтов AtrData . |
Незапрашиваемые события
Не применяется
Коды состояния
Применимы следующие коды состояния.
Код состояния | Описание |
---|---|
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_OPEN_CHANNEL
Узел использует команду MBIM_CID_MS_UICC_OPEN_CHANNEL, чтобы запросить, чтобы функция открыла новый логический канал на карта UICC и выберите указанное приложение UICC (указанное идентификатором приложения).
Функция реализует эту команду MBIM с помощью последовательности команд UICC:
- Функция отправляет команду MANAGE CHANNEL в UICC, как описано в разделе 11.1.17 технической спецификации ETSI TS 102 221, чтобы создать новый логический канал. Если эта команда завершается ошибкой, функция возвращает состояние MBIM_STATUS_MS_NO_LOGICAL_CHANNELS с SW1 SW2 и не выполняет никаких дальнейших действий.
- Если команда MANAGE CHANNEL выполнена успешно, UICC передает в функцию номер канала нового логического канала. Функция отправляет команду SELECT [по имени], где P1 = 04, как описано в разделе 11.1.1 технической спецификации ETSI TS 102 221. Если эта операция завершается сбоем, функция отправляет команду MANAGE CHANNEL в UICC, чтобы закрыть логический канал и возвращает состояние MBIM_STATUS_MS_SELECT_FAILED с SW1 SW2 из SELECT.
- Если команда SELECT выполнена успешно, функция записывает номер логического канала и группу каналов, указанную узлом для дальнейшего использования. Затем он вернет логическому номеру канала, SW1 SW2 из select и ответу select на узел.
Параметры
Операция | Присвойте параметру | Запрос | Уведомление |
---|---|---|---|
Get-Help | MBIM_MS_SET_UICC_OPEN_CHANNEL | Неприменимо | Неприменимо |
Ответ | MBIM_MS_UICC_OPEN_CHANNEL_INFO | Неприменимо | Неприменимо |
Запрос
Не применяется
Присвойте параметру
InformationBuffer MBIM_COMMAND_MSG содержит следующую структуру MBIM_MS_SET_UICC_OPEN_CHANNEL.
MBIM_MS_SET_UICC_OPEN_CHANNEL
Offset | Размер | Поле | Тип | Описание |
---|---|---|---|---|
0 | 4 | AppIdSize | РАЗМЕР(0..32) | Размер идентификатора приложения (AppId). |
4 | 4 | AppIdOffset | OFFSET | Смещение в байтах, вычисленное от начала этой структуры, до массива байтов с именем AppId , который определяет AppId, который должен быть SELECTed. |
8 | 4 | SelectP2Arg | UINT32(0..255) | Аргумент P2 для команды SELECT. |
12 | 4 | ChannelGroup | UINT32 | Значение тега, определяющее группу каналов для этого канала. |
16 | AppIdSize | DataBuffer | DATABUFFER | Массив байтов AppId . |
Ответ
InformationBuffer MBIM_COMMAND_DONE содержит следующую структуру MBIM_MS_UICC_OPEN_CHANNEL_INFO.
MBIM_MS_UICC_OPEN_CHANNEL_INFO
Offset | Размер | Поле | Тип | Описание |
---|---|---|---|---|
0 | 4 | Состояние | BYTE[2] | SW1 и SW2 в указанном порядке байтов. Дополнительные сведения см. в примечаниях, приведенных в этой таблице. |
4 | 4 | Channel | UINT32(0..19) | Идентификатор логического канала. Если этот элемент равен 0, операция завершилась сбоем. |
8 | 4 | ResponseLength | РАЗМЕР(0..256) | Длина ответа в байтах. |
12 | 4 | ResponseOffset | OFFSET | Смещение в байтах, вычисленное от начала этой структуры, до массива байтов с именем Response , который содержит ответ select. |
16 | - | DataBuffer | DATABUFFER | Данные массива байтов ответа . |
Если команда возвращает MBIM_STATUS_MS_NO_LOGICAL_CHANNELS, поле Состояние должно содержать слова состояния UICC SW1 и SW2 из команды MANAGE CHANNEL, а остальные поля будут равны нулю. Если команда возвращает MBIM_STATUS_MS_SELECT_FAILED, поле Состояние должно содержать слова состояния UICC SW1 и SW2 из команды SELECT, а остальные поля будут равны нулю. Для любого другого состояния InformationBuffer должен быть пустым.
Нежелательные события
Не применяется
Коды состояния
Применяются следующие коды состояния:
Код состояния | Описание |
---|---|
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_STATUS_MS_NO_LOGICAL_CHANNELS | Не удалось открыть логический канал, так как логические каналы не доступны в UICC (либо они не поддерживаются, либо все они используются). |
MBIM_STATUS_MS_SELECT_FAILED | Не удалось открыть логический канал, так как произошел сбой SELECT. |
MBIM_CID_MS_UICC_CLOSE_CHANNEL
Узел отправляет MBIM_CID_MS_UICC_CLOSE_CHANNEL в функцию для закрытия логического канала в UICC. Узел может указать номер канала или группу каналов.
Если узел указывает номер канала, функция должна проверка, был ли этот канал открыт предыдущим MBIM_CID_MS_UICC_OPEN_CHANNEL. Если это так, он должен отправить команду MANAGE CHANNEL в UICC, чтобы закрыть канал, вернуть состояние MBIM_STATUS_SUCCESS и sw1 SW2 из MANAGE CHANNEL. В противном случае он не должен предпринимать никаких действий и возвращать состояние сбоя MBIM_STATUS_MS_INVALID_LOGICAL_CHANNEL.
Если узел указывает группу каналов, функция определяет, какие логические каналы были открыты (если таковые были) в этой группе каналов, и отправляет команду MANAGE CHANNEL в UICC для каждого такого канала. Он возвращает состояние MBIM_STATUS_SUCCESS с SW1 SW2 последнего канала MANAGE CHANNEL. Если каналы не были закрыты, возвращается значение 90 00.
Параметры
Операция | Присвойте параметру | Запрос | Уведомление |
---|---|---|---|
Get-Help | MBIM_MS_SET_UICC_CLOSE_CHANNEL | Неприменимо | Неприменимо |
Ответ | MBIM_MS_UICC_CLOSE_CHANNEL_INFO | Неприменимо | Неприменимо |
Запрос
Не применяется
Присвойте параметру
InformationBuffer MBIM_COMMAND_MSG содержит следующую структуру MBIM_MS_SET_UICC_CLOSE_CHANNEL.
MBIM_MS_SET_UICC_CLOSE_CHANNEL
Offset | Размер | Поле | Тип | Описание |
---|---|---|---|---|
0 | 4 | Channel | UINT32(0..19) | Если значение не равно нулю, указывает канал для закрытия. Если значение равно нулю, указывает, что каналы, связанные с ChannelGroup , должны быть закрыты. |
4 | 4 | ChannelGroup | UINT32 | Если значение Channel равно нулю, это указывает значение тега, и все каналы с этим тегом закрываются. Если значение Channel не равно нулю, это поле игнорируется. |
Ответ
InformationBuffer MBIM_COMMAND_DONE содержит следующую структуру MBIM_MS_UICC_CLOSE_CHANNEL_INFO.
MBIM_MS_UICC_CLOSE_CHANNEL_INFO
Offset | Размер | Поле | Тип | Описание |
---|---|---|---|---|
0 | 4 | Состояние | BYTE[2] | SW1 и SW2 последнего КАНАЛА УПРАВЛЕНИЯ, выполненного функцией от имени этой команды. |
Нежелательные события
Не применяется
Коды состояния
Код состояния | Описание |
---|---|
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_STATUS_MS_INVALID_LOGICAL_CHANNEL | Недопустимый номер логического канала (иными словами, он не был открыт с MBIM_CID_MS_UICC_OPEN_CHANNEL). |
MBIM_CID_MS_UICC_APDU
Узел использует MBIM_CID_MS_UICC_APDU для отправки команды APDU в указанный логический канал в UICC и получения ответа. Функция MBIM должна убедиться, что логический канал был ранее открыт с MBIM_CID_MS_UICC_OPEN_CHANNEL, и завершить работу с состоянием MBIM_STATUS_MS_INVALID_LOGICAL_CHANNEL, если это не так.
Узел должен отправить функции полный APDU. APDU можно отправить со значением байта класса, определенным в первом определении межиндустрии в разделе 4 стандарта ISO/IEC 7816-4:2013 или в расширенном определении в разделе 10.1.1 технической спецификации ETSI TS 102 221. APDU может быть отправлен без безопасного обмена сообщениями или с безопасным обменом сообщениями. Заголовок команды не прошел проверку подлинности. Узел указывает тип байта класса, номер логического канала и безопасный обмен сообщениями вместе с APDU.
Первый байт команды APDU — это байт класса, закодированный в соответствии с разделом 4 стандарта ISO/IEC 7816-4:2013 или разделом 10.1.1 технической спецификации ETSI TS 102 221. Узел может отправлять байты класса 0X, 4X, 6X, 8X, CX или EX. Однако функция не передает этот байт непосредственно в UICC. Вместо этого перед отправкой APDU в UICC функция заменит первый байт с узла новым байтом класса (в соответствии с разделом 4 стандарта ISO/IEC 7816-4:2013 или разделом 10.1.1 технической спецификации ETSI TS 102 221) на основе значений Type, Channel и SecureMessaging, заданных узлом:
Класс байтов | Описание |
---|---|
0X | 7816-4 interindustry, 1 <= channel <= 3, кодирует безопасность в низком уровне, если это применимо |
4X | 7816-4 interindustry, 4 <= channel <= 19, без безопасного обмена сообщениями |
6X | 7816-4 interindustry, 4 <= channel <= 19, secure (заголовок не прошел проверку подлинности) |
8X | 102 221 extended, 1<= channel <= 3, кодирует безопасность в низком уровне, если это применимо |
CX | 102 221 расширенный, 4 <= канал <= 19, без безопасного обмена сообщениями |
EX | 102 221 extended, 4 <= channel <= 19, secure (заголовок не прошел проверку подлинности) |
Функция должна возвращать узлу состояние SW1 SW2 и ответ от UICC.
Параметры
Операция | Присвойте параметру | Запрос | Уведомление |
---|---|---|---|
Get-Help | MBIM_MS_SET_UICC_APDU | Неприменимо | Неприменимо |
Ответ | MBIM_MS_UICC_APDU_INFO | Неприменимо | Неприменимо |
Запрос
Не применяется
Присвойте параметру
InformationBuffer MBIM_COMMAND_MSG содержит следующую структуру MBIM_MS_SET_UICC_APDU.
MBIM_MS_SET_UICC_APDU
Offset | Размер | Поле | Тип | Описание |
---|---|---|---|---|
0 | 4 | Channel | UINT32(1..19) | Указывает канал, по которому будет отправляться APDU. |
4 | 4 | SecureMessaging | MBIM_MS_UICC_SECURE_MESSAGING | Указывает, осуществляется ли обмен APDU с использованием безопасного обмена сообщениями. |
8 | 4 | Тип | MBIM_MS_UICC_CLASS_BYTE_TYPE | Указывает тип определения байтов класса. |
12 | 4 | CommandSize | UINT32(0..261) | Длина команды в байтах. |
16 | 4 | CommandOffset | OFFSET | Смещение в байтах, вычисленное от начала этой структуры, до массива байтов с именем Command , который содержит APDU. |
20 | - | DataBuffer | DATABUFFER | Массив байтов command . |
Структура MBIM_MS_SET_UICC_APDU использует следующие MBIM_MS_UICC_SECURE_MESSAGING и MBIM_MS_UICC_CLASS_BYTE_TYPE структуры данных.
MBIM_MS_UICC_SECURE_MESSAGING
Тип | Значение | Описание |
---|---|---|
MBIMMsUiccSecureMessagingNone | 0 | Нет безопасного обмена сообщениями. |
MBIMMsUiccSecureMessagingNoHdrAuth | 1 | Безопасный обмен сообщениями, заголовок команды не прошел проверку подлинности. |
MBIM_MS_UICC_CLASS_BYTE_TYPE
Тип | Значение | Описание |
---|---|---|
MBIMMsUiccInterindustry | 0 | Определяется в соответствии с первым определением межиндустрии в ISO 7816-4. |
MBIMMsUiccExtended | 1 | Определяется в соответствии с расширенным определением в ETSI 102 221. |
Ответ
InformationBuffer MBIM_COMMAND_DONE содержит следующую структуру MBIM_MS_UICC_APDU_INFO.
MBIM_MS_UICC_APDU_INFO
Offset | Размер | Поле | Тип | Описание |
---|---|---|---|---|
0 | 4 | Состояние | BYTE[2] | Слова состояния SW1 и SW2, полученные в результате выполнения команды . |
4 | 4 | ResponseLength | SIZE | Длина ответа в байтах. |
8 | 4 | ResponseOffset | OFFSET | Смещение в байтах, вычисленное от начала этой структуры, до массива байтов с именем Response , который содержит ответ select. |
12 | - | DataBuffer | DATABUFFER | Массив байтов ответа . |
Нежелательные события
Не применяется
Коды состояния
Применяются следующие коды состояния:
Код состояния | Описание |
---|---|
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_STATUS_MS_INVALID_LOGICAL_CHANNEL | Недопустимый номер логического канала (иными словами, он не был открыт с MBIM_CID_MS_UICC_OPEN_CHANNEL). |
Если функция может отправить APDU в UICC, она возвращает MBIM_STATUS_SUCCESS вместе со словами состояния SW1 SW2 и ответом от UICC (если таковой есть). Узел должен проверить состояние (SW1 SW2), чтобы определить, успешно ли выполнена команда APDU в UICC или причина сбоя.
MBIM_CID_MS_UICC_TERMINAL_CAPABILITY
Узел отправляет MBIM_CID_MS_UICC_TERMINAL_CAPABILITY, чтобы сообщить модему о возможностях узла. APDU ВОЗМОЖНОСТЕЙ ТЕРМИНАЛА, указанный в разделе 11.1.19 технической спецификации ETSI TS 102 221, необходимо отправить в карта до выбора первого приложения (если оно поддерживается). Таким образом, узел не может напрямую отправить APDU ВОЗМОЖНОСТИ ТЕРМИНАЛА, а вместо этого отправляет команду MBIM_CID_MS_UICC_TERMINAL_CAPABILITY, содержащую один или несколько объектов возможностей терминала, которые будут постоянно храниться модемом. На следующем карта вставки или сброса после ATR модем выбирает MF и проверка, поддерживается ли ФУНКЦИЯ ТЕРМИНАЛА. В этом случае модем отправит APDU TERMINAL CAPABILITY со сведениями, указанными командой MBIM_CID_MS_UICC_TERMINAL_CAPABILITY, а также любыми сведениями, созданными модемом.
Параметры
Операция | Присвойте параметру | Запрос | Уведомление |
---|---|---|---|
Get-Help | MBIM_MS_SET_UICC_TERMINAL_CAPABILITY | Empty | Неприменимо |
Ответ | Неприменимо | MBIM_MS_TERMINAL_CAPABILITY_INFO | Неприменимо |
Запрос
Значение InformationBuffer должно иметь значение NULL, а Значение InformationBufferLength — ноль.
Присвойте параметру
InformationBuffer MBIM_COMMAND_MSG содержит следующую структуру MBIM_MS_SET_UICC_TERMINAL_CAPABILITY.
MBIM_MS_SET_UICC_TERMINAL_CAPABILITY
Offset | Размер | Поле | Тип | Описание |
---|---|---|---|---|
0 | 4 | ElementCount | UINT32 | Количество элементов объектов возможностей терминала. |
4 | 8*EC | CapabilityList OL_PAIR_LIST | Список пар смещения длины для каждого объекта возможности терминала TLV. | |
4+8*EC | - | DataBuffer | DATABUFFER | Массив байтов фактического объекта возможностей терминала TLV. |
Ответ
Ответы будут содержать точную команду SET с последними объектами возможности терминала, отправленными на модем. Таким образом, MBIM_MS_TERMINAL_CAPABILITY_INFO идентична MBIM_MS_SET_UICC_TERMINAL_CAPABILITY.
MBIM_MS_TERMINAL_CAPABILITY_INFO
Offset | Размер | Поле | Тип | Описание |
---|---|---|---|---|
0 | 4 | ElementCount | UINT32 | Количество элементов объектов возможностей терминала. |
4 | 8*EC | CapabilityList OL_PAIR_LIST | Список пар смещения длины для каждого объекта возможности терминала TLV. | |
4+8*EC | - | DataBuffer | DATABUFFER | Массив байтов фактического объекта возможностей терминала TLV. |
Нежелательные события
Не применяется
Коды состояния
Код состояния | Описание |
---|---|
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_STATUS_MS_INVALID_LOGICAL_CHANNEL | Недопустимый номер логического канала (иными словами, он не был открыт с MBIM_CID_MS_UICC_OPEN_CHANNEL). |
MBIM_CID_MS_UICC_RESET
Узел отправляет MBIM_CID_MS_UICC_RESET в функцию MBIM для сброса UICC или запроса состояния сквозной передачи функции.
Когда узел запрашивает, чтобы функция сбросит UICC, она указывает действие сквозной передачи.
Если узел указывает действие mbIMMsUICCPassThroughEnable passthrough, функция сбрасывает UICC и при включении UICC обрабатывает UICC так, как если бы он был в режиме сквозной передачи, который обеспечивает обмен данными между узлом и UICC (даже если у UICC нет файловой системы Telecom UICC). Функция не отправляет apDU в карта и не вмешивается в обмен данными между узлом и UICC.
Если узел указывает действие сквозной передачи MBIMMsUICCPassThroughDisable , функция сбрасывает UICC и при включении UICC обрабатывает UICC как обычный Telecom UICC и ожидает, что в UICC будет присутствовать файловая система Telecom UICC.
Когда узел запрашивает функцию для определения состояния сквозной передачи, если функция отвечает с состоянием MBIMMsUICCPassThroughEnabled , это означает, что режим сквозной передачи включен. Если функция возвращает состояние MBIMMsUICCPassThroughDisabled , это означает, что режим сквозной передачи отключен.
Параметры
Тип | Присвойте параметру | Запрос | Уведомление |
---|---|---|---|
Get-Help | MBIM_MS_SET_UICC_RESET | Empty | Неприменимо |
Ответ | MBIM_MS_UICC_RESET_INFO | MBIM_MS_UICC_RESET_INFO | Неприменимо |
Запрос
Значение InformationBuffer должно иметь значение NULL, а Значение InformationBufferLength — ноль.
Присвойте параметру
MBIM_SET_MS_UICC_RESET
Структура MBIM_SET_MS_UICC_RESET содержит действие сквозной передачи, указанное узлом.
Offset | Размер | Поле | Тип | Описание |
---|---|---|---|---|
0 | 4 | PassThroughAction | MBIM_MS_UICC_PASSTHROUGH_ACTION | Дополнительные сведения см. в разделе MBIM_MS_UICC_PASSTHROUGH_ACTION. |
MBIM_MS_UICC_PASSTHROUGH_ACTION
Перечисление MBIM_MS_UICC_PASSTHROUGH_ACTION определяет типы действий сквозной передачи, которые узел может указать для функции MBIM.
Типы | Значение |
---|---|
MBIMMsUiccPassThroughDisable | 0 |
MBIMMsUiccPassThroughEnable | 1 |
Ответ
MBIM_MS_UICC_RESET_INFO
Структура MBIM_MS_UICC_RESET_INFO содержит состояние сквозной передачи функции MBIM.
Offset | Размер | Поле | Тип | Описание |
---|---|---|---|---|
0 | 4 | PassThroughStatus | MBIM_MS_UICC_PASSTHROUGH_STATUS | Дополнительные сведения см. в разделе MBIM_MS_UICC_PASSTHROUGH_STATUS. |
MBIM_MS_UICC_PASSTHROUGH_STATUS
Перечисление MBIM_MS_UICC_PASSTHROUGH_STATUS определяет типы состояния сквозной передачи, которые функция MBIM задает для узла.
Типы | Значение |
---|---|
MBIMMsUiccPassThroughDisabled | 0 |
MBIMMsUiccPassThroughEnabled | 1 |
Нежелательные события
Не применяется
Коды состояния
Код состояния | Описание |
---|---|
MBIM_STATUS_SUCCESS | Базовое состояние MBIM, определенное для всех команд. |
MBIM_STATUS_BUSY | Устройство занято. |
MBIM_STATUS_FAILURE | Операция не удалась. |
MBIM_STATUS_NO_DEVICE_SUPPORT | Устройство не поддерживает эту операцию. |
OID_WWAN_UICC_RESET
Эквивалент NDIS для MBIM_CID_MS_UICC_RESET — OID_WWAN_UICC_RESET.