Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Visão geral
Este tópico especifica uma extensão para a interface MBIM (Mobile Broadband Interface Model) para permitir o acesso a sistemas de arquivos e aplicativos de cartão inteligente 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 da 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 uma estrutura de aplicativo de cartão de exemplo.
O sistema de arquivos UICC pode ser considerado como uma floresta de árvores de diretório. A árvore SIM herdada tem sua raiz em um Master File (MF) e contém até dois níveis de subdiretórios, os Arquivos Dedicados (DFs), que abrigam Arquivos Elementais (EFs) responsáveis por armazenar vários tipos de informações. O cartão SIM define DFs sob o MF, um dos quais, DFTelecom, contém informações comuns a vários tipos de acesso, como a agenda telefônica comum. Aplicativos adicionais são efetivamente implementados como árvores separadas, cada uma com raiz em seu próprio Arquivo de Diretório de Aplicativos (ADF). Cada ADF é identificado por um identificador de aplicativo que pode ter até 128 bits de comprimento. Um arquivo na raiz do cartão (EFDir sob o MF no diagrama) contém os nomes do aplicativo e os identificadores correspondentes. Em uma árvore (o MF ou um ADF), DFs e EFs podem ser identificados por um caminho de IDs de arquivo, em que um 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.
- OID_WWAN_UICC_APP_LIST
- OID_WWAN_UICC_FILE_STATUS
- OID_WWAN_UICC_ACCESS_BINARY
- OID_WWAN_UICC_ACCESS_RECORD
- OID_WWAN_PIN_EX2
Serviço MBIM e valores CID
| Nome do serviço | Identificador Único Universal (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 a UUID e o código de comando para cada CID, bem como se o CID dá suporte a solicitações Defina, Consulta ou Evento (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 | Identificador Único Universal (UUID) | Código de comando | Conjunto | 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 | oito | 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 de um UICC e informações sobre eles. Quando o UICC no modem é totalmente inicializado e pronto para se registrar na 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 | Conjunto | Consulta | Notificação |
|---|---|---|---|
| Comando | Não aplicável | Empty | 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.
Conjunto
Não aplicável.
Resposta
O InformationBuffer em MBIM_COMMAND_DONE contém a seguinte estrutura MBIM_UICC_APP_LIST.
MBIM_UICC_APP_LIST (versão 1)
| Offset | Tamanho | Campo | Tipo | 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 MBIM_UICC_APP_INFO do aplicativo UICC que estão sendo retornadas nessa resposta. |
| oito | 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 o AppCount – 1. Ele indexa a matriz de aplicativos retornados por esta resposta. Se nenhum aplicativo estiver selecionado para registro, este 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 offset de informações do aplicativo no DataBuffer. O segundo elemento do par é um campo de 4 bytes com o tamanho das informações do aplicativo. | |
| AppListSize | Buffer de Dados | buffer de dados | Uma matriz de AppCount * MBIM_UICC_APP_INFO estruturas. |
MBIM_UICC_APP_INFO
| Offset | Tamanho | Campo | Tipo | Descrição |
|---|---|---|---|---|
| 0 | 4 | Tipo de Aplicativo | MBIM_UICC_APP_TYPE | O tipo do aplicativo UICC. |
| 4 | 4 | AppIdOffset | OFFSET | Deslocamento para o ID do aplicativo no buffer de dados. Somente os primeiros bytes appIdSize são significativos. Se a ID do aplicativo for maior que MBIM_MAXLENGTH_APPID bytes, o AppIdSize especificará o comprimento real, mas apenas o primeiro MBIM_MAXLENGTH_APPID bytes estará nesse campo. Esse campo é válido somente quando AppType não é MBIMUiccAppTypeMf, MBIMUiccAppTypeMfSIM ou MBIMUiccAppTypeMfRUIM. |
| oito | 4 | AppIdSize | TAMANHO (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 databuffer. Esse campo é definido como zero para os tipos de aplicativo MBIMUiccAppTypeMf, MBIMUiccAppTypeMfSIM ou MBIMUiccAppTypeMfRUIM. |
| 12 | AppNameOffset | OFFSET | Deslocamento do nome do aplicativo no buffer de dados. Uma cadeia de caracteres UTF-8 especificando 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 | TAMANHO (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 (MBIM_MAXLENGTH_APPNAME - 1) bytes estão no databuffer. |
| 20 | 4 | NumPinKeyRefs | TAMANHO (0,.8) | O número de referências de chave PIN do aplicativo. Em outras palavras, o número de elementos de PinKeyRef 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 de um driver MBB e/ou modem que não dá 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 | TAMANHO (0,.8) | O tamanho de PinKeyRef. |
| 32 | Buffer de Dados | buffer de dados | 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 oferece suporte a chaves de aplicativo diferentes para aplicativos distintos, esse campo deve ser 0x01. |
MBIM_UICC_APP_TYPE
| Tipo | Valor | Descrição |
|---|---|---|
| MBIMUiccAppTypeUnknown | 0 | Tipo desconhecido. |
| MBIMUiccAppTypeMf | 1 | Diretórios SIM herdados com raiz no MF. |
| MBIMUiccAppTypeMfSIM | 2 | Diretórios SIM herdados enraizados no DF_GSM. |
| MBIMUiccAppTypeMfRUIM | 3 | Diretórios SIM herdados enraizados 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 | Status básico do MBIM, conforme definido para todos os comandos. |
| MBIM_STATUS_BUSY | Status básico do MBIM, conforme definido para todos os comandos. |
| MBIM_STATUS_FAILURE | Status básico do MBIM, conforme definido para todos os comandos. |
| MBIM_STATUS_NO_DEVICE_SUPPORT | Status básico do MBIM, conforme definido para todos os comandos. |
| MBIM_STATUS_SIM_NÃO_INSERIDO | 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 a UICC está em um estado de erro. |
| MBIM_STATUS_NOT_INITIALIZED | Não é possível executar a operação UICC porque a UICC ainda não foi totalmente inicializada. |
MBIM_CID_MS_UICC_FILE_STATUS
Esse CID recupera informações sobre um arquivo UICC especificado.
Parâmetros
| Operação | Conjunto | 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 de MBIM_UICC_FILE_PATH.
MBIM_UICC_FILE_PATH (versão 1)
| Offset | Tamanho | Campo | Tipo | 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. |
| oito | 4 | AppIdSize | TAMANHO (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 desta 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 designado por AppId. Caso contrário, é um caminho absoluto a partir do MF. |
| 16 | 4 | FilePathSize | TAMANHO (0,.8) | O tamanho do caminho do arquivo, em bytes. |
| 20 | Buffer de Dados | buffer de dados | O buffer de dados que contém AppId e FilePath. |
Conjunto
Não aplicável.
Resposta
A estrutura de MBIM_UICC_FILE_STATUS a seguir é usada no InformationBuffer.
MBIM_UICC_FILE_STATUS (versão 1)
| Offset | Tamanho | Campo | Tipo | 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. |
| oito | 4 | StatusWord2 | UINT32(0..256) | Um parâmetro de retorno específico para o comando UICC. |
| 12 | 4 | Acessibilidade de Arquivo | MBIM_UICC_FILE_ACCESSIBILITY | A acessibilidade do arquivo UICC. |
| 16 | 4 | Tipo de Arquivo | MBIM_UICC_FILE_TYPE | O tipo de arquivo UICC. |
| 20 | 4 | Estrutura de Ficheiros | MBIM_UICC_FILE_STRUCTURE | A estrutura de arquivos UICC. |
| 24 | 4 | Contagem de Itens | 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 (LEIA, ATUALIZAR, ATIVAR e DESATIVAR nessa ordem) nesse arquivo. |
MBIM_UICC_FILE_ACCESSIBILITY
A enumeração MBIM_UICC_FILE_ACCESSIBILITY é usada na estrutura de MBIM_UICC_FILE_STATUS anterior.
| Tipo | Valor | Descrição |
|---|---|---|
| MBIMUiccFileAccessibilityUnknown | 0 | Compartilhamento de arquivos desconhecido. |
| AcessibilidadeDeArquivoMBIMUiccNãoCompartilhável | 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.
| Tipo | Valor | Descrição |
|---|---|---|
| MBIMUiccFileTypeUnknown | 0 | Tipo de arquivo desconhecido. |
| MBIMUiccFileTypeWorkingEf | 1 | Trabalho em EF. |
| 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 é utilizada na estrutura MBIM_UICC_FILE_STATUS mencionada anteriormente.
| Tipo | 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 do mesmo comprimento. |
| MBIMUiccFileStructureLinear | 3 | Um conjunto linear de registros, cada um do mesmo comprimento. |
| MBIMUiccFileStructureBerTLV | 4 | Um conjunto de valores de dados acessível por marca. |
MBIM_PIN_TYPE_EX
A enumeração MBIM_PIN_TYPE_EX é usada na estrutura de MBIM_UICC_FILE_STATUS anterior.
| Tipo | 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 nessa 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 | oito | 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 1 de identificação pessoal (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 | Status básico do MBIM, conforme definido para todos os comandos. |
| MBIM_STATUS_FAILURE | Status básico do MBIM, conforme definido para todos os comandos. |
| MBIM_STATUS_SIM_NOT_INSERTED (SIM não inserido) | Não é possível executar a operação UICC porque a UICC está ausente. |
| MBIM_STATUS_BAD_SIM (Cartão SIM inválido) | Não é possível executar a operação UICC porque a 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 palavra de status 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 | Conjunto | 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 Buffer de Informação de MBIM_COMMAND_DONE.
MBIM_UICC_ACCESS_BINARY (versão 1)
| Offset | Tamanho | Campo | Tipo | 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 o identificador do aplicativo. |
| oito | 4 | AppIdSize | TAMANHO (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 desta 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 designado por AppId. Caso contrário, é um caminho absoluto a partir do MF. |
| 16 | 4 | FilePathSize | TAMANHO | 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 no de especificação técnica do 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 por 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 desta estrutura até o buffer que contém a senha. Esse é o PIN local (PIN2) e é usado caso a operação exija validação de PIN local. |
| 32 | 4 | LocalPinSize | TAMANHO (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 | TAMANHO (0,.32768) | O tamanho dos dados, em bytes. |
| 44 | Buffer de Dados | buffer de dados | O buffer de dados que contém AppId, FilePath, LocalPin e BinaryData. |
Conjunto
Não aplicável.
Resposta
A estrutura de MBIM_UICC_RESPONSE a seguir é usada no InformationBuffer.
MBIM_UICC_RESPONSE (versão 1)
| Offset | Tamanho | Campo | Tipo | 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. |
| oito | 4 | StatusWord2 | UINT32(0..256) | Um parâmetro de retorno específico para o comando UICC. |
| 12 | 4 | DeslocamentoDeDadosDeResposta | 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 de consulta. |
| 16 | 4 | ResponseDataSize | TAMANHO (0,.32768) | O tamanho dos dados, em bytes. |
| 20 | Buffer de Dados | buffer de dados | 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 | Status básico do MBIM, conforme definido para todos os comandos. |
| MBIM_STATUS_FAILURE | Status básico do MBIM, conforme definido para todos os comandos. |
| MBIM_STATUS_SIM_NÃO_INSERIDO | 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 a 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 palavra de status retornada pelo SIM é 6985. |
| MBIM_STATUS_FALHA_DE_PIN | 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 UICC linear fixo ou cíclico, com tipo de estrutura MBIMUiccFileStructureCyclic ou MBIMUIccFileStructureLinear.
Parâmetros
| Operação | Conjunto | 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 estrutura de MBIM_UICC_ACCESS_RECORD a seguir. O MBIM_UICC_RESPONSE é retornado no InformationBuffer de MBIM_COMMAND_DONE.
MBIM_UICC_ACCESS_RECORD (versão 1)
| Offset | Tamanho | Campo | Tipo | 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 o identificador do aplicativo. |
| oito | 4 | AppIdSize | TAMANHO (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 desta 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 designado por AppId. Caso contrário, é um caminho absoluto a partir do MF. |
| 16 | 4 | FilePathSize | TAMANHO | O tamanho do caminho do arquivo, em bytes. |
| 20 | 4 | NúmeroDoRegião | UINT32(0..256) | O número do registro. Isso representa o índice de registro absoluto em todos os momentos. Não há suporte para acesso de 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 desta 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 | TAMANHO (0,.16) | O tamanho da senha, em bytes. |
| 32 | 4 | DeslocamentoDeDadosDeRegistro | 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 | TamanhoDosDadosDeRegistro | TAMANHO (0,256) | O tamanho dos dados, em bytes. |
| 40 | Buffer de Dados | buffer de dados | O buffer de dados que contém AppId, FilePath, LocalPin e RecordData. |
Conjunto
Não aplicável.
Resposta
Uma estrutura de 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 | Status básico do MBIM, conforme definido para todos os comandos. |
| MBIM_STATUS_FAILURE | Status básico do MBIM, conforme definido para todos os comandos. |
| MBIM_STATUS_SIM_NÃO_INSERIDO | 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 a 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 palavra de status retornada pelo SIM é 6985. |
| MBIM_STATUS_FALHA_DE_PIN | 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 ao MBIM_CID_MS_PIN, mas o estende 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 (PIN1) de aplicativo é atribuído a todos os ADFs/DFs e arquivos na 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. Caso os vários PINs estejam habilitados e reportar vários PINs também esteja habilitado, as funções devem reportar o PIN1 primeiro. Por exemplo, se o relatório de bloqueio de subsídios estiver habilitado e o PIN1 do SIM estiver habilitado, o PIN de 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 do especificação técnica do ETSI TS 102 221.
Parâmetros
| Operação | Conjunto | 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)
| Offset | Tamanho | Campo | Tipo | 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 o identificador do aplicativo. |
| oito | 4 | AppIdSize | TAMANHO (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 | Buffer de Dados | buffer de dados | A AppId, conforme definido na especificação técnica ETSI TS 102 221. |
Conjunto
A estrutura de MBIM_SET_PIN_EX a seguir é usada no InformationBuffer.
MBIM_SET_PIN_EX
| Offset | Tamanho | Campo | Tipo | Descrição |
|---|---|---|---|---|
| 0 | 4 | PinType | MBIM_PIN_TYPE_EX | O tipo PIN. Consulte a tabela MBIM_PIN_TYPE_EX neste tópico. |
| 4 | 4 | PinOperation | Operação de PIN MBIM | A operação PIN. Consulte o MBIM 1.0. |
| oito | 4 | PinOffset | OFFSET | O deslocamento, em bytes, calculado a partir do início dessa estrutura até uma cadeia de caracteres PIN que representa o valor 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 | TAMANHO (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 para 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 | TAMANHO (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 | TAMANHO (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 | Buffer de Dados | buffer de dados | O buffer de dados que contém o Pin, o NewPin e o AppId. |
Resposta
A estrutura de MBIM_PIN_INFO_EX a seguir é usada no InformationBuffer.
| Offset | Tamanho | Campo | Tipo | Descrição |
|---|---|---|---|---|
| 0 | 4 | PinType | MBIM_PIN_TYPE_EX | O tipo PIN. Consulte a tabela MBIM_PIN_TYPE_EX neste tópico. |
| 4 | 4 | PinState | MBIM_PIN_STATE | O estado do PIN. Consulte o MBIM 1.0. |
| oito | 4 | TentativasRestantes | UINT32 | O número de tentativas restantes para qualquer operação relacionada ao 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 | Status básico do MBIM, conforme definido para todos os comandos. |
| MBIM_STATUS_FAILURE | Status básico do MBIM, conforme definido para todos os comandos. |
| MBIM_STATUS_SIM_NÃO_INSERIDO | 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 a UICC está em um estado de erro. |
| MBIM_STATUS_PIN_DESABILITADO | 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 um SET em um tipo PIN correspondente não é suportado pelo dispositivo. |