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


Низкоуровневый доступ к 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:

  1. Функция отправляет команду MANAGE CHANNEL в UICC, как описано в разделе 11.1.17 технической спецификации ETSI TS 102 221, чтобы создать новый логический канал. Если эта команда завершается ошибкой, функция возвращает состояние MBIM_STATUS_MS_NO_LOGICAL_CHANNELS с SW1 SW2 и не выполняет никаких дальнейших действий.
  2. Если команда MANAGE CHANNEL выполнена успешно, UICC передает в функцию номер канала нового логического канала. Функция отправляет команду SELECT [по имени], где P1 = 04, как описано в разделе 11.1.1 технической спецификации ETSI TS 102 221. Если эта операция завершается сбоем, функция отправляет команду MANAGE CHANNEL в UICC, чтобы закрыть логический канал и возвращает состояние MBIM_STATUS_MS_SELECT_FAILED с SW1 SW2 из SELECT.
  3. Если команда 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.