Acesso ao sistema de arquivos e ao aplicativo UICC mb

Visão geral

Este tópico especifica uma extensão para a interface do MBIM (Modelo de Interface de Banda Larga Móvel) para permitir o acesso a sistemas de arquivos e aplicativos de cartão inteligentes UICC. Essa extensão para MBIM expõe o acesso lógico aos aplicativos e sistemas de arquivos compatíveis com especificações técnicas ETSI TS 102 221 da UICC e tem suporte no Windows 10, versão 1903 e posterior.

Acesso e segurança da UICC

A UICC fornece um sistema de arquivos e dá suporte a um conjunto de aplicativos que podem ser executados simultaneamente. Isso inclui o USIM para UMTS, CSIM para CDMA e ISIM para IMS. O SIM é uma parte herdada do UICC que pode ser modelada como um desses aplicativos (para GSM).

O diagrama a seguir da Seção 8.1 da especificação técnica ETSI TS 102 221 mostra um exemplo cartão estrutura do aplicativo.

Diagrama que mostra um exemplo de estrutura de aplicativo UICC.

O sistema de arquivos UICC pode ser considerado como uma floresta de árvores de diretório. A árvore herdada do SIM tem raiz em um MF (Arquivo Mestre) e contém até dois níveis de subdiretórios (Arquivos Dedicados ou DFs) que contêm Arquivos Elementais (EFs) que contêm vários tipos de informações. O SIM define DFs no MF, um dos quais, DFTelecom, contém informações comuns a vários tipos de acesso, como a lista telefônica comum. Aplicativos adicionais são efetivamente implementados como árvores separadas, cada uma com raiz em seu próprio ADF (Arquivo de Diretório de Aplicativos). Cada ADF é identificado por um identificador de aplicativo que pode ter até 128 bits de comprimento. Um arquivo na raiz cartão (EFDir no MF no diagrama) contém os nomes de aplicativo e os identificadores correspondentes. Em uma árvore (MF ou ADF), DFs e EFs podem ser identificados por um caminho de IDs de arquivo, em que uma ID de arquivo é um inteiro de 16 bits.

Extensões de interface NDIS

Os OIDs a seguir foram definidos para dar suporte ao acesso ao aplicativo UICC e ao sistema de arquivos.

Valores de SERVIÇO e CID do MBIM

Nome do serviço UUID Valor UUID
Microsoft Low-Level UICC Access UUID_MS_UICC_LOW_LEVEL C2F6588E-F037-4BC9-8665-F4D44BD09367
Extensões de conectividade ip básicas da Microsoft UUID_BASIC_CONNECT_EXTENSIONS 3D01DCC5-FEF5-4D05-9D3A-BEF7058E9AAF

A tabela a seguir especifica o UUID e o código de comando para cada CID, bem como se o CID dá suporte a solicitações Set, Query ou Event (notificação). Consulte a Seção individual de cada CID neste tópico para obter mais informações sobre seus parâmetros, estruturas de dados e notificações.

CID UUID Código de comando Definir Consulta Notificar
MBIM_CID_MS_UICC_APP_LIST UUID_MS_UICC_LOW_LEVEL 7 N S N
MBIM_CID_MS_UICC_FILE_STATUS UUID_MS_UICC_LOW_LEVEL 8 N S N
MBIM_CID_MS_UICC_ACCESS_BINARY UUID_MS_UICC_LOW_LEVEL 9 S S N
MBIM_CID_MS_UICC_ACCESS_RECORD UUID_MS_UICC_LOW_LEVEL 10 S S N
MBIM_CID_MS_PIN_EX UUID_BASIC_CONNECT_EXTENSIONS 14 S S N

MBIM_CID_MS_UICC_APP_LIST

Esse CID recupera uma lista de aplicativos em um UICC e informações sobre eles. Quando o UICC no modem é totalmente inicializado e pronto para ser registrado com a operadora móvel, um aplicativo UICC deve ser selecionado para registro e uma consulta com esse CID deve retornar o aplicativo selecionado no campo ActiveAppIndex na estrutura MBIM_UICC_APP_LIST usada em resposta.

Parâmetros

Operação Definir Consulta Notificação
Comando Não aplicável Vazio Não aplicável
Resposta Não aplicável MBIM_UICC_APP_LIST Não aplicável

Consulta

O InformationBuffer de MBIM_COMMAND_MSG está vazio.

