MB-UiCC-Zugriff auf niedriger Ebene
Übersicht
Das Mobile Broadband Interface Model Revision 1.0 oder MBIM1 definiert eine OEM- und IHV-agnostische Schnittstelle zwischen einem Hostgerät und einem Mobilfunkdatenmodem.
Eine MBIM1-Funktion umfasst ein intelligentes UICC-Karte und bietet Zugriff auf einige ihrer Daten und den internen Zustand. Die intelligenten Karte verfügen jedoch möglicherweise über zusätzliche Funktionen, die über die von der MBIM-Schnittstelle definiert werden. Diese zusätzlichen Funktionen umfassen die Unterstützung eines sicheren Elements für mobile Zahlungslösungen, die auf der Nahfeldkommunikation basieren, oder für die Remotebereitstellung eines gesamten UICC-Profils.
In einem mobilen Breitband-Windows-Gerät wird die MBIM-Schnittstelle zusätzlich zur RIL-Schnittstelle (Radio Interface Layer) verwendet. Eines der Features, die das RIL bietet, ist eine Schnittstelle für den Zugriff auf die UICC auf niedriger Ebene. In diesem Thema wird eine Reihe von Microsoft-Erweiterungen für MBIM beschrieben, die diese zusätzliche Funktionalität an der MBIM-Schnittstelle beschreiben.
Die Microsoft-Erweiterungen umfassen eine Reihe von Gerätedienstbefehlen (sowohl Set als auch Query) und Benachrichtigungen. Diese Erweiterungen enthalten keine neuen Verwendungen von Gerätedienststreams.
MBIM-Dienst- und CID-Werte
Dienstname | UUID | UUID-Wert |
---|---|---|
Microsoft Low-Level UICC Access | UUID_MS_UICC_LOW_LEVEL | C2F6588E-F037-4BC9-8665-F4D44BD09367 |
In der folgenden Tabelle wird der Befehlscode für die einzelnen CID sowie die Unterstützung von Set-, Abfrage- oder Ereignisanforderungen (Benachrichtigung) vom CID angegeben. Weitere Informationen zu den Parametern, Datenstrukturen und Benachrichtigungen finden Sie im einzelnen Abschnitt der einzelnen CID in diesem Thema.
CID | Befehlscode | Set | Abfrage | Benachrichtigen |
---|---|---|---|---|
MBIM_CID_MS_UICC_ATR | 1 | N | J | N |
MBIM_CID_MS_UICC_OPEN_CHANNEL | 2 | J | N | N |
MBIM_CID_MS_UICC_CLOSE_CHANNEL | 3 | J | N | N |
MBIM_CID_MS_UICC_APDU) | 4 | J | N | N |
MBIM_CID_MS_UICC_TERMINAL_CAPABILITY | 5 | J | J | N |
MBIM_CID_MS_UICC_RESET | 6 | J | J | N |
Statuscodes
MBIM-status-Codes sind in Abschnitt 9.4.5 des MBIM-Standards definiert. Darüber hinaus werden die folgenden zusätzlichen Fehler status-Codes definiert:
Statuscode | Wert (Hex) | BESCHREIBUNG |
---|---|---|
MBIM_STATUS_MS_NO_LOGICAL_CHANNELS | 87430001 | Der geöffnete logische Kanal war nicht erfolgreich, da auf der UICC keine logischen Kanäle verfügbar sind (entweder werden sie nicht unterstützt oder alle werden verwendet). |
MBIM_STATUS_MS_SELECT_FAILED | 87430002 | Der geöffnete logische Kanal war nicht erfolgreich, da SELECT fehlgeschlagen ist. |
MBIM_STATUS_MS_INVALID_LOGICAL_CHANNEL | 87430003 | Die logische Kanalnummer ist ungültig (sie wurde nicht von MBIM_CID_MS_UICC_OPEN_CHANNEL geöffnet). |
MBIM_SUBSCRIBER_READY_STATE
Typ | Wert | BESCHREIBUNG |
---|---|---|
MBIMSubscriberReadyStateNoEsimProfile | 7 | Die Karte ist bereit, verfügt aber über keine aktivierten Profile. |
UICC-Antworten und -status
Die UICC kann entweder eine zeichenbasierte oder datensatzbasierte Schnittstelle oder beides implementieren. Obwohl sich der spezifische Mechanismus unterscheidet, reagiert die UICC auf jeden Befehl mit zwei status Bytes (sw1 und SW2) und einer Antwort (die möglicherweise leer ist). Ein normaler Erfolg status wird durch 90 00 angegeben. Wenn das UICC jedoch das Karte Anwendungs-Toolkit unterstützt und die UICC einen proaktiven Befehl an das Terminal senden möchte, wird eine erfolgreiche Rückgabe durch einen status von 91 XX (wobei XX variiert) angezeigt. Die MBIM-Funktion oder das Terminal ist für die Behandlung dieses proaktiven Befehls genauso verantwortlich wie ein proaktiver Befehl, der während eines anderen UICC-Vorgangs empfangen wird (Senden eines FETCH an die UICC, Behandeln des proaktiven Befehls oder Senden an den Host mit MBIM_CID_STK_PAC). Wenn der MBIM-Host entweder MBIM_CID_MS_UICC_OPEN_CHANNEL oder MBIM_CID_MS_UICC_APDU sendet, sollte er sowohl 90 00 als auch 91 XX als normale status betrachten.
Befehle müssen Antworten zurückgeben können, die größer als 256 Bytes sind. Dieser Mechanismus wird in Abschnitt 5.1.3 der Norm ISO/IEC 7816-4:2013 beschrieben. In diesem Fall gibt der Karte SW1 SW2 status Wörter von 61 XX anstelle von 90 00 zurück, wobei XX entweder die Anzahl der verbleibenden Bytes oder 00 ist, wenn 256 Bytes oder mehr vorhanden sind. Das Modem muss wiederholt eine GET RESPONSE mit demselben Klassenbyte ausstellen, bis alle Daten empfangen wurden. Dies wird durch die letzten status Wörter 90 00 angegeben. Die Sequenz muss innerhalb eines bestimmten logischen Kanals unterbrechungsfrei sein. Zusätzliche APDUs sollten am Modem verarbeitet werden und für den Host transparent sein. Wenn auf dem Host behandelt wird, gibt es keine Garantie dafür, dass eine andere APDU während der Sequenz von APDUs asynchron auf die Karte verweist.
Vergleich mit IHVRIL
In den Abschnitten 5.2.3.3.10 bis 5.2.3.3.14 der IHVRIL-Spezifikation wird eine ähnliche Schnittstelle definiert, auf der diese Spezifikation basiert. Einige Unterschiede sind:
- Die RIL-Schnittstelle bietet keine Möglichkeit, sicheres Messaging anzugeben. Der MBIM-Befehl zum Austauschen von APDUs gibt dies als expliziten Parameter an.
- Die RIL-Schnittstelle definiert die Interpretation des Klassenbytes innerhalb der APDU nicht eindeutig. Die MBIM-Spezifikation besagt, dass das vom Host gesendete Klassenbyte vorhanden sein muss, aber nicht verwendet wird (und stattdessen die MBIM-Funktion dieses Byte erstellt).
- Die RIL-Schnittstelle verwendet eine separate Funktion, um alle UICC-Kanäle in einer Gruppe zu schließen, während die MBIM-Schnittstelle dies mit Variantenargumenten für eine einzelne CID erreicht.
- Die Beziehung zwischen MBIM-Fehler status und UICC-status (SW1 SW2) ist klarer definiert als die Beziehung zwischen RIL-Fehlern und UICC-status.
- Die MBIM-Schnittstelle unterscheidet fehler beim Zuordnen eines neuen logischen Kanals von fehler zu SELECT einer angegebenen Anwendung.
- Die MBIM-Schnittstelle ermöglicht das Senden der Modemterminalfunktionsobjekte an die Karte.
MBIM_CID_MS_UICC_ATR
Die Antwort auf das Zurücksetzen (Answer to Reset, ATR) ist die erste Zeichenfolge von Bytes, die vom UICC gesendet werden, nachdem ein Zurücksetzen durchgeführt wurde. Es beschreibt die Funktionen der Karte, z. B. die Anzahl der von ihr unterstützten logischen Kanäle. Die MBIM-Funktion muss den ATR speichern, wenn er vom UICC empfangen wird. Anschließend kann der Host den Befehl MBIM_CID_MS_UICC_ATR verwenden, um den ATR abzurufen.
Parameter
type | Set | Abfrage | benachrichtigungs- |
---|---|---|---|
Get-Help | Nicht verfügbar | Leer | Nicht verfügbar |
Antwort | Nicht verfügbar | MBIM_MS_ATR_INFO | Nicht verfügbar |
Abfrage
Der InformationBuffer einer Abfragemeldung ist leer.
Set
Nicht zutreffend
Antwort
Der InformationBuffer von MBIM_COMMAND_DONE enthält die folgende MBIM_MS_ATR_INFO-Struktur, die die Antwort beschreibt, die für das UICC zurückgesetzt werden soll, das an diese Funktion angefügt ist.
MBIM_MS_ATR_INFO
Offset | Size | Feld | Typ | BESCHREIBUNG |
---|---|---|---|---|
0 | 4 | AtrSize | SIZE(0..33) | Die Länge von AtrData. |
4 | 4 | AtrOffset | OFFSET | Der Offset in Bytes, der vom Anfang dieser Struktur zu einem Bytearray namens AtrData berechnet wird, das die ATR-Daten enthält. |
8 | AtrSize | DataBuffer | DATABUFFER | Das AtrData-Bytearray . |
Nicht angeforderte Ereignisse
Nicht zutreffend
Statuscodes
Es gelten die folgenden status Codes.
Statuscode | BESCHREIBUNG |
---|---|
MBIM_STATUS_SUCCESS | Grundlegende MBIM-status wie für alle Befehle definiert. |
MBIM_STATUS_BUSY | Grundlegende MBIM-status wie für alle Befehle definiert. |
MBIM_STATUS_FAILURE | Grundlegende MBIM-status wie für alle Befehle definiert. |
MBIM_STATUS_NO_DEVICE_SUPPORT | Grundlegende MBIM-status wie für alle Befehle definiert. |
MBIM_STATUS_SIM_NOT_INSERTED | Der UICC-Vorgang kann nicht ausgeführt werden, da die UICC fehlt. |
MBIM_STATUS_BAD_SIM | Der UICC-Vorgang kann nicht ausgeführt werden, da sich die UICC in einem Fehlerzustand befindet. |
MBIM_STATUS_NOT_INITIALIZED | Der UICC-Vorgang kann nicht ausgeführt werden, da die UICC noch nicht vollständig initialisiert ist. |
MBIM_CID_MS_UICC_OPEN_CHANNEL
Der Host verwendet den Befehl MBIM_CID_MS_UICC_OPEN_CHANNEL, um anzufordern, dass die Funktion einen neuen logischen Kanal auf dem UICC-Karte öffnet und eine angegebene UICC-Anwendung (angegeben durch die Anwendungs-ID) auswählt.
Die Funktion implementiert diesen MBIM-Befehl mithilfe einer Sequenz von UICC-Befehlen:
- Die Funktion sendet einen BEFEHL MANAGE CHANNEL an die UICC, wie in Abschnitt 11.1.17 der technischen Spezifikation ETSI TS 102 221 beschrieben, um einen neuen logischen Kanal zu erstellen. Wenn dieser Befehl fehlschlägt, gibt die Funktion den MBIM_STATUS_MS_NO_LOGICAL_CHANNELS status mit SW1 SW2 zurück und führt keine weiteren Aktionen aus.
- Wenn der Befehl KANAL VERWALTEN erfolgreich ist, meldet die UICC die Kanalnummer des neuen logischen Kanals an die Funktion. Die Funktion sendet einen SELECT [by name]-Befehl mit P1 = 04, wie in Abschnitt 11.1.1 der technischen Spezifikation ETSI TS 102 221 beschrieben. Wenn dieser Vorgang fehlschlägt, sendet die Funktion einen BEFEHL MANAGE CHANNEL an die UICC, um den logischen Kanal zu schließen, und gibt den MBIM_STATUS_MS_SELECT_FAILED status mit SW1 SW2 aus dem SELECT zurück.
- Wenn der SELECT-Befehl erfolgreich ist, zeichnet die Funktion die logische Kanalnummer und die vom Host angegebene Kanalgruppe für die zukünftige Referenz auf. Anschließend wird die logische Kanalnummer, SW1 SW2 von SELECT und die Antwort von SELECT an den Host zurückgegeben.
Parameter
Vorgang | Set | Abfrage | benachrichtigungs- |
---|---|---|---|
Get-Help | MBIM_MS_SET_UICC_OPEN_CHANNEL | Nicht verfügbar | Nicht verfügbar |
Antwort | MBIM_MS_UICC_OPEN_CHANNEL_INFO | Nicht verfügbar | Nicht verfügbar |
Abfrage
Nicht zutreffend
Set
Der InformationBuffer von MBIM_COMMAND_MSG enthält die folgende MBIM_MS_SET_UICC_OPEN_CHANNEL-Struktur.
MBIM_MS_SET_UICC_OPEN_CHANNEL
Offset | Size | Feld | Typ | BESCHREIBUNG |
---|---|---|---|---|
0 | 4 | AppIdSize | SIZE(0..32) | Die Größe der Anwendungs-ID (AppId). |
4 | 4 | AppIdOffset | OFFSET | Der Offset in Bytes, der vom Anfang dieser Struktur auf ein Bytearray namens AppId berechnet wird, das die zu SELECTed zu verwendende AppId definiert. |
8 | 4 | SelectP2Arg | UINT32(0..255) | Das P2-Argument für den SELECT-Befehl. |
12 | 4 | ChannelGroup | UINT32 | Ein Tagwert, der die Kanalgruppe für diesen Kanal identifiziert. |
16 | AppIdSize | DataBuffer | DATABUFFER | Das AppId-Bytearray . |
Antwort
Der InformationBuffer von MBIM_COMMAND_DONE enthält die folgende MBIM_MS_UICC_OPEN_CHANNEL_INFO-Struktur.
MBIM_MS_UICC_OPEN_CHANNEL_INFO
Offset | Size | Feld | Typ | BESCHREIBUNG |
---|---|---|---|---|
0 | 4 | Status | BYTE[2] | SW1 und SW2, in dieser Bytereihenfolge. Weitere Informationen finden Sie in den Hinweisen nach dieser Tabelle. |
4 | 4 | Kanal | UINT32(0..19) | Der bezeichner des logischen Kanals. Wenn dieser Member 0 ist, ist der Vorgang fehlgeschlagen. |
8 | 4 | ResponseLength | SIZE(0..256) | Die Antwortlänge in Bytes. |
12 | 4 | ResponseOffset | OFFSET | Der Offset in Bytes, der vom Anfang dieser Struktur auf ein Bytearray namens Response berechnet wird, das die Antwort aus dem SELECT enthält. |
16 | - | DataBuffer | DATABUFFER | Die Daten des Antwortbytearrays. |
Wenn der Befehl MBIM_STATUS_MS_NO_LOGICAL_CHANNELS zurückgibt, muss das Feld Status die UICC-status Wörter SW1 und SW2 aus dem Befehl KANAL VERWALTEN enthalten, und die restlichen Felder sind 0. Wenn der Befehl MBIM_STATUS_MS_SELECT_FAILED zurückgibt, muss das Feld Status die UICC-status Wörter SW1 und SW2 aus dem SELECT-Befehl enthalten, und die restlichen Felder sind 0. Für alle anderen status muss der InformationBuffer leer sein.
Nicht angeforderte Ereignisse
Nicht zutreffend
Statuscodes
Es gelten die folgenden status-Codes:
Statuscode | BESCHREIBUNG |
---|---|
MBIM_STATUS_SUCCESS | Grundlegende MBIM-status wie für alle Befehle definiert. |
MBIM_STATUS_BUSY | Grundlegende MBIM-status wie für alle Befehle definiert. |
MBIM_STATUS_FAILURE | Grundlegende MBIM-status wie für alle Befehle definiert. |
MBIM_STATUS_NO_DEVICE_SUPPORT | Grundlegende MBIM-status wie für alle Befehle definiert. |
MBIM_STATUS_SIM_NOT_INSERTED | Der UICC-Vorgang kann nicht ausgeführt werden, da die UICC fehlt. |
MBIM_STATUS_BAD_SIM | Der UICC-Vorgang kann nicht ausgeführt werden, da sich die UICC in einem Fehlerzustand befindet. |
MBIM_STATUS_NOT_INITIALIZED | Der UICC-Vorgang kann nicht ausgeführt werden, da die UICC noch nicht vollständig initialisiert ist. |
MBIM_STATUS_MS_NO_LOGICAL_CHANNELS | Fehler beim Öffnen des logischen Kanals, da auf der UICC keine logischen Kanäle verfügbar sind (entweder werden sie nicht unterstützt oder alle werden verwendet). |
MBIM_STATUS_MS_SELECT_FAILED | Der geöffnete logische Kanal war nicht erfolgreich, da SELECT fehlgeschlagen ist. |
MBIM_CID_MS_UICC_CLOSE_CHANNEL
Der Host sendet MBIM_CID_MS_UICC_CLOSE_CHANNEL an die Funktion, um einen logischen Kanal auf der UICC zu schließen. Der Host kann eine Kanalnummer oder eine Kanalgruppe angeben.
Wenn der Host eine Kanalnummer angibt, sollte die Funktion überprüfen, ob dieser Kanal von einem vorherigen MBIM_CID_MS_UICC_OPEN_CHANNEL geöffnet wurde. Wenn ja, sollte der Befehl KANAL VERWALTEN an die UICC gesendet werden, um den Kanal zu schließen, eine status von MBIM_STATUS_SUCCESS zurückzugeben und den SW1 SW2 aus dem KANAL VERWALTEN zurückzugeben. Andernfalls sollte sie keine Aktion ausführen und den MBIM_STATUS_MS_INVALID_LOGICAL_CHANNEL Fehler status zurückgeben.
Wenn der Host eine Kanalgruppe angibt, bestimmt die Funktion, welche logischen Kanäle (falls vorhanden) mit dieser Kanalgruppe geöffnet wurden, und sendet für jeden solchen Kanal einen BEFEHL MANAGE CHANNEL an die UICC. Es gibt eine status von MBIM_STATUS_SUCCESS mit dem SW1 SW2 des letzten MANAGE-KANALs zurück. Wenn keine Kanäle geschlossen wurden, wird 90 00 zurückgegeben.
Parameter
Vorgang | Set | Abfrage | benachrichtigungs- |
---|---|---|---|
Get-Help | MBIM_MS_SET_UICC_CLOSE_CHANNEL | Nicht verfügbar | Nicht verfügbar |
Antwort | MBIM_MS_UICC_CLOSE_CHANNEL_INFO | Nicht verfügbar | Nicht verfügbar |
Abfrage
Nicht zutreffend
Set
Der InformationBuffer von MBIM_COMMAND_MSG enthält die folgende MBIM_MS_SET_UICC_CLOSE_CHANNEL-Struktur.
MBIM_MS_SET_UICC_CLOSE_CHANNEL
Offset | Size | Feld | Typ | BESCHREIBUNG |
---|---|---|---|---|
0 | 4 | Kanal | UINT32(0..19) | Gibt den zu schließenden Kanal an, wenn ungleich null. Wenn null, gibt an, dass die ChannelGroup zugeordneten Kanäle geschlossen werden sollen. |
4 | 4 | ChannelGroup | UINT32 | Wenn Channel null ist, wird ein Tagwert angegeben, und alle Kanäle mit diesem Tag werden geschlossen. Wenn Channel ungleich null ist, wird dieses Feld ignoriert. |
Antwort
Der InformationBuffer von MBIM_COMMAND_DONE enthält die folgende MBIM_MS_UICC_CLOSE_CHANNEL_INFO-Struktur.
MBIM_MS_UICC_CLOSE_CHANNEL_INFO
Offset | Size | Feld | Typ | BESCHREIBUNG |
---|---|---|---|---|
0 | 4 | Status | BYTE[2] | SW1 und SW2 des letzten MANAGE CHANNEL, der von der Funktion im Namen dieses Befehls ausgeführt wurde. |
Nicht angeforderte Ereignisse
Nicht zutreffend
Statuscodes
Statuscode | BESCHREIBUNG |
---|---|
MBIM_STATUS_SUCCESS | Grundlegende MBIM-status für alle Befehle definiert. |
MBIM_STATUS_BUSY | Grundlegende MBIM-status für alle Befehle definiert. |
MBIM_STATUS_FAILURE | Grundlegende MBIM-status für alle Befehle definiert. |
MBIM_STATUS_NO_DEVICE_SUPPORT | Grundlegende MBIM-status für alle Befehle definiert. |
MBIM_STATUS_SIM_NOT_INSERTED | Der UICC-Vorgang kann nicht ausgeführt werden, da die UICC fehlt. |
MBIM_STATUS_BAD_SIM | Der UICC-Vorgang kann nicht ausgeführt werden, da sich die UICC in einem Fehlerzustand befindet. |
MBIM_STATUS_NOT_INITIALIZED | Der UICC-Vorgang kann nicht ausgeführt werden, da die UICC noch nicht vollständig initialisiert wurde. |
MBIM_STATUS_MS_INVALID_LOGICAL_CHANNEL | Die logische Kanalnummer ist ungültig (d. h., sie wurde nicht mit MBIM_CID_MS_UICC_OPEN_CHANNEL geöffnet). |
MBIM_CID_MS_UICC_APDU
Der Host verwendet MBIM_CID_MS_UICC_APDU, um eine Befehls-APDU an einen angegebenen logischen Kanal auf der UICC zu senden und die Antwort zu empfangen. Die MBIM-Funktion sollte sicherstellen, dass der logische Kanal zuvor mit MBIM_CID_MS_UICC_OPEN_CHANNEL geöffnet wurde, und mit status MBIM_STATUS_MS_INVALID_LOGICAL_CHANNEL fehlschlagen, wenn dies nicht der Fall war.
Der Host muss eine vollständige APDU an die Funktion senden. Die APDU kann mit einem Klassenbytewert gesendet werden, der in der ersten Interindustry-Definition in Abschnitt 4 der Norm ISO/IEC 7816-4:2013 oder in der erweiterten Definition in Abschnitt 10.1.1 der technischen Spezifikation ETSI TS 102 221 definiert ist. Die APDU kann ohne sicheres Messaging oder mit sicherem Messaging gesendet werden. Der Befehlsheader wurde nicht authentifiziert. Der Host gibt den Typ des Klassenbytes, die logische Kanalnummer und das sichere Messaging zusammen mit der APDU an.
Das erste Byte der Befehls-APDU ist das Klassenbyte, das gemäß Abschnitt 4 der Norm ISO/IEC 7816-4:2013 oder Abschnitt 10.1.1 der technischen Spezifikation ETSI TS 102 221 codiert ist. Der Host kann 0X-, 4X-, 6X-, 8X-, CX- oder EX-Klassenbytes senden. Die Funktion übergibt dieses Byte jedoch nicht direkt an die UICC. Stattdessen ersetzt die Funktion vor dem Senden der APDU an die UICC das erste Byte vom Host durch ein neues Klassenbyte (codiert gemäß Abschnitt 4 des ISO/IEC 7816-4:2013-Standards oder Abschnitt 10.1.1 der technischen Spezifikation ETSI TS 102 221), basierend auf den vom Host angegebenen Werten Type, Channel und SecureMessaging:
Byte-Klasse | BESCHREIBUNG |
---|---|
0X | 7816-4 Interindustry, 1 <= Kanal <= 3, codiert Sicherheit in geringem Nibble, falls relevant |
4X | 7816-4 Interindustry, 4 <= Kanal <= 19, kein sicheres Messaging |
6X | 7816-4 Interindustry, 4 <= Kanal <= 19, sicher (Header nicht authentifiziert) |
8X | 102 221 erweitert, 1< = Kanal <= 3, codiert Sicherheit in geringem Nibble, falls relevant |
CX | 102 221 erweitert, 4 <= Kanal <= 19, kein sicheres Messaging |
EX | 102 221 erweitert, 4 <= Kanal <= 19, sicher (Header nicht authentifiziert) |
Die Funktion gibt die status, SW1 SW2 und antwort von der UICC an den Host zurück.
Parameter
Vorgang | Set | Abfrage | benachrichtigungs- |
---|---|---|---|
Get-Help | MBIM_MS_SET_UICC_APDU | Nicht verfügbar | Nicht verfügbar |
Antwort | MBIM_MS_UICC_APDU_INFO | Nicht verfügbar | Nicht verfügbar |
Abfrage
Nicht zutreffend
Set
Der InformationBuffer von MBIM_COMMAND_MSG enthält die folgende MBIM_MS_SET_UICC_APDU-Struktur.
MBIM_MS_SET_UICC_APDU
Offset | Size | Feld | Typ | BESCHREIBUNG |
---|---|---|---|---|
0 | 4 | Kanal | UINT32(1..19) | Gibt den Kanal an, für den die APDU gesendet wird. |
4 | 4 | SecureMessaging | MBIM_MS_UICC_SECURE_MESSAGING | Gibt an, ob die APDU mithilfe von Secure Messaging ausgetauscht wird. |
8 | 4 | Typ | MBIM_MS_UICC_CLASS_BYTE_TYPE | Gibt den Typ der Klassenbytedefinition an. |
12 | 4 | CommandSize | UINT32(0..261) | Die Befehlslänge in Bytes. |
16 | 4 | CommandOffset | OFFSET | Der Offset in Bytes, der vom Anfang dieser Struktur zu einem Bytearray namens Command berechnet wird, das die APDU enthält. |
20 | - | DataBuffer | DATABUFFER | Das Befehlsbytearray . |
Die MBIM_MS_SET_UICC_APDU-Struktur verwendet die folgenden MBIM_MS_UICC_SECURE_MESSAGING- und MBIM_MS_UICC_CLASS_BYTE_TYPE-Datenstrukturen.
MBIM_MS_UICC_SECURE_MESSAGING
Typ | Wert | BESCHREIBUNG |
---|---|---|
MBIMMsUiccSecureMessagingNone | 0 | Kein sicheres Messaging. |
MBIMMsUiccSecureMessagingNoHdrAuth | 1 | Sicheres Messaging, Befehlsheader nicht authentifiziert. |
MBIM_MS_UICC_CLASS_BYTE_TYPE
Typ | Wert | BESCHREIBUNG |
---|---|---|
MBIMMsUiccInterindustry | 0 | Definiert nach der ersten Interindustry-Definition in ISO 7816-4. |
MBIMMsUiccExtended | 1 | Definiert gemäß der erweiterten Definition in ETSI 102 221. |
Antwort
Der InformationBuffer von MBIM_COMMAND_DONE enthält die folgende MBIM_MS_UICC_APDU_INFO-Struktur.
MBIM_MS_UICC_APDU_INFO
Offset | Size | Feld | Typ | BESCHREIBUNG |
---|---|---|---|---|
0 | 4 | Status | BYTE[2] | Die Wörter SW1 und SW2 status, die sich aus dem Befehl ergeben. |
4 | 4 | ResponseLength | SIZE | Die Antwortlänge in Bytes. |
8 | 4 | ResponseOffset | OFFSET | Der Offset in Bytes, der vom Anfang dieser Struktur auf ein Bytearray namens Response berechnet wird, das die Antwort aus dem SELECT enthält. |
12 | - | DataBuffer | DATABUFFER | Das Antwortbytearray . |
Nicht angeforderte Ereignisse
Nicht zutreffend
Statuscodes
Es gelten die folgenden status-Codes:
Statuscode | BESCHREIBUNG |
---|---|
MBIM_STATUS_SUCCESS | Grundlegende MBIM-status für alle Befehle definiert. |
MBIM_STATUS_BUSY | Grundlegende MBIM-status für alle Befehle definiert. |
MBIM_STATUS_FAILURE | Grundlegende MBIM-status für alle Befehle definiert. |
MBIM_STATUS_NO_DEVICE_SUPPORT | Grundlegende MBIM-status für alle Befehle definiert. |
MBIM_STATUS_SIM_NOT_INSERTED | Der UICC-Vorgang kann nicht ausgeführt werden, da die UICC fehlt. |
MBIM_STATUS_BAD_SIM | Der UICC-Vorgang kann nicht ausgeführt werden, da sich die UICC in einem Fehlerzustand befindet. |
MBIM_STATUS_NOT_INITIALIZED | Der UICC-Vorgang kann nicht ausgeführt werden, da die UICC noch nicht vollständig initialisiert wurde. |
MBIM_STATUS_MS_INVALID_LOGICAL_CHANNEL | Die logische Kanalnummer ist ungültig (d. h., sie wurde nicht mit MBIM_CID_MS_UICC_OPEN_CHANNEL geöffnet). |
Wenn die Funktion die APDU an die UICC senden kann, gibt sie MBIM_STATUS_SUCCESS zusammen mit den SW1 SW2-status Wörtern und der Antwort von der UICC (falls vorhanden) zurück. Der Host muss die status (SW1 SW2) untersuchen, um festzustellen, ob der APDU-Befehl auf der UICC erfolgreich war oder warum er fehlgeschlagen ist.
MBIM_CID_MS_UICC_TERMINAL_CAPABILITY
Der Host sendet MBIM_CID_MS_UICC_TERMINAL_CAPABILITY, um das Modem über die Funktionen des Hosts zu informieren. Die TERMINAL CAPABILITY-APDU, die in Abschnitt 11.1.19 der technischen Spezifikation ETSI TS 102 221 angegeben ist, muss an die Karte gesendet werden, bevor die erste Anwendung ausgewählt wird (sofern sie unterstützt wird). Daher kann der Host die TERMINALFUNKTIONs-APDU nicht direkt senden, sondern sendet stattdessen den befehl MBIM_CID_MS_UICC_TERMINAL_CAPABILITY, der ein oder mehrere Terminalfunktionsobjekte enthält, die dauerhaft vom Modem gespeichert werden. Beim nächsten Karte einfügen oder zurücksetzen, nach dem ATR, wählt das Modem den MF aus und überprüft, ob TERMINALFUNKTION unterstützt wird. Wenn dies der Fall ist, sendet das Modem die TERMINAL CAPABILITY-APDU mit den vom MBIM_CID_MS_UICC_TERMINAL_CAPABILITY-Befehl angegebenen Informationen sowie alle vom Modem generierten Informationen.
Parameter
Vorgang | Set | Abfrage | benachrichtigungs- |
---|---|---|---|
Get-Help | MBIM_MS_SET_UICC_TERMINAL_CAPABILITY | Leer | Nicht verfügbar |
Antwort | Nicht verfügbar | MBIM_MS_TERMINAL_CAPABILITY_INFO | Nicht verfügbar |
Abfrage
Der InformationBuffer muss NULL und InformationBufferLength null sein.
Set
Der InformationBuffer von MBIM_COMMAND_MSG enthält die folgende MBIM_MS_SET_UICC_TERMINAL_CAPABILITY-Struktur.
MBIM_MS_SET_UICC_TERMINAL_CAPABILITY
Offset | Size | Feld | Typ | BESCHREIBUNG |
---|---|---|---|---|
0 | 4 | ElementCount | UINT32 | Die Elementanzahl von Terminalfunktionsobjekten. |
4 | 8*EG | CapabilityList-OL_PAIR_LIST | Eine Liste von Paaren mit Offsetlänge für jedes Terminalfunktionsobjekt TLV. | |
4+8*EC | - | DataBuffer | DATABUFFER | Ein Bytearray der tatsächlichen Terminalfunktionsobjekt-TLVs. |
Antwort
Antworten enthalten den genauen SET-Befehl mit den zuletzt an das Modem gesendeten Terminalfunktionsobjekten. Daher ist MBIM_MS_TERMINAL_CAPABILITY_INFO mit MBIM_MS_SET_UICC_TERMINAL_CAPABILITY identisch.
MBIM_MS_TERMINAL_CAPABILITY_INFO
Offset | Size | Feld | Typ | BESCHREIBUNG |
---|---|---|---|---|
0 | 4 | ElementCount | UINT32 | Die Elementanzahl von Terminalfunktionsobjekten. |
4 | 8*EG | CapabilityList-OL_PAIR_LIST | Eine Liste von Paaren mit Offsetlänge für jedes Terminalfunktionsobjekt TLV. | |
4+8*EC | - | DataBuffer | DATABUFFER | Ein Bytearray der tatsächlichen Terminalfunktionsobjekt-TLVs. |
Nicht angeforderte Ereignisse
Nicht zutreffend
Statuscodes
Statuscode | BESCHREIBUNG |
---|---|
MBIM_STATUS_SUCCESS | Grundlegende MBIM-status für alle Befehle definiert. |
MBIM_STATUS_BUSY | Grundlegende MBIM-status für alle Befehle definiert. |
MBIM_STATUS_FAILURE | Grundlegende MBIM-status für alle Befehle definiert. |
MBIM_STATUS_NO_DEVICE_SUPPORT | Grundlegende MBIM-status für alle Befehle definiert. |
MBIM_STATUS_SIM_NOT_INSERTED | Der UICC-Vorgang kann nicht ausgeführt werden, da die UICC fehlt. |
MBIM_STATUS_BAD_SIM | Der UICC-Vorgang kann nicht ausgeführt werden, da sich die UICC in einem Fehlerzustand befindet. |
MBIM_STATUS_NOT_INITIALIZED | Der UICC-Vorgang kann nicht ausgeführt werden, da die UICC noch nicht vollständig initialisiert wurde. |
MBIM_STATUS_MS_INVALID_LOGICAL_CHANNEL | Die logische Kanalnummer ist ungültig (d. h., sie wurde nicht mit MBIM_CID_MS_UICC_OPEN_CHANNEL geöffnet). |
MBIM_CID_MS_UICC_RESET
Der Host sendet MBIM_CID_MS_UICC_RESET an die MBIM-Funktion, um die UICC zurückzusetzen oder den Passthroughstatus der Funktion abzufragen.
Wenn der Host anfordert, dass die Funktion die UICC zurücksetzt, wird eine Passthroughaktion angegeben.
Wenn der Host die Passthroughaktion MBIMMsUICCPassThroughEnable angibt, setzt die Funktion die UICC zurück und behandelt die UICC beim Einschalten der UICC wie in einem Passthrough-Modus, der die Kommunikation zwischen host und UICC ermöglicht (auch wenn die UICC kein Telecom UICC-Dateisystem aufweist). Die Funktion sendet keine APDUs an den Karte und stört zu keinem Zeitpunkt die Kommunikation zwischen dem Host und der UICC.
Wenn der Host die Passthroughaktion MBIMMsUICCPassThroughDisable angibt, setzt die Funktion die UICC zurück und behandelt die UICC beim Einschalten der UICC als reguläre Telecom UICC und erwartet, dass ein Telecom UICC-Dateisystem auf der UICC vorhanden ist.
Wenn der Host die Funktion abfragt, um die Passthrough-status zu bestimmen, und wenn die Funktion mit dem MBIMMsUICCPassThroughEnabled-status antwortet, bedeutet dies, dass der Passthroughmodus aktiviert ist. Wenn die Funktion mit dem MBIMMsUICCPassThroughDisabled-status antwortet, bedeutet dies, dass der Passthroughmodus deaktiviert ist.
Parameter
type | Set | Abfrage | benachrichtigungs- |
---|---|---|---|
Get-Help | MBIM_MS_SET_UICC_RESET | Leer | Nicht verfügbar |
Antwort | MBIM_MS_UICC_RESET_INFO | MBIM_MS_UICC_RESET_INFO | Nicht verfügbar |
Abfrage
Der InformationBuffer muss NULL und InformationBufferLength null sein.
Set
MBIM_SET_MS_UICC_RESET
Die MBIM_SET_MS_UICC_RESET-Struktur enthält die vom Host angegebene Passthroughaktion.
Offset | Size | Feld | Typ | BESCHREIBUNG |
---|---|---|---|---|
0 | 4 | PassThroughAction | MBIM_MS_UICC_PASSTHROUGH_ACTION | Weitere Informationen finden Sie unter MBIM_MS_UICC_PASSTHROUGH_ACTION. |
MBIM_MS_UICC_PASSTHROUGH_ACTION
Die MBIM_MS_UICC_PASSTHROUGH_ACTION-Enumeration definiert die Typen von Passthroughaktionen, die der Host für die MBIM-Funktion angeben kann.
Typen | Wert |
---|---|
MBIMMsUiccPassThroughDisable | 0 |
MBIMMsUiccPassThroughEnable | 1 |
Antwort
MBIM_MS_UICC_RESET_INFO
Die MBIM_MS_UICC_RESET_INFO-Struktur enthält die Passthrough-status der MBIM-Funktion.
Offset | Size | Feld | Typ | BESCHREIBUNG |
---|---|---|---|---|
0 | 4 | PassThroughStatus | MBIM_MS_UICC_PASSTHROUGH_STATUS | Weitere Informationen finden Sie unter MBIM_MS_UICC_PASSTHROUGH_STATUS. |
MBIM_MS_UICC_PASSTHROUGH_STATUS
Die MBIM_MS_UICC_PASSTHROUGH_STATUS-Enumeration definiert die Typen von Passthrough status die die MBIM-Funktion für den Host angibt.
Typen | Wert |
---|---|
MBIMMsUiccPassThroughDisabled | 0 |
MBIMMsUiccPassThroughEnabled | 1 |
Nicht angeforderte Ereignisse
Nicht zutreffend
Statuscodes
Statuscode | BESCHREIBUNG |
---|---|
MBIM_STATUS_SUCCESS | Grundlegende MBIM-status für alle Befehle definiert. |
MBIM_STATUS_BUSY | Das Gerät ist ausgelastet. |
MBIM_STATUS_FAILURE | Fehler beim Vorgang. |
MBIM_STATUS_NO_DEVICE_SUPPORT | Das Gerät unterstützt diesen Vorgang nicht. |
OID_WWAN_UICC_RESET
Die NDIS-Entsprechung für MBIM_CID_MS_UICC_RESET ist OID_WWAN_UICC_RESET.