MB UICC-Anwendungs- und -Dateisystemzugriff
Übersicht
Dieses Thema spezifiziert eine Erweiterung der Mobile Broadband Interface Model (MBIM)-Schnittstelle, um den Zugriff auf UICC-Chipkartenanwendungen und -Dateisysteme zu ermöglichen. Diese Erweiterung von MBIM ermöglicht den logischen Zugriff auf Anwendungen und Dateisysteme, die mit der technischen Spezifikation ETSI TS 102 221 der UICC konform sind, und wird in Windows 10, Version 1903 und höher unterstützt.
UICC-Zugriff und -Sicherheit
UICC bietet ein Dateisystem und unterstützt eine Reihe von Anwendungen, die gleichzeitig ausgeführt werden können. Dazu gehören die USIM für UMTS, die CSIM für CDMA und die ISIM für IMS. Die SIM ist ein veralteter Teil der UICC, der als eine dieser Anwendungen modelliert werden kann (für GSM).
Das folgende Diagramm aus Abschnitt 8.1 der technischen Spezifikation ETSI TS 102 221 zeigt ein Beispiel für die Struktur einer Kartenanwendung.
Das UICC-Dateisystem kann als eine Gesamtstruktur von Verzeichnisbäumen betrachtet werden. Der veraltete SIM-Baum hat als Root eine Masterdatei (MF) und enthält bis zu zwei Ebenen von Unterverzeichnissen (Dedicated Files oder DFs) mit Elementardateien (EFs), die verschiedene Arten von Informationen enthalten. Die SIM definiert DFs unter der MF, von denen eine, DFTelecom, Informationen enthält, die mehreren Zugriffsarten gemeinsam sind, z. B. das gemeinsame Telefonbuch. Zusätzliche Anwendungen sind als separate Bäume implementiert, von denen jeder in seiner eigenen Anwendungsverzeichnisdatei (ADF) steckt. Jede ADF wird durch einen Anwendungsbezeichner identifiziert, der bis zu 128 Bit lang sein kann. Eine Datei unter dem Root der Karte (EFDir unter dem MF im Diagramm) enthält die Anwendungsnamen und die entsprechenden Bezeichner. Innerhalb eines Baums (der MF oder eines ADF) können DFs und EFs durch einen Pfad von Datei-IDs identifiziert werden, wobei eine Datei-ID eine 16-Bit-Ganzzahl ist.
Erweiterungen der NDIS-Schnittstelle
Die folgenden OIDs wurden definiert, um den Zugriff auf UICC-Anwendungen und -Dateisysteme zu unterstützen.
- OID_WWAN_UICC_APP_LIST
- OID_WWAN_UICC_FILE_STATUS
- OID_WWAN_UICC_ACCESS_BINARY
- OID_WWAN_UICC_ACCESS_RECORD
- OID_WWAN_PIN_EX2
MBIM-Dienst und CID-Werte
Dienstname | UUID | UUID-Wert |
---|---|---|
Microsoft Low-Level-UICC-Zugriff | UUID_MS_UICC_LOW_LEVEL | C2F6588E-F037-4BC9-8665-F4D44BD09367 |
Microsoft Basic IP Connectivity Erweiterungen | UUID_BASIC_CONNECT_EXTENSIONS | 3D01DCC5-FEF5-4D05-9D3A-BEF7058E9AAF |
In der folgenden Tabelle finden Sie die UUID und den Befehlscode für jedes CID sowie die Angabe, ob das CID Set-, Query- oder Event (Benachrichtigung)-Anfragen unterstützt. Weitere Informationen zu den Parametern, Datenstrukturen und Benachrichtigungen finden Sie in den einzelnen Abschnitten zu jeder CID in diesem Thema.
CID | UUID | Befehlscode | Set | Abfrage | Notify |
---|---|---|---|---|---|
MBIM_CID_MS_UICC_APP_LIST | UUID_MS_UICC_LOW_LEVEL | 7 | N | Y | N |
MBIM_CID_MS_UICC_FILE_STATUS | UUID_MS_UICC_LOW_LEVEL | 8 | N | Y | N |
MBIM_CID_MS_UICC_ACCESS_BINARY | UUID_MS_UICC_LOW_LEVEL | 9 | Y | Y | N |
MBIM_CID_MS_UICC_ACCESS_RECORD | UUID_MS_UICC_LOW_LEVEL | 10 | Y | Y | N |
MBIM_CID_MS_PIN_EX | UUID_BASIC_CONNECT_EXTENSIONS | 14 | Y | Y | N |
MBIM_CID_MS_UICC_APP_LIST
Diese CID ruft eine Liste von Anwendungen in einer UICC und Informationen über sie ab. Wenn die UICC im Modem vollständig initialisiert und bereit ist, sich beim Operator zu registrieren, muss eine UICC-Anwendung für die Registrierung ausgewählt werden. Eine Abfrage mit diesem CID sollte die ausgewählte Anwendung im Feld ActiveAppIndex in der als Antwort verwendeten Struktur MBIM_UICC_APP_LIST zurückgeben.
Parameter
Vorgang | Set | Abfrage | Benachrichtigung |
---|---|---|---|
Get-Help | Nicht zutreffend | Empty | Nicht zutreffend |
Antwort | Nicht zutreffend | MBIM_UICC_APP_LIST | Nicht zutreffend |
Abfrage
Der InformationBuffer von MBIM_COMMAND_MSG ist leer.
Set
Nicht zutreffend.
Antwort
Der InformationBuffer in MBIM_COMMAND_DONE enthält die folgende MBIM_UICC_APP_LIST-Struktur.
MBIM_UICC_APP_LIST (Version 1)
Abweichung | Size | Feld | Typ | Beschreibung |
---|---|---|---|---|
0 | 4 | Version | UINT32 | Die Versionsnummer der folgenden Struktur. Dieses Feld muss für die Version 1 dieser Struktur auf 1 festgelegt werden. |
4 | 4 | AppCount | UINT32 | Die Anzahl der UICC-Anwendungsstrukturen MBIM_UICC_APP_INFO, die in dieser Antwort zurückgegeben werden. |
8 | 4 | ActiveAppIndex | UINT32(0..NumApp - 1) | Der Index der Anwendung, die vom Modem für die Registrierung im Mobilfunknetz ausgewählt wurde. Dieses Feld muss zwischen 0 und dem AppCount - 1 liegen. Es verweist auf das Array der Anwendungen, die von dieser Antwort zurückgegeben werden. Wenn keine Anwendung für die Registrierung ausgewählt wurde, enthält dieses Feld 0xFFFFFFFF. |
12 | 4 | AppListSize | UINT32 | Die Größe der Daten der App-Liste in Bytes. |
8*AppCount | AppList | OL_PAIR_LIST | Das erste Element des Paares ist ein 4-Byte-Feld mit dem Offset einer App-Info im DataBuffer. Das zweite Element des Paares ist ein 4-Byte-Feld mit der Größe der App-Information. | |
AppListSize | DataBuffer | DATABUFFER | Ein Array von AppCount * MBIM_UICC_APP_INFO-Strukturen. |
MBIM_UICC_APP_INFO
Abweichung | Size | Feld | Typ | Beschreibung |
---|---|---|---|---|
0 | 4 | AppType | MBIM_UICC_APP_TYPE | Der Typ der UICC-Anwendung. |
4 | 4 | AppIdOffset | OFFSET | Offset für die Anwendungs-ID im Datenpuffer. Nur die ersten AppIdSize-Bytes sind von Bedeutung. Wenn die Anwendungs-ID länger ist als MBIM_MAXLENGTH_APPID Bytes, dann gibt AppIdSize die tatsächliche Länge an, aber nur die ersten MBIM_MAXLENGTH_APPID Bytes sind in diesem Feld. Dieses Feld ist nur gültig, wenn AppType nicht MBIMUiccAppTypeMf, MBIMUiccAppTypeMfSIM oder MBIMUiccAppTypeMfRUIM ist. |
8 | 4 | AppIdSize | SIZE (0..16) | Die Größe der Anwendungs-ID in Bytes, wie in Abschnitt 8.3 der technischen Spezifikation ETSI TS 102 221 definiert. AppIdSize kann eine Zahl größer als 16 enthalten, aber in diesem Fall befinden sich nur die ersten 16 (MBIM_MAXLENGTH_APPID) Bytes im Datenpuffer. Dieses Feld ist für die App-Typen MBIMUiccAppTypeMf, MBIMUiccAppTypeMfSIM oder MBIMUiccAppTypeMfRUIM auf Null festgelegt. |
12 | AppNameOffset | OFFSET | Offset für den Anwendungsnamen im Datenpuffer. Eine UTF-8-Zeichenfolge, die den Namen der Anwendung angibt. Die Länge dieses Feldes wird durch AppNameLength festgelegt. Wenn die Länge größer oder gleich MBIM_MAXLENGTH_APPNAME Bytes ist, enthält dieses Feld die ersten MBIM_MAXLENGTH_APPNAME - 1 Bytes des Namens. Die Zeichenfolge ist immer null-terminiert. | |
16 | 4 | AppNameLength | SIZE (0..256) | Die Länge des Anwendungsnamens in Bytes. AppNameLength kann eine Zahl gleich oder größer als 256 enthalten, aber in diesen Fällen befinden sich nur die ersten 255 (MBIM_MAXLENGTH_APPNAME - 1) Bytes im Datenpuffer. |
20 | 4 | NumPinKeyRefs | SIZE (0..8) | Die Anzahl der PIN-Schlüsselreferenzen der Anwendung. Mit anderen Worten, die Anzahl der Elemente von PinKeyRef, die gültig sind. Anwendungen auf einem virtuellen R-UIM haben keine PIN-Schlüsselreferenzen. |
24 | 4 | KeyRefOffset | OFFSET | Offset der PinKeyRef im DataBuffer. PinKeyRef ist ein Byte-Array, das die PIN-Schlüsselreferenzen der Anwendung für verschiedene Verifizierungsebenen angibt (Schlüssel für PIN1, PIN2 und möglicherweise eine universelle PIN), wie in Tabelle 9.3 und Abschnitt 9.4.2 der technischen Spezifikation ETSI TS 102 221 definiert. Im Falle einer Karte mit nur einer Verifizierung oder eines MBB-Treibers und/oder -Modems, die keine unterschiedlichen Anwendungsschlüssel für verschiedene Anwendungen unterstützen, muss das erste Byte des Feldes PinKeyRef 0x01 (PIN1) und das zweite Byte 0x81 (PIN2) sein, wie in Abschnitt 9.5.1 von ETSI TS 102 221 beschrieben. |
28 | 4 | KeyRefSize | SIZE (0..8) | Die Größe von PinKeyRef. |
32 | DataBuffer | DATABUFFER | Der Datenpuffer, der AppId, AppName und PinKeyRef einer Single-Verification-Karte oder eines MBB-Treibers und/oder Modems enthält, die keine unterschiedlichen Anwendungsschlüssel für verschiedene Anwendungen unterstützen, muss dieses Feld 0x01 sein. |
MBIM_UICC_APP_TYPE
Typ | Wert | Beschreibung |
---|---|---|
MBIMUiccAppTypeUnknown | 0 | Unbekannter Typ. |
MBIMUiccAppTypeMf | 1 | Veraltete SIM-Verzeichnisse mit Root auf der MF. |
MBIMUiccAppTypeMfSIM | 2 | Veraltete SIM-Verzeichnisse mit Root auf der DF_GSM. |
MBIMUiccAppTypeMfRUIM | 3 | Veraltete SIM-Verzeichnisse mit Root auf der DF_CDMA. |
MBIMUiccAppTypeUSIM | 4 | USIM-Anwendung. |
MBIMUiccAppTypeCSIM | 5 | CSIM-Anwendung. |
MBIMUiccAppTypeISIM | 6 | ISIM-Anwendung. |
Konstanten
Die folgenden Konstanten sind für MBIM_CID_MS_UICC_APP_INFO definiert.
const int MBIM_MAXLENGTH_APPID = 32
const int MBIM_MAXLENGTH_APPNAME = 256
const int MBIM_MAXNUM_PINREF = 8
Unaufgeforderte Ereignisse
Nicht zutreffend.
Statuscodes
Die folgenden Status Codes sind anwendbar:
Statuscode | Beschreibung |
---|---|
MBIM_STATUS_SUCCESS | Grundlegender MBIM-Status wie für alle Befehle definiert. |
MBIM_STATUS_BUSY | Grundlegender MBIM-Status wie für alle Befehle definiert. |
MBIM_STATUS_FAILURE | Grundlegender MBIM-Status wie für alle Befehle definiert. |
MBIM_STATUS_NO_DEVICE_SUPPORT | Grundlegender MBIM-Status wie für alle Befehle definiert. |
MBIM_STATUS_SIM_NOT_INSERTED | Der UICC-Vorgang kann nicht ausgeführt werden, da die UICC nicht vorhanden ist. |
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, weil die UICC noch nicht vollständig initialisiert ist. |
MBIM_CID_MS_UICC_FILE_STATUS
Dieses CID ruft Informationen über eine bestimmte UICC-Datei ab.
Parameter
Vorgang | Set | Abfrage | Benachrichtigung |
---|---|---|---|
Get-Help | Nicht zutreffend | MBIM_UICC_FILE_PATH | Nicht zutreffend |
Antwort | Nicht zutreffend | MBIM_UICC_FILE_STATUS | Nicht zutreffend |
Abfrage
Der InformationBuffer von MBIM_COMMAND_MSG enthält die Ziel-UICC in Form einer MBIM_UICC_FILE_PATH-Struktur.
MBIM_UICC_FILE_PATH (Version 1)
Abweichung | Size | Feld | Typ | Beschreibung |
---|---|---|---|---|
0 | 4 | Version | UINT32 | Die Versionsnummer der folgenden Struktur. Dieses Feld muss 1 für Version 1 dieser Struktur sein. |
4 | 4 | AppIdOffset | OFFSET | Der Offset in Bytes, berechnet vom Anfang dieser Struktur bis zum Puffer, der die Anwendungs-ID enthält. |
8 | 4 | AppIdSize | SIZE (0..16) | Die Größe der Anwendungs-ID in Bytes, wie in Abschnitt 8.3 der technischen Spezifikation ETSI TS 102 221 definiert. Bei 2G-Karten muss dieses Feld auf Null (0) festgelegt werden. |
12 | 4 | FilePathOffset | OFFSET | Der Offset in Bytes, der vom Anfang dieser Struktur bis zum Puffer, der den Dateipfad enthält, berechnet wird. Der Dateipfad ist ein Array von 16-Bit Datei-IDs. Die erste ID muss entweder 0x7FFF oder 0x3F00 sein. Wenn die erste ID 0x7FFF ist, dann ist der Pfad relativ zum ADF der Anwendung, die durch AppId gekennzeichnet wird. Andernfalls handelt es sich um einen absoluten Pfad, beginnend mit dem MF. |
16 | 4 | FilePathSize | SIZE (0..8) | Die Größe des Dateipfads in Bytes. |
20 | DataBuffer | DATABUFFER | Der Datenpuffer, der AppId und FilePath enthält. |
Set
Nicht zutreffend.
Antwort
Die folgende MBIM_UICC_FILE_STATUS Struktur wird im InformationBuffer verwendet.
MBIM_UICC_FILE_STATUS (Version 1)
Abweichung | Size | Feld | Typ | Beschreibung |
---|---|---|---|---|
0 | 4 | Version | UINT32 | Die Versionsnummer der folgenden Struktur. Dieses Feld muss 1 für Version 1 dieser Struktur sein. |
4 | 4 | StatusWord1 | UINT32(0..256) | Ein spezifischer Rückgabeparameter für den UICC-Befehl. |
8 | 4 | StatusWord2 | UINT32(0..256) | Ein spezifischer Rückgabeparameter für den UICC-Befehl. |
12 | 4 | FileAccessibility | MBIM_UICC_FILE_ACCESSIBILITY | Die Zugreifbarkeit der UICC-Datei. |
16 | 4 | FileType | MBIM_UICC_FILE_TYPE | Der UICC-Dateityp. |
20 | 4 | FileStructure | MBIM_UICC_FILE_STRUCTURE | Die Struktur der UICC-Datei. |
24 | 4 | ItemCount | UINT32 | Die Anzahl der Elemente in der UICC-Datei. Für transparente und TLV-Dateien ist dies auf 1 festgelegt. |
28 | 4 | Size | UINT32 | Die Größe der einzelnen Elemente in Bytes. Bei transparenten oder TLV-Dateien ist dies die Größe der gesamten EF. Bei datensatzbasierten Dateien steht dies für die Gesamtzahl der Datensätze. |
32 | 16 | FileLockStatus | MBIM_PIN_TYPE_EX[4] | Ein Array vom Typ MBIM_PIN_TYPE_EX, das die Zugriffsbedingungen für jeden Vorgang (READ, UPDATE, ACTIVATE und DEACTIVATE in dieser Reihenfolge) auf diese Datei beschreibt. |
MBIM_UICC_FILE_ACCESSIBILITY
Die Aufzählung MBIM_UICC_FILE_ACCESSIBILITY wird in der vorangehenden Struktur MBIM_UICC_FILE_STATUS verwendet.
Typ | Wert | Beschreibung |
---|---|---|
MBIMUiccFileAccessibilityUnknown | 0 | Gemeinsame Nutzung der Datei unbekannt. |
MBIMUiccFileAccessibilityNotShareable | 1 | Nicht gemeinsam nutzbare Datei. |
MBIMUiccFileAccessibilityShareable | 2 | Gemeinsam nutzbare Datei. |
MBIM_UICC_FILE_TYPE
Die Aufzählung MBIM_UICC_FILE_TYPE wird in der vorhergehenden Struktur MBIM_UICC_FILE_STATUS verwendet.
Typ | Wert | Beschreibung |
---|---|---|
MBIMUiccFileTypeUnknown | 0 | Dateityp unbekannt. |
MBIMUiccFileTypeWorkingEf | 1 | Arbeits-EF. |
MBIMUiccFileTypeInternalEf | 2 | Interne EF. |
MBIMUiccFileTypeDfOrAdf | 3 | Dedizierte Datei, ein Verzeichnis, das anderen Knoten übergeordnet ist. Dies kann ein DF oder ADF sein. |
MBIM_UICC_FILE_STRUCTURE
Die Aufzählung MBIM_UICC_FILE_STRUCTURE wird in der vorangehenden Struktur MBIM_UICC_FILE_STATUS verwendet.
Typ | Wert | Beschreibung |
---|---|---|
MBIMUiccFileStructureUnknown | 0 | Eine unbekannte Dateistruktur. |
MBIMUiccFileStructureTransparent | 1 | Ein einzelner Datensatz mit variabler Länge. |
MBIMUiccFileStructureCyclic | 2 | Ein zyklischer Satz von Datensätzen, die alle die gleiche Länge haben. |
MBIMUiccFileStructureLinear | 3 | Ein linearer Satz von Datensätzen, jeder mit der gleichen Länge. |
MBIMUiccFileStructureBerTLV | 4 | Ein Satz von Datenwerten, auf die über ein Tag zugegriffen werden kann. |
MBIM_PIN_TYPE_EX
Die Aufzählung MBIM_PIN_TYPE_EX wird in der vorangehenden Struktur MBIM_UICC_FILE_STATUS verwendet.
Typ | Wert | Beschreibung |
---|---|---|
MBIMPinTypeNone | 0 | Es steht keine PIN zur Eingabe an. |
MBIMPinTypeCustom | 1 | Der PIN-Typ ist ein angepasster Typ und keiner der anderen in dieser Aufzählung aufgeführten PIN-Typen. |
MBIMPinTypePin1 | 2 | Den PIN1-Schlüssel |
MBIMPinTypePin2 | 3 | Den PIN2-Schlüssel |
MBIMPinTypeDeviceSimPin | 4 | Das Gerät zum SIM-Schlüssel. |
MBIMPinTypeDeviceFirstSimPin | 5 | Der Schlüssel vom Gerät zur allerersten SIM-Karte. |
MBIMPinTypeNetworkPin | 6 | Der Schlüssel für die Personalisierung des Netzwerks. |
MBIMPinTypeNetworkSubsetPin | 7 | Der Schlüssel für die Personalisierung der Untermenge des Netzwerks. |
MBIMPinTypeServiceProviderPin | 8 | Der Schlüssel für die Personalisierung des Dienstanbieters (SP). |
MBIMPinTypeCorporatePin | 9 | Der Schlüssel für die Personalisierung des Unternehmens. |
MBIMPinTypeSubsidyLock | 10 | Der Subsidy-Freigabeschlüssel. |
MBIMPinTypePuk1 | 11 | Der Personal Identification Number 1 Unlock Key (PUK1). |
MBIMPinTypePuk2 | 12 | Der Personal Identification Number 2 Unlock Key (PUK2). |
MBIMPinTypeDeviceFirstSimPuk | 13 | Das Gerät zum allerersten SIM-PIN-Freischaltschlüssel. |
MBIMPinTypeNetworkPuk | 14 | Der Schlüssel zur Entsperrung der persönlichen Networking-Personalisierung. |
MBIMPinTypeNetworkSubsetPuk | 15 | Der Schlüssel zur Entsperrung der persönlichen Untermenge des Netzwerks. |
MBIMPinTypeServiceProviderPuk | 16 | Der Schlüssel zur Entsperrung der persönlichen Daten des Dienstanbieters (SP). |
MBIMPinTypeCorporatePuk | 17 | Der Schlüssel zur Entsperrung der persönlichen Daten des Unternehmens. |
MBIMPinTypeNev | 18 | Den NEV-Schlüssel |
MBIMPinTypeAdm | 19 | Der administrative Schlüssel. |
Unaufgeforderte Ereignisse
Nicht zutreffend.
Statuscodes
Die folgenden Status Codes sind anwendbar:
Statuscode | Beschreibung |
---|---|
MBIM_STATUS_BUSY | Grundlegender MBIM-Status wie für alle Befehle definiert. |
MBIM_STATUS_FAILURE | Grundlegender MBIM-Status wie für alle Befehle definiert. |
MBIM_STATUS_SIM_NOT_INSERTED | Der UICC-Vorgang kann nicht ausgeführt werden, da die UICC nicht vorhanden ist. |
MBIM_STATUS_BAD_SIM | Der UICC-Vorgang kann nicht ausgeführt werden, da sich die UICC in einem Fehlerzustand befindet. |
MBIM_STATUS_SHAREABILITY_CONDITION_ERROR | Die Datei kann nicht ausgewählt werden, weil sie nicht gemeinsam genutzt werden kann und gerade von einer anderen Anwendung zugegriffen wird. Das von der SIM zurückgegebene Statuswort lautet 6985. |
MBIM_CID_MS_UICC_ACCESS_BINARY
Dieser CID sendet einen speziellen Befehl für den Zugriff auf eine UICC-Binärdatei mit dem Strukturtyp MBIMUiccFileStructureTransparent oder MBIMUiccFileStructureBerTLV.
Parameter
Vorgang | Set | Abfrage | Benachrichtigung |
---|---|---|---|
Get-Help | Nicht zutreffend | MBIM_UICC_ACCESS_BINARY | Nicht zutreffend |
Antwort | Nicht zutreffend | MBIM_UICC_RESPONSE | Nicht zutreffend |
Abfrage
Liest eine Binardatei. Der InformationBuffer für MBIM_COMMAND_MSG enthält eine Struktur MBIM_UICC_ACCESS_BINARY. Eine MBIM_UICC_RESPONSE-Struktur wird im InformationBuffer von MBIM_COMMAND_DONE zurückgegeben.
MBIM_UICC_ACCESS_BINARY (Version 1)
Abweichung | Size | Feld | Typ | Beschreibung |
---|---|---|---|---|
0 | 4 | Version | UINT32 | Die Versionsnummer der folgenden Struktur. Dieses Feld muss für die Version 1 dieser Struktur auf 1 festgelegt werden. |
4 | 4 | AppIdOffset | OFFSET | Der Offset in Bytes vom Anfang dieser Struktur zum Puffer, der die Anwendungs-ID enthält. |
8 | 4 | AppIdSize | SIZE (0..16) | Die Größe der Anwendungs-ID in Bytes, wie in Abschnitt 8.3 der technischen Spezifikation ETSI TS 102 221 definiert. Bei 2G-Karten muss dieses Feld auf Null (0) festgelegt werden. |
12 | 4 | FilePathOffset | OFFSET | Der Offset in Bytes, der vom Anfang dieser Struktur bis zum Puffer, der den Dateipfad enthält, berechnet wird. Der Dateipfad ist ein Array von 16-Bit Datei-IDs. Die erste ID muss entweder 0x7FFF oder 0x3F00 sein. Wenn die erste ID 0x7FFF ist, dann ist der Pfad relativ zum ADF der Anwendung, die durch AppId gekennzeichnet wird. Andernfalls handelt es sich um einen absoluten Pfad, beginnend mit dem MF. |
16 | 4 | FilePathSize | SIZE | Die Größe des Dateipfads in Bytes. |
20 | 4 | FileOffset | UINT32 | Der Offset, der beim Lesen aus der Datei verwendet wird. Dieses Feld kann größer als 256 sein und kombiniert sowohl Offset High als auch Offset Low, wie in der technischen Spezifikation ETSI TS 102 221 definiert. |
24 | 4 | NumberOfBytes | UINT32 | Die Anzahl der zu lesenden Bytes. Ein Client-Treiber könnte diese Funktion beispielsweise verwenden, um eine transparente (binäre) Datei zu lesen, die größer als 256 Byte ist, obwohl die maximale Menge, die in einem einzelnen UICC-Vorgang gelesen oder geschrieben werden kann, gemäß der ETSI TS 102 221 technischen Spezifikation 256 Byte beträgt. Es liegt in der Verantwortung der Funktion, dies in mehrere APDUs aufzuteilen und das Ergebnis in einer einzigen Antwort zurückzusenden. |
28 | 4 | LocalPinOffset | OFFSET | Der Offset in Bytes, der vom Anfang dieser Struktur bis zum Puffer, der das Kennwort enthält, berechnet wird. Dies ist die lokale PIN (PIN2) und wird verwendet, falls der Vorgang eine lokale PIN-Validierung erfordert. |
32 | 4 | LocalPinSize | SIZE (0..16) | Die Größe des Kennworts, in Bytes. |
36 | 4 | BinaryDataOffset | OFFSET | Der Offset in Bytes, der vom Anfang dieser Struktur bis zum Puffer mit den befehlsspezifischen Daten berechnet wird. Binäre Daten werden nur für SET-Vorgänge verwendet. |
40 | 4 | BinaryDataSize | SIZE (0..32768) | Die Größe der Daten, in Bytes. |
44 | DataBuffer | DATABUFFER | Der Datenpuffer mit AppId, FilePath, LocalPin und BinaryData. |
Set
Nicht zutreffend.
Antwort
Die folgende MBIM_UICC_RESPONSE-Struktur wird im InformationBuffer verwendet.
MBIM_UICC_RESPONSE (Version 1)
Abweichung | Size | Feld | Typ | Beschreibung |
---|---|---|---|---|
0 | 4 | Version | UINT32 | Die Versionsnummer der folgenden Struktur. Dieses Feld muss 1 für Version 1 dieser Struktur sein. |
4 | 4 | StatusWord1 | UINT32(0..256) | Ein spezifischer Rückgabeparameter für den UICC-Befehl. |
8 | 4 | StatusWord2 | UINT32(0..256) | Ein spezifischer Rückgabeparameter für den UICC-Befehl. |
12 | 4 | ResponseDataOffset | OFFSET | Der Offset in Bytes, der vom Anfang dieser Struktur bis zum Puffer, der die Antwortdaten enthält, berechnet wird. Die Antwortdaten werden nur für Abfragevorgänge verwendet. |
16 | 4 | ResponseDataSize | SIZE (0..32768) | Die Größe der Daten, in Bytes. |
20 | DataBuffer | DATABUFFER | Der Datenpuffer, der ResponseData enthält. |
Unaufgeforderte Ereignisse
Nicht zutreffend.
Statuscodes
Die folgenden Status Codes sind anwendbar:
Statuscode | Beschreibung |
---|---|
MBIM_STATUS_BUSY | Grundlegender MBIM-Status wie für alle Befehle definiert. |
MBIM_STATUS_FAILURE | Grundlegender MBIM-Status wie für alle Befehle definiert. |
MBIM_STATUS_SIM_NOT_INSERTED | Der UICC-Vorgang kann nicht ausgeführt werden, da die UICC nicht vorhanden ist. |
MBIM_STATUS_BAD_SIM | Der UICC-Vorgang kann nicht ausgeführt werden, da sich die UICC in einem Fehlerzustand befindet. |
MBIM_STATUS_SHAREABILITY_CONDITION_ERROR | Die Datei kann nicht ausgewählt werden, weil sie nicht gemeinsam genutzt werden kann und gerade von einer anderen Anwendung zugegriffen wird. Das von der SIM zurückgegebene Statuswort lautet 6985. |
MBIM_STATUS_PIN_FAILURE | Der Vorgang ist aufgrund eines PIN-Fehlers fehlgeschlagen. |
MBIM_CID_MS_UICC_ACCESS_RECORD
Dieser CID sendet einen spezifischen Befehl für den Zugriff auf eine lineare feste oder zyklische UICC-Datei mit dem Strukturtyp MBIMUiccFileStructureCyclic oder MBIMUIccFileStructureLinear.
Parameter
Vorgang | Set | Abfrage | Benachrichtigung |
---|---|---|---|
Get-Help | Nicht zutreffend | MBIM_UICC_ACCESS_RECORD | Nicht zutreffend |
Antwort | Nicht zutreffend | MBIM_UICC_RESPONSE | Nicht zutreffend |
Abfrage
Liest den Inhalt eines Datensatzes. Der InformationBuffer für MBIM_COMMAND_MSG enthält die folgende MBIM_UICC_ACCESS_RECORD Struktur. MBIM_UICC_RESPONSE wird im InformationBuffer von MBIM_COMMAND_DONE zurückgegeben.
MBIM_UICC_ACCESS_RECORD (Version 1)
Abweichung | Size | Feld | Typ | Beschreibung |
---|---|---|---|---|
0 | 4 | Version | UINT32 | Die Versionsnummer der folgenden Struktur. Dieses Feld muss für die Version 1 dieser Struktur auf 1 festgelegt werden. |
4 | 4 | AppIdOffset | OFFSET | Der Offset in Bytes vom Anfang dieser Struktur zum Puffer, der die Anwendungs-ID enthält. |
8 | 4 | AppIdSize | SIZE (0..16) | Die Größe der Anwendungs-ID in Bytes, wie in Abschnitt 8.3 der technischen Spezifikation ETSI TS 102 221 definiert. Bei 2G-Karten muss dieses Feld auf Null (0) festgelegt werden. |
12 | 4 | FilePathOffset | OFFSET | Der Offset in Bytes, der vom Anfang dieser Struktur bis zum Puffer, der den Dateipfad enthält, berechnet wird. Der Dateipfad ist ein Array von 16-Bit Datei-IDs. Die erste ID muss entweder 0x7FFF oder 0x3F00 sein. Wenn die erste ID 0x7FFF ist, dann ist der Pfad relativ zum ADF der Anwendung, die durch AppId gekennzeichnet wird. Andernfalls handelt es sich um einen absoluten Pfad, beginnend mit dem MF. |
16 | 4 | FilePathSize | SIZE | Die Größe des Dateipfads in Bytes. |
20 | 4 | RecordNumber | UINT32(0..256) | Die Nummer des Datensatzes. Dies ist der absolute Datensatz-Index zu jedem Zeitpunkt. Ein relativer Zugriff auf einen Datensatz wird nicht unterstützt, da das Modem mehrere Zugriffe auf eine Datei durchführen kann (NEXT, PREVIOUS). |
24 | 4 | LocalPinOffset | OFFSET | Der Offset in Bytes, der vom Anfang dieser Struktur bis zum Puffer, der das Kennwort enthält, berechnet wird. Das Kennwort für die Sperre ist eine nullterminierte UTF-8 -eichenfolge mit Dezimalziffern. |
28 | 4 | LocalPinSize | SIZE (0..16) | Die Größe des Kennworts, in Bytes. |
32 | 4 | RecordDataOffset | OFFSET | Der Offset in Bytes, der vom Anfang dieser Struktur bis zum Puffer mit den befehlsspezifischen Daten berechnet wird. Datensätze werden nur für SET-Vorgänge verwendet. |
36 | 4 | RecordDataSize | SIZE (0..256) | Die Größe der Daten, in Bytes. |
40 | DataBuffer | DATABUFFER | Der Datenpuffer mit AppId, FilePath, LocalPin und RecordData. |
Set
Nicht zutreffend.
Antwort
Eine MBIM_UICC_RESPONSE Struktur wird im InformationBuffer verwendet.
Unaufgeforderte Ereignisse
Nicht zutreffend.
Statuscodes
Die folgenden Status Codes sind anwendbar:
Statuscode | Beschreibung |
---|---|
MBIM_STATUS_BUSY | Grundlegender MBIM-Status wie für alle Befehle definiert. |
MBIM_STATUS_FAILURE | Grundlegender MBIM-Status wie für alle Befehle definiert. |
MBIM_STATUS_SIM_NOT_INSERTED | Der UICC-Vorgang kann nicht ausgeführt werden, da die UICC nicht vorhanden ist. |
MBIM_STATUS_BAD_SIM | Der UICC-Vorgang kann nicht ausgeführt werden, da sich die UICC in einem Fehlerzustand befindet. |
MBIM_STATUS_SHAREABILITY_CONDITION_ERROR | Die Datei kann nicht ausgewählt werden, weil sie nicht gemeinsam genutzt werden kann und gerade von einer anderen Anwendung zugegriffen wird. Das von der SIM zurückgegebene Statuswort lautet 6985. |
MBIM_STATUS_PIN_FAILURE | Der Vorgang ist aufgrund eines PIN-Fehlers fehlgeschlagen. |
MBIM_CID_MS_PIN_EX
Dieses CID wird zur Durchführung aller PIN-Sicherheitsvorgänge gemäß Abschnitt 9 der technischen Spezifikation ETSI TS 102 221 verwendet. Der CID ähnelt dem MBIM_CID_MS_PIN, erweitert ihn aber um die Unterstützung von Multi-App-UICC-Karten. Es werden nur Single-Verification-fähige UICCs unterstützt. Multi-Verifizierungs-fähige UICCs, die mehr als eine Anwendungs-PIN unterstützen, werden nicht unterstützt. Eine Anwendungs-PIN (PIN1) wird allen ADFs/DFs und Dateien auf der UICC zugewiesen. Jede Anwendung kann jedoch eine lokale PIN (PIN2) als Anforderung zur Verifizierung des Benutzers auf Ebene 2 angeben, was dazu führt, dass für jeden Zugriffsbefehl eine zusätzliche Validierung erforderlich ist. Dieses Szenario wird von MBIM_CID_MS_PIN_EX unterstützt.
Genau wie bei MBIM_CID_MS_PIN meldet das Gerät auch bei MBIM_CID_MS_PIN_EX jeweils nur eine PIN. Wenn mehrere PINs aktiviert sind und das Reporting mehrerer PINs ebenfalls aktiviert ist, müssen die Funktionen zuerst PIN1 melden. Wenn z. B. das Reporting der Subsidy-Sperre aktiviert ist und die PIN1 der SIM aktiviert ist, sollte die PIN der Subsidy-Sperre in einer nachfolgenden Abfrage erst gemeldet werden, nachdem PIN1 erfolgreich verifiziert wurde. Eine leere PIN ist zusammen mit MBIMPinOperationEnter zulässig. Eine leere PIN wird angegeben, indem die PinSize auf Null festgelegt wird. In diesem Fall ähnelt ein SET-Befehl einer Abfrage und gibt den Status der referenzierten PIN zurück. Dies entspricht vollständig dem Verhalten des VERIFY-Befehls, wie er in Abschnitt 11.1.9 der technischen Spezifikation ETSI TS 102 221 beschrieben ist.
Parameter
Vorgang | Set | Abfrage | Benachrichtigung |
---|---|---|---|
Get-Help | MBIM_SET_PIN_EX | MBIM_PIN_APP | Nicht zutreffend |
Antwort | MBIM_PIN_INFO_EX | MBIM_PIN_INFO_EX | Nicht zutreffend |
Abfrage
Die folgende Struktur MBIM_PIN_APP wird im InformationBuffer verwendet.
MBIM_PIN_APP (Version 1)
Abweichung | Size | Feld | Typ | Beschreibung |
---|---|---|---|---|
0 | 4 | Version | UINT32 | Die Versionsnummer der folgenden Struktur. Dieses Feld muss für die Version 1 dieser Struktur auf 1 festgelegt werden. |
4 | 4 | AppIdOffset | OFFSET | Der Offset in Bytes vom Anfang dieser Struktur zum Puffer, der die Anwendungs-ID enthält. |
8 | 4 | AppIdSize | SIZE (0..16) | Die Größe der Anwendungs-ID in Bytes, wie in Abschnitt 8.3 der technischen Spezifikation ETSI TS 102 221 definiert. Bei 2G-Karten muss dieses Feld auf Null (0) festgelegt werden. |
12 | DataBuffer | DATABUFFER | Die AppId, wie in der technischen Spezifikation ETSI TS 102 221 definiert. |
Set
Die folgende Struktur MBIM_SET_PIN_EX wird im InformationBuffer verwendet.
MBIM_SET_PIN_EX
Abweichung | Size | Feld | Typ | Beschreibung |
---|---|---|---|---|
0 | 4 | PinType | MBIM_PIN_TYPE_EX | Der PIN-Typ. Siehe die Tabelle MBIM_PIN_TYPE_EX in diesem Thema. |
4 | 4 | PinOperation | MBIM_PIN_OPERATION | Der PIN-Vorgang. Siehe MBIM 1.0. |
8 | 4 | PinOffset | OFFSET | Der vom Anfang dieser Struktur berechnete Offset in Bytes zu einer Zeichenfolge PIN, die den PIN-Wert darstellt, mit dem die Aktion durchgeführt werden soll, oder der PIN-Wert, der zum Aktivieren oder Deaktivieren der PIN-Einstellungen festgelegt wurde. Dieses Feld gilt für alle Werte von PinOperation. |
12 | 4 | PinSize | SIZE (0..32) | Die Größe in Bytes, die für die PIN verwendet wird. |
16 | 4 | NewPinOffset | OFFSET | Der Offset in Bytes, der vom Anfang dieser Struktur bis zur Zeichenfolge NewPin berechnet wird, die den neuen PIN-Wert darstellt, der festgelegt wird, wenn PinOperation MBIMPinOperationChange oder MBIMPinOperationEnter ist, für PinTypeMBIMPinTypePuk1 oder PinTypeMBIMPinTypePuk2. |
20 | 4 | NewPinSize | SIZE (0..32) | Die Größe in Bytes, die für den NewPin verwendet wird. |
24 | 4 | AppIdOffset | OFFSET | Der Offset in Bytes, berechnet vom Anfang dieser Struktur bis zum Puffer, der die Anwendungs-ID enthält. |
28 | 4 | AppIdSize | SIZE (0..16) | Die Größe der Anwendungs-ID in Bytes, wie in Abschnitt 8.3 der technischen Spezifikation ETSI TS 102 221 definiert. Bei 2G-Karten muss dieses Feld auf Null (0) festgelegt werden. |
32 | DataBuffer | DATABUFFER | Der Datenpuffer, der den Pin, NewPin und AppId enthält. |
Antwort
Die folgende Struktur MBIM_PIN_INFO_EX wird im InformationBuffer verwendet.
Abweichung | Size | Feld | Typ | Beschreibung |
---|---|---|---|---|
0 | 4 | PinType | MBIM_PIN_TYPE_EX | Der PIN-Typ. Siehe die Tabelle MBIM_PIN_TYPE_EX in diesem Thema. |
4 | 4 | PinState | MBIM_PIN_STATE | Der PIN-Status. Siehe MBIM 1.0. |
8 | 4 | RemainingAttempts | UINT32 | Die Anzahl der verbleibenden Versuche für alle PIN-bezogenen Vorgänge wie Eingabe, Aktivierung oder Deaktivierung. Geräte, die diese Informationen nicht unterstützen, müssen dieses Element auf 0xFFFFFFFF festlegen. |
Unaufgeforderte Ereignisse
Nicht zutreffend.
Statuscodes
Die folgenden Status Codes sind anwendbar:
Statuscode | Beschreibung |
---|---|
MBIM_STATUS_BUSY | Grundlegender MBIM-Status wie für alle Befehle definiert. |
MBIM_STATUS_FAILURE | Grundlegender MBIM-Status wie für alle Befehle definiert. |
MBIM_STATUS_SIM_NOT_INSERTED | Der UICC-Vorgang kann nicht ausgeführt werden, da die UICC nicht vorhanden ist. |
MBIM_STATUS_BAD_SIM | Der UICC-Vorgang kann nicht ausgeführt werden, da sich die UICC in einem Fehlerzustand befindet. |
MBIM_STATUS_PIN_DISABLED | Der Vorgang ist fehlgeschlagen, weil die PIN deaktiviert ist. |
MBIM_STATUS_PIN_REQUIRED | Der Vorgang ist fehlgeschlagen, weil eine PIN eingegeben werden muss, um fortzufahren. |
MBIM_STATUS_NO_DEVICE_SUPPORT | Der Vorgang ist fehlgeschlagen, weil ein SET auf einen entsprechenden PIN-Typ von dem Gerät nicht unterstützt wird. |