Definir

Não aplicável.

Resposta

O InformationBuffer no MBIM_COMMAND_DONE contém a seguinte estrutura MBIM_UICC_APP_LIST.

MBIM_UICC_APP_LIST (versão 1)

Deslocamento Tamanho Campo Type Descrição
0 4 Versão UINT32 O número de versão da estrutura a seguir. Esse campo deve ser definido como 1 para a versão 1 dessa estrutura.
4 4 AppCount UINT32 O número de estruturas de MBIM_UICC_APP_INFO do aplicativo UICC que estão sendo retornadas nesta resposta.
8 4 ActiveAppIndex UINT32(0..NumApp - 1) O índice do aplicativo selecionado pelo modem para registro na rede móvel. Esse campo deve estar entre 0 e AppCount - 1. Ele indexa para a matriz de aplicativos retornados por essa resposta. Se nenhum aplicativo for selecionado para registro, esse campo conterá 0xFFFFFFFF.
12 4 AppListSize UINT32 O tamanho dos dados da lista de aplicativos, em bytes.
8*AppCount AppList OL_PAIR_LIST O primeiro elemento do par é um campo de 4 bytes com o Deslocamento de informações de um aplicativo no DataBuffer. O segundo elemento do par é um campo de 4 bytes com o tamanho das informações do aplicativo.
AppListSize DataBuffer DATABUFFER Uma matriz de estruturasMBIM_UICC_APP_INFOAppCount * .

MBIM_UICC_APP_INFO

Deslocamento Tamanho Campo Type Descrição
0 4 AppType MBIM_UICC_APP_TYPE O tipo do aplicativo UICC.
4 4 AppIdOffset OFFSET Deslocamento para a ID do aplicativo no cofre de dados. Somente os primeiros bytes AppIdSize são significativos. Se a ID do aplicativo for maior que MBIM_MAXLENGTH_APPID bytes, AppIdSize especificará o comprimento real, mas apenas os primeiros MBIM_MAXLENGTH_APPID bytes estarão nesse campo. Esse campo é válido somente quando AppType não é MBIMUiccAppTypeMf, MBIMUiccAppTypeMfSIM ou MBIMUiccAppTypeMfRUIM.
8 4 AppIdSize SIZE (0..16) O tamanho da ID do aplicativo, em bytes, conforme definido na Seção 8.3 da especificação técnica ETSI TS 102 221. AppIdSize pode conter um número maior que 16, mas nesse caso apenas os primeiros 16 (MBIM_MAXLENGTH_APPID) bytes estão no cofre de dados. Esse campo é definido como zero para os tipos de aplicativo MBIMUiccAppTypeMf, MBIMUiccAppTypeMfSIM ou MBIMUiccAppTypeMfRUIM.
12 AppNameOffset OFFSET Deslocamento para o nome do aplicativo no cofre de dados. Uma cadeia de caracteres UTF-8 que especifica o nome do aplicativo. O comprimento desse campo é especificado por AppNameLength. Se o comprimento for maior ou igual a MBIM_MAXLENGTH_APPNAME bytes, esse campo conterá o primeiro MBIM_MAXLENGTH_APPNAME - 1 bytes do nome. A cadeia de caracteres é sempre terminada em nulo.
16 4 AppNameLength SIZE (0,256) O comprimento, em bytes, do nome do aplicativo. AppNameLength pode conter um número igual ou maior que 256, mas nesses casos apenas os primeiros 255 bytes (MBIM_MAXLENGTH_APPNAME - 1) estão no cofre de dados.
20 4 NumPinKeyRefs SIZE (0..8) O número de referências de chave PIN do aplicativo. Em outras palavras, o número de elementos de PinKeyRef que são válidos. Os aplicativos em um R-UIM virtual não têm referências de chave PIN.
24 4 KeyRefOffset OFFSET Deslocamento do PinKeyRef no DataBuffer. O PinKeyRef é uma matriz de bytes que especifica as referências de chave PIN do aplicativo para diferentes níveis de verificação (chaves para PIN1, PIN2 e possivelmente um PIN universal), conforme definido na Tabela 9.3 e seção 9.4.2 da especificação técnica ETSI TS 102 221. No caso de um cartão de verificação única ou um driver MBB e/ou modem que não ofereça suporte a chaves de aplicativo diferentes para aplicativos diferentes, o primeiro byte do campo PinKeyRef deve ser 0x01 (PIN1) e o segundo byte deve ser 0x81 (PIN2), conforme descrito na Seção 9.5.1 do ETSI TS 102 221.
28 4 KeyRefSize SIZE (0..8) O tamanho de PinKeyRef.
32 DataBuffer DATABUFFER O buffer de dados que contém AppId, AppName e PinKeyRef.de um cartão de verificação única ou um driver MBB e/ou modem que não dá suporte a chaves de aplicativo diferentes para aplicativos diferentes, esse campo deve ser 0x01.

MBIM_UICC_APP_TYPE

Type Valor Descrição
MBIMUiccAppTypeUnknown 0 Tipo desconhecido.
MBIMUiccAppTypeMf 1 Diretórios SIM herdados com raiz no MF.
MBIMUiccAppTypeMfSIM 2 Diretórios SIM herdados com raiz no DF_GSM.
MBIMUiccAppTypeMfRUIM 3 Diretórios SIM herdados com raiz no DF_CDMA.
MBIMUiccAppTypeUSIM 4 Aplicativo USIM.
MBIMUiccAppTypeCSIM 5 Aplicativo CSIM.
MBIMUiccAppTypeISIM 6 Aplicativo ISIM.

Constantes

As constantes a seguir são definidas para MBIM_CID_MS_UICC_APP_INFO.

const int MBIM_MAXLENGTH_APPID = 32
const int MBIM_MAXLENGTH_APPNAME = 256
const int MBIM_MAXNUM_PINREF = 8

Eventos não solicitados

Não aplicável.

Códigos de status

Os seguintes códigos de status são aplicáveis:

Código de status Descrição
MBIM_STATUS_SUCCESS O MBIM básico status conforme definido para todos os comandos.
MBIM_STATUS_BUSY O MBIM básico status conforme definido para todos os comandos.
MBIM_STATUS_FAILURE O MBIM básico status conforme definido para todos os comandos.
MBIM_STATUS_NO_DEVICE_SUPPORT O MBIM básico status conforme definido para todos os comandos.
MBIM_STATUS_SIM_NOT_INSERTED Não é possível executar a operação UICC porque o UICC está ausente.
MBIM_STATUS_BAD_SIM Não é possível executar a operação UICC porque o UICC está em um estado de erro.
MBIM_STATUS_NOT_INITIALIZED Não é possível executar a operação UICC porque o UICC ainda não foi totalmente inicializado.

MBIM_CID_MS_UICC_FILE_STATUS

Esse CID recupera informações sobre um arquivo UICC especificado.

Parâmetros

Operação Definir Consulta Notificação
Comando Não aplicável MBIM_UICC_FILE_PATH Não aplicável
Resposta Não aplicável MBIM_UICC_FILE_STATUS Não aplicável

Consulta

O InformationBuffer de MBIM_COMMAND_MSG contém o EF de destino como uma estrutura MBIM_UICC_FILE_PATH.

MBIM_UICC_FILE_PATH (versão 1)

Deslocamento Tamanho Campo Type Descrição
0 4 Versão UINT32 O número de versão da estrutura a seguir. Esse campo deve ser 1 para a versão 1 dessa estrutura.
4 4 AppIdOffset OFFSET O deslocamento, em bytes, calculado desde o início dessa estrutura até o buffer que contém a ID do aplicativo.
8 4 AppIdSize SIZE (0..16) O tamanho da ID do aplicativo, em bytes, conforme definido na Seção 8.3 da especificação técnica ETSI TS 102 221. Para cartões 2G, esse campo deve ser definido como zero (0).
12 4 FilePathOffset OFFSET O deslocamento, em bytes, calculado desde o início dessa estrutura até o buffer que contém o caminho do arquivo. O caminho do arquivo é uma matriz de IDs de arquivo de 16 bits. A primeira ID deve ser 0x7FFF ou 0x3F00. Se a primeira ID for 0x7FFF, o caminho será relativo ao ADF do aplicativo desginado por AppId. Caso contrário, é um caminho absoluto a partir do MF.
16 4 FilePathSize SIZE (0..8) O tamanho do caminho do arquivo, em bytes.
20 DataBuffer DATABUFFER O buffer de dados que contém AppId e FilePath.

Definir

Não aplicável.

Resposta

A estrutura de MBIM_UICC_FILE_STATUS a seguir é usada no InformationBuffer.

MBIM_UICC_FILE_STATUS (versão 1)

Deslocamento Tamanho Campo Type Descrição
0 4 Versão UINT32 O número de versão da estrutura a seguir. Esse campo deve ser 1 para a versão 1 dessa estrutura.
4 4 StatusWord1 UINT32(0..256) Um parâmetro de retorno específico para o comando UICC.
8 4 StatusWord2 UINT32(0..256) Um parâmetro de retorno específico para o comando UICC.
12 4 FileAccessibility MBIM_UICC_FILE_ACCESSIBILITY A acessibilidade do arquivo UICC.
16 4 FileType MBIM_UICC_FILE_TYPE O tipo de arquivo UICC.
20 4 FileStructure MBIM_UICC_FILE_STRUCTURE A estrutura do arquivo UICC.
24 4 ItemCount UINT32 O número de itens no arquivo UICC. Para arquivos TLV e transparentes, isso é definido como 1.
28 4 Tamanho UINT32 O tamanho de cada item, em bytes. Para arquivos TLV ou transparentes, esse é o tamanho de todo o EF. Para arquivos baseados em registro, isso representa o número total de registros.
32 16 FileLockStatus MBIM_PIN_TYPE_EX[4] Uma matriz do tipo MBIM_PIN_TYPE_EX que descreve a condição de acesso para cada operação (READ, UPDATE, ACTIVATE e DEACTIVATE nessa ordem) nesse arquivo.

MBIM_UICC_FILE_ACCESSIBILITY

A enumeração MBIM_UICC_FILE_ACCESSIBILITY é usada na estrutura MBIM_UICC_FILE_STATUS anterior.

Type Valor Descrição
MBIMUiccFileAccessibilityUnknown 0 Capacidade de compartilhamento de arquivos desconhecida.
MBIMUiccFileAccessibilityNotShareable 1 Arquivo não compartilhável.
MBIMUiccFileAccessibilityShareable 2 Arquivo compartilhável.

MBIM_UICC_FILE_TYPE

A enumeração MBIM_UICC_FILE_TYPE é usada na estrutura de MBIM_UICC_FILE_STATUS anterior.

Type Valor Descrição
MBIMUiccFileTypeUnknown 0 Tipo de arquivo desconhecido.
MBIMUiccFileTypeWorkingEf 1 EF em funcionamento.
MBIMUiccFileTypeInternalEf 2 EF interno.
MBIMUiccFileTypeDfOrAdf 3 Arquivo dedicado, um diretório que é o pai de outros nós. Pode ser um DF ou ADF.

MBIM_UICC_FILE_STRUCTURE

A enumeração MBIM_UICC_FILE_STRUCTURE é usada na estrutura de MBIM_UICC_FILE_STATUS anterior.

Type Valor Descrição
MBIMUiccFileStructureUnknown 0 Uma estrutura de arquivo desconhecida.
MBIMUiccFileStructureTransparent 1 Um único registro de comprimento variável.
MBIMUiccFileStructureCyclic 2 Um conjunto cíclico de registros, cada um com o mesmo comprimento.
MBIMUiccFileStructureLinear 3 Um conjunto linear de registros, cada um com o mesmo comprimento.
MBIMUiccFileStructureBerTLV 4 Um conjunto de valores de dados acessíveis por marca.

MBIM_PIN_TYPE_EX

A enumeração MBIM_PIN_TYPE_EX é usada na estrutura de MBIM_UICC_FILE_STATUS anterior.

Type Valor Descrição
MBIMPinTypeNone 0 Nenhum PIN está pendente para ser inserido.
MBIMPinTypeCustom 1 O tipo PIN é um tipo personalizado e não é nenhum dos outros tipos de PIN listados nesta enumeração.
MBIMPinTypePin1 2 A tecla PIN1.
MBIMPinTypePin2 3 A tecla PIN2.
MBIMPinTypeDeviceSimPin 4 O dispositivo para a chave SIM.
MBIMPinTypeDeviceFirstSimPin 5 O dispositivo para a primeira chave SIM.
MBIMPinTypeNetworkPin 6 A chave de personalização de rede.
MBIMPinTypeNetworkSubsetPin 7 A chave de personalização do subconjunto de rede.
MBIMPinTypeServiceProviderPin 8 A chave de personalização do provedor de serviços (SP).
MBIMPinTypeCorporatePin 9 A chave de personalização corporativa.
MBIMPinTypeSubsidyLock 10 A chave de desbloqueio de subsídios.
MBIMPinTypePuk1 11 A chave de desbloqueio número de identificação pessoal 1 (PUK1).
MBIMPinTypePuk2 12 A chave de desbloqueio número de identificação pessoal 2 (PUK2).
MBIMPinTypeDeviceFirstSimPuk 13 O dispositivo para a primeira chave de desbloqueio do PIN do SIM.
MBIMPinTypeNetworkPuk 14 A chave de desbloqueio de personalização de rede.
MBIMPinTypeNetworkSubsetPuk 15 A chave de desbloqueio de personalização do subconjunto de rede.
MBIMPinTypeServiceProviderPuk 16 A chave de desbloqueio de personalização do provedor de serviços (SP).
MBIMPinTypeCorporatePuk 17 A chave de desbloqueio de personalização corporativa.
MBIMPinTypeNev 18 A chave NEV.
MBIMPinTypeAdm 19 A chave administrativa.

Eventos não solicitados

Não aplicável.

Códigos de status

Os seguintes códigos de status são aplicáveis:

Código de status Descrição
MBIM_STATUS_BUSY O MBIM básico status conforme definido para todos os comandos.
MBIM_STATUS_FAILURE O MBIM básico status conforme definido para todos os comandos.
MBIM_STATUS_SIM_NOT_INSERTED Não é possível executar a operação UICC porque o UICC está ausente.
MBIM_STATUS_BAD_SIM Não é possível executar a operação UICC porque o UICC está em um estado de erro.
MBIM_STATUS_SHAREABILITY_CONDITION_ERROR O arquivo não pode ser selecionado porque não é compartilhável e está sendo acessado por outro aplicativo no momento. A status palavra retornada pelo SIM é 6985.

MBIM_CID_MS_UICC_ACCESS_BINARY

Esse CID envia um comando específico para acessar um arquivo binário UICC, com o tipo de estrutura MBIMUiccFileStructureTransparent ou MBIMUiccFileStructureBerTLV.

Parâmetros

Operação Definir Consulta Notificação
Comando Não aplicável MBIM_UICC_ACCESS_BINARY Não aplicável
Resposta Não aplicável MBIM_UICC_RESPONSE Não aplicável

Consulta

Lê um arquivo binário. O InformationBuffer para MBIM_COMMAND_MSG contém uma estrutura MBIM_UICC_ACCESS_BINARY. Uma estrutura MBIM_UICC_RESPONSE é retornada no InformationBuffer de MBIM_COMMAND_DONE.

MBIM_UICC_ACCESS_BINARY (versão 1)

Deslocamento Tamanho Campo Type Descrição
0 4 Versão UINT32 O número de versão da estrutura a seguir. Esse campo deve ser definido como 1 para a versão 1 dessa estrutura.
4 4 AppIdOffset OFFSET O deslocamento, em bytes, desde o início dessa estrutura até o buffer que contém a ID do aplicativo.
8 4 AppIdSize SIZE (0..16) O tamanho da ID do aplicativo, em bytes, conforme definido na Seção 8.3 da especificação técnica ETSI TS 102 221. Para cartões 2G, esse campo deve ser definido como zero (0).
12 4 FilePathOffset OFFSET O deslocamento, em bytes, calculado desde o início dessa estrutura até o buffer que contém o caminho do arquivo. O caminho do arquivo é uma matriz de IDs de arquivo de 16 bits. A primeira ID deve ser 0x7FFF ou 0x3F00. Se a primeira ID for 0x7FFF, o caminho será relativo ao ADF do aplicativo desginado pelo AppId. Caso contrário, ele é um caminho absoluto a partir do MF.
16 4 FilePathSize SIZE O tamanho do caminho do arquivo, em bytes.
20 4 FileOffset UINT32 O deslocamento a ser usado ao ler do arquivo. Esse campo pode ser maior que 256 e combina o deslocamento alto e o deslocamento baixo, conforme definido na especificação técnica ETSI TS 102 221.
24 4 NumberOfBytes UINT32 O número de bytes a serem lidos. Por exemplo, um driver cliente pode usar essa função para ler um arquivo transparente (binário) maior que 256 bytes, embora a quantidade máxima que pode ser lida ou gravada em uma única operação UICC seja de 256 bytes de acordo com a especificação técnica ETSI TS 102 221. É responsabilidade da função dividir isso em várias APDUs e enviar de volta o resultado em uma única resposta.
28 4 LocalPinOffset OFFSET O deslocamento, em bytes, calculado desde o início dessa estrutura até o buffer que contém a senha. Esse é o PIN2 (PIN2) local e é usado caso a operação exija validação de PIN local.
32 4 LocalPinSize SIZE (0..16) O tamanho da senha, em bytes.
36 4 BinaryDataOffset OFFSET O deslocamento, em bytes, calculado desde o início dessa estrutura até o buffer que contém os dados específicos do comando. Os dados binários são usados apenas para operações SET.
40 4 BinaryDataSize SIZE (0,32768) O tamanho dos dados, em bytes.
44 DataBuffer DATABUFFER O buffer de dados que contém AppId, FilePath, LocalPin e BinaryData.

Definir

Não aplicável.

Resposta

A estrutura de MBIM_UICC_RESPONSE a seguir é usada no InformationBuffer.

MBIM_UICC_RESPONSE (versão 1)

Deslocamento Tamanho Campo Type Descrição
0 4 Versão UINT32 O número de versão da estrutura a seguir. Esse campo deve ser 1 para a versão 1 dessa estrutura.
4 4 StatusWord1 UINT32(0..256) Um parâmetro de retorno específico para o comando UICC.
8 4 StatusWord2 UINT32(0..256) Um parâmetro de retorno específico para o comando UICC.
12 4 ResponseDataOffset OFFSET O deslocamento, em bytes, calculado desde o início dessa estrutura até o buffer que contém os dados de resposta. Os dados de resposta são usados apenas para operações QUERY.
16 4 ResponseDataSize SIZE (0,32768) O tamanho dos dados, em bytes.
20 DataBuffer DATABUFFER O buffer de dados que contém ResponseData.

Eventos não solicitados

Não aplicável.

Códigos de status

Os seguintes códigos de status são aplicáveis:

Código de status Descrição
MBIM_STATUS_BUSY O MBIM básico status conforme definido para todos os comandos.
MBIM_STATUS_FAILURE O MBIM básico status conforme definido para todos os comandos.
MBIM_STATUS_SIM_NOT_INSERTED Não é possível executar a operação UICC porque a UICC está ausente.
MBIM_STATUS_BAD_SIM Não é possível executar a operação UICC porque o UICC está em um estado de erro.
MBIM_STATUS_SHAREABILITY_CONDITION_ERROR O arquivo não pode ser selecionado porque não é compartilhável e está sendo acessado por outro aplicativo. A palavra status retornada pelo SIM é 6985.
MBIM_STATUS_PIN_FAILURE A operação falhou devido a um erro de PIN.

MBIM_CID_MS_UICC_ACCESS_RECORD

Esse CID envia um comando específico para acessar um arquivo fixo ou cíclico linear UICC, com o tipo de estrutura MBIMUiccFileStructureCyclic ou MBIMUIccFileStructureLinear.

Parâmetros

Operação Definir Consulta Notificação
Comando Não aplicável MBIM_UICC_ACCESS_RECORD Não aplicável
Resposta Não aplicável MBIM_UICC_RESPONSE Não aplicável

Consulta

Lê o conteúdo de um registro. O InformationBuffer para MBIM_COMMAND_MSG contém a seguinte estrutura de MBIM_UICC_ACCESS_RECORD. MBIM_UICC_RESPONSE é retornado no InformationBuffer de MBIM_COMMAND_DONE.

MBIM_UICC_ACCESS_RECORD (versão 1)

Deslocamento Tamanho Campo Type Descrição
0 4 Versão UINT32 O número de versão da estrutura a seguir. Esse campo deve ser definido como 1 para a versão 1 dessa estrutura.
4 4 AppIdOffset OFFSET O deslocamento, em bytes, desde o início dessa estrutura até o buffer que contém a ID do aplicativo.
8 4 AppIdSize SIZE (0..16) O tamanho da ID do aplicativo, em bytes, conforme definido na Seção 8.3 da especificação técnica ETSI TS 102 221. Para cartões 2G, esse campo deve ser definido como zero (0).
12 4 FilePathOffset OFFSET O deslocamento, em bytes, calculado desde o início dessa estrutura até o buffer que contém o caminho do arquivo. O caminho do arquivo é uma matriz de IDs de arquivo de 16 bits. A primeira ID deve ser 0x7FFF ou 0x3F00. Se a primeira ID for 0x7FFF, o caminho será relativo ao ADF do aplicativo desginado por AppId. Caso contrário, é um caminho absoluto a partir do MF.
16 4 FilePathSize SIZE O tamanho do caminho do arquivo, em bytes.
20 4 RecordNumber UINT32(0..256) O número do registro. Isso representa o índice de registro absoluto o tempo todo. Não há suporte para o acesso ao registro relativo porque o modem pode executar vários acessos em um arquivo (NEXT, PREVIOUS).
24 4 LocalPinOffset OFFSET O deslocamento, em bytes, calculado desde o início dessa estrutura até o buffer que contém a senha. A senha de bloqueio é uma cadeia de caracteres UTF-8 terminada em nulo de dígitos decimais.
28 4 LocalPinSize SIZE (0..16) O tamanho da senha, em bytes.
32 4 RecordDataOffset OFFSET O deslocamento, em bytes, calculado desde o início dessa estrutura até o buffer que contém os dados específicos do comando. Os dados de registro são usados apenas para operações SET.
36 4 RecordDataSize SIZE (0,256) O tamanho dos dados, em bytes.
40 DataBuffer DATABUFFER O buffer de dados que contém AppId, FilePath, LocalPin e RecordData.

Definir

Não aplicável.

Resposta

Uma estrutura MBIM_UICC_RESPONSE é usada no InformationBuffer.

Eventos não solicitados

Não aplicável.

Códigos de status

Os seguintes códigos de status são aplicáveis:

Código de status Descrição
MBIM_STATUS_BUSY O MBIM básico status conforme definido para todos os comandos.
MBIM_STATUS_FAILURE O MBIM básico status conforme definido para todos os comandos.
MBIM_STATUS_SIM_NOT_INSERTED Não é possível executar a operação UICC porque o UICC está ausente.
MBIM_STATUS_BAD_SIM Não é possível executar a operação UICC porque o UICC está em um estado de erro.
MBIM_STATUS_SHAREABILITY_CONDITION_ERROR O arquivo não pode ser selecionado porque não é compartilhável e está sendo acessado por outro aplicativo no momento. A status palavra retornada pelo SIM é 6985.
MBIM_STATUS_PIN_FAILURE A operação falhou devido a um erro de PIN.

MBIM_CID_MS_PIN_EX

Esse CID é usado para executar todas as operações de segurança de PIN, conforme definido na Seção 9 da especificação técnica ETSI TS 102 221. O CID é semelhante a MBIM_CID_MS_PIN, mas estende-o para dar suporte a cartões UICC de vários aplicativos. Há suporte apenas para UICCs compatíveis com verificação única. Não há suporte para UICCs compatíveis com várias verificações que dão suporte a mais de um PIN de aplicativo. Um PIN de aplicativo (PIN1) é atribuído a todos os ADFs/DFs e arquivos no UICC. No entanto, cada aplicativo pode especificar um PIN (PIN2) local como um requisito de verificação de usuário de nível 2, resultando na necessidade de validação adicional para cada comando de acesso. Esse cenário é o que MBIM_CID_MS_PIN_EX dá suporte.

Assim como MBIM_CID_MS_PIN, com MBIM_CID_MS_PIN_EX o dispositivo relata apenas um PIN por vez. Se vários PINs estiverem habilitados e relatar vários PINs também estiverem habilitados, as funções deverão relatar PIN1 primeiro. Por exemplo, se o relatório de bloqueio de subsídio estiver habilitado e o PIN1 do SIM estiver habilitado, o PIN do bloqueio de subsídio deverá ser relatado em uma solicitação de consulta subsequente somente depois que o PIN1 tiver sido verificado com êxito. Um PIN vazio é permitido junto com MBIMPinOperationEnter. Um PIN vazio é especificado definindo o PinSize como zero. Nesse caso, um comando SET é semelhante a uma CONSULTA e retorna o estado do PIN referenciado. Isso está totalmente alinhado ao comportamento do comando VERIFY, conforme especificado na Seção 11.1.9 da especificação técnica ETSI TS 102 221.

Parâmetros

Operação Definir Consulta Notificação
Comando MBIM_SET_PIN_EX MBIM_PIN_APP Não aplicável
Resposta MBIM_PIN_INFO_EX MBIM_PIN_INFO_EX Não aplicável

Consulta

A estrutura de MBIM_PIN_APP a seguir é usada no InformationBuffer.

MBIM_PIN_APP (versão 1)

Deslocamento Tamanho Campo Type Descrição
0 4 Versão UINT32 O número de versão da estrutura a seguir. Esse campo deve ser definido como 1 para a versão 1 dessa estrutura.
4 4 AppIdOffset OFFSET O deslocamento, em bytes, desde o início dessa estrutura até o buffer que contém a ID do aplicativo.
8 4 AppIdSize SIZE (0..16) O tamanho da ID do aplicativo, em bytes, conforme definido na Seção 8.3 da especificação técnica ETSI TS 102 221. Para cartões 2G, esse campo deve ser definido como zero (0).
12 DataBuffer DATABUFFER O AppId conforme definido na especificação técnica ETSI TS 102 221.

Definir

A estrutura de MBIM_SET_PIN_EX a seguir é usada no InformationBuffer.

MBIM_SET_PIN_EX

Deslocamento Tamanho Campo Type Descrição
0 4 PinType MBIM_PIN_TYPE_EX O tipo de PIN. Consulte a tabela MBIM_PIN_TYPE_EX neste tópico.
4 4 PinOperation MBIM_PIN_OPERATION A operação pin. Confira MBIM 1.0.
8 4 PinOffset OFFSET O deslocamento, em bytes, calculado desde o início dessa estrutura para um PIN de cadeia de caracteres que representa o valor do PIN com o qual executar a ação ou o valor pin necessário para habilitar ou desabilitar as configurações de PIN. Esse campo se aplica a todos os valores de PinOperation.
12 4 PinSize SIZE (0..32) O tamanho, em bytes, usado para o PIN.
16 4 NewPinOffset OFFSET O deslocamento, em bytes, calculado desde o início dessa estrutura até a cadeia de caracteres NewPin que representa o novo valor pin a ser definido quando PinOperation é MBIMPinOperationChange ou MBIMPinOperationEnter, para PinTypeMBIMPinTypePuk1 ou PinTypeMBIMPinTypePuk2.
20 4 NewPinSize SIZE (0..32) O tamanho, em bytes, usado para o NewPin.
24 4 AppIdOffset OFFSET O deslocamento, em bytes, calculado desde o início dessa estrutura até o buffer que contém a ID do aplicativo.
28 4 AppIdSize SIZE (0..16) O tamanho da ID do aplicativo, em bytes, conforme definido na Seção 8.3 da especificação técnica ETSI TS 102 221. Para cartões 2G, esse campo deve ser definido como zero (0).
32 DataBuffer DATABUFFER O buffer de dados que contém Pin, NewPin e AppId.

Resposta

A estrutura de MBIM_PIN_INFO_EX a seguir é usada no InformationBuffer.

Deslocamento Tamanho Campo Type Descrição
0 4 PinType MBIM_PIN_TYPE_EX O tipo de PIN. Consulte a tabela MBIM_PIN_TYPE_EX neste tópico.
4 4 PinState MBIM_PIN_STATE O estado do PIN. Confira MBIM 1.0.
8 4 RemainingAttempts UINT32 O número de tentativas restantes para qualquer operação relacionada a PIN, como inserir, habilitar ou desabilitar. Os dispositivos que não dão suporte a essas informações devem definir esse membro como 0xFFFFFFFF.

Eventos não solicitados

Não aplicável.

Códigos de status

Os seguintes códigos de status são aplicáveis:

Código de status Descrição
MBIM_STATUS_BUSY O MBIM básico status conforme definido para todos os comandos.
MBIM_STATUS_FAILURE O MBIM básico status conforme definido para todos os comandos.
MBIM_STATUS_SIM_NOT_INSERTED Não é possível executar a operação UICC porque a UICC está ausente.
MBIM_STATUS_BAD_SIM Não é possível executar a operação UICC porque o UICC está em um estado de erro.
MBIM_STATUS_PIN_DISABLED A operação falhou porque o PIN está desabilitado.
MBIM_STATUS_PIN_REQUIRED A operação falhou porque um PIN deve ser inserido para continuar.
MBIM_STATUS_NO_DEVICE_SUPPORT A operação falhou porque não há suporte para um SET em um tipo de PIN correspondente pelo dispositivo.