Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Die Bereitstellung ist für mobilfunkverbindebare Geräte von entscheidender Bedeutung, da jeder Mobilfunkanbieter unterschiedliche APN-Konfigurationen für sein Netzwerk hat. APN-Konfigurationen können in der Regel in zwei Kategorien unterteilt werden:
- APN-Konfigurationen, die dem Betriebssystem bekannt sind, da über dem Betriebssystem Anwendungen oder Clients vorhanden sind, die diese Verbindungen erfordern.
- APN-Konfigurationen, die dem Betriebssystem nicht bekannt gemacht werden, weil sie intern vom Modem für Verbindungen genutzt werden, die nicht vom Betriebssystem und seinen Clients genutzt werden.
Im Idealfall sollte das Modem nur die APN-Konfigurationen speichern, die das Betriebssystem nicht kennen muss. IHV- und OEM-Partner haben jedoch traditionell die Internet- und Einkaufs-APNs, Konfigurationen, die dem Betriebssystem bekannt sind, im Modem bereitgestellt. Vor der Veröffentlichung von Windows 10, Version 1703, las Windows nur die Internet- und Kauf-APN-Konfigurationen aus dem Modem, um Internetverbindungen herzustellen. Ab Windows 10, Version 1703, kann es zusätzliche Fälle geben, in denen die APN-Konfiguration des Modems von Windows verwaltet werden muss, insbesondere, wenn clients im Betriebssystem vorhanden sind, z. B. Benutzereinstellungen oder OMA-DM, die die Mobilfunkkonfiguration ändern möchten. Dies wiederum könnte sich auch auf die APN-Konfiguration des Modems auswirken. Es kann z. B. einen IMS-Stapel im Modem geben, der den IMS-APN für SMS über IMS verwendet. In der Regel werden diese Verbindungen nicht für das Betriebssystem verfügbar gemacht, aber in bestimmten Szenarien muss die IMS-APN-Konfiguration möglicherweise geändert werden. Diese Änderung kann über das Betriebssystem erfolgen. Um dies zu unterstützen, kann das Betriebssystem ab Windows 10, Version 1703, verschiedene ARTEN von APNs in das Modem konfigurieren.
Die MBIM 1.0 und Microsoft NDIS des USB-Forums verfügen jeweils über eine vorhandene CID bzw. ein OID, damit das Betriebssystem die APN-Konfigurationen im Modem festlegen und abfragen kann. Für MBIM 1.0 wird dies durch MBIM_CID_PROVISIONED_CONTEXT ausgeführt, während dies für NDIS durch OID_WWAN_PROVISIONED_CONTEXTS erfolgt. Die vorhandene CID und OID wurden jedoch nicht mit klaren Anleitungen dazu entwickelt, wie sich das Modem in verschiedenen Situationen wie einem Stromzyklus oder SIM-Swap verhält. Geräte, die zukünftig das Konfigurieren und Aktualisieren von Kontexten unterstützen möchten, die vom Modem bereitgestellt werden, müssen die neuere Version der CID und OID in Windows 10, Version 1703, implementieren. Um die Abwärtskompatibilität sicherzustellen, müssen IHVs/OEMs, die neue Hardware auf Betriebssystemversionen älter als 1703 unterstützen möchten, weiterhin die vorhandenen MBIM_CID_PROVISIONED_CONTEXT und OID_WWAN_PROVISIONED_CONTEXTS unterstützen. Ab Windows 10, Version 1703, verwendet das Betriebssystem nur die neuere Version des Befehls, um die APN-Kontextkonfiguration im Modem abzufragen und festzulegen, wenn das Gerät die neue Version der CID und OID unterstützt.
MB-Schnittstellenupdate für bereitgestellte Kontextoperationen
Während MBIM über einen Befehl zum Abrufen und Ersetzen von Kontexten verfügt, die im Modem gespeichert sind, verfügt es nicht über ein Feld zum "Deaktivieren" oder "Aktivieren" eines Profils. Daher muss die vorhandene MBIM_CID_PROVISIONED_CONTEXT für Windows 10, Version 1703, aktualisiert werden, damit diese Funktion enthalten ist. Da MBIM keinen Versionsverwaltungsmechanismus aufweist, wird eine neue proprietäre MSFT-CID als MBIM_CID_MS_PROVISIONED_CONTEXT_V2 definiert.
Dienstname = Basic Connect-Erweiterungen
UUID = UUID_BASIC_CONNECT_EXTENSIONS
UUID-Wert = 3d01dcc5-fef5-4d05-0d3abef7058e9aaf
| CID | Befehlscode | Mindestversion des Betriebssystems |
|---|---|---|
| MBIM_CID_MS_PROVISIONED_CONTEXT_V2 | 1 | Windows 10, Version 1703 |
MBIM_CID_MS_PROVISIONED_CONTEXT_V2
BESCHREIBUNG
Obwohl MBIM 1.0 MBIM_CID_PROVISIONED_CONTEXT für das Betriebssystem und seine übergeordneten Clients definiert hat, um bereitgestellte Kontexte im Modem zu verwalten, hat Windows traditionell den Kontext im Modem nur abgefragt, jedoch nicht vom Betriebssystem festgelegt. Ab Windows 10, Version 1703, ist es zunehmend erforderlich, dass das Betriebssystem die Kontexte im Modem konfigurieren kann. Wenn beispielsweise im Modem ein IMS-Stapel vorhanden ist, der für das Betriebssystem nicht transparent ist, sollte das Betriebssystem die IMS-APN angeben können, die das Modem verwenden soll. Da jedes Modem IHV eine eigene proprietäre Möglichkeit zum Speichern von Kontexten im Modem haben kann, ist es unmöglich, dass das Betriebssystem Profile auf der ContextId-Ebene verwaltet, wie MBIM_CID_PROVISIONED_CONTEXT vorschlagen könnten. Aus Sicht des Betriebssystems ist es wichtiger, vorzuschreiben, welcher Kontext für jeden Kontexttyp verwendet werden soll. Im IMS-Beispiel, unabhängig davon, wie viele vorhandene bereitgestellte Kontexte sich im Modem befinden, sollte der IMS-Datenverkehr, den das Modem initiiert, ausschließlich in dem Kontext stattfinden, den das Betriebssystem mit MBIM_CONTEXT_TYPE = IMS festgelegt hat.
MBIM 1.0 gibt an, dass MBIM_CID_PROVISIONED_CONTEXT nur Abfragekontexte aufrufen können, die mit der Anbieter-ID (MCC/MNC-Paar) der eingefügten SIM-Karte übereinstimmen. Für Set-Anforderungen kann MBIM_CID_PROVISIONED_CONTEXT die Anbieter-ID des Kontexts angeben, der gespeichert werden soll. MBIM_CID_MS_PROVISIONED_CONTEXT_V2 gibt ein ähnliches, aber anderes Verhalten als MBIM 1.0 an. Für jede Abfrage erwartet das Betriebssystem weiterhin, dass das Modem nur Kontexte zurückgibt, die der Anbieter-ID der eingefügten SIM-Karte entsprechen. Für den Befehl "Set" wird das Betriebssystem nicht mehr in die Lage versetzt, Kontexte festzulegen, die nicht mit der aktuellen Provider-ID auf der SIM-Karte übereinstimmen. Es wird erwartet, dass die Set-Anforderung einen Kontext für die aktuelle Anbieter-ID der angezeigten SIM-Karte erstellt. Beispielsweise wechselt der Benutzer von SIM 1 auf SIM 2 und dann zurück zu SIM 1. Es wird erwartet, dass das Modem während des ersten SIM-Swaps alle Kontexte auflösen sollte, bevor der Kontext für SIM 2 geladen wird. Wenn der Benutzer wieder auf SIM 1 wechselt, sollte die Standardkonfiguration von SIM 1 wiederhergestellt werden. Es wird nicht erwartet, dass das Modem die Laufzeitkonfiguration über SIM-Swaps hinweg speichert.
Das folgende Diagramm zeigt einen Beispielfluss für den Wechsel von einer SIM-Karte zu einer anderen, dann zurück zur ersten.
OEMs und IHVs, die das Modem vorkonfiguriert haben, sollten die ursprüngliche Werkskonfiguration beibehalten, falls das Betriebssystem oder der Benutzer die Kontexteinstellungen im Modem auf die ursprünglichen Einstellungen wiederherstellen möchte. Nur die ursprünglichen Werkskontexte für die aktuell eingefügte SIM-Anbieter-ID sollten wiederhergestellt werden. Die vorkonfigurierten Kontexte der ursprünglichen Werkseinstellung sollten niemals von der Betriebssystemkonfiguration überschrieben werden. Das folgende Diagramm ist ein Beispielfluss, wenn ein Benutzer die Werkseinstellungen wiederherstellen möchte:
Es wird erwartet, dass das Modem Abfrage- oder Set-Anforderungen fehlschlägt, wenn die SIM fehlt, gesperrt ist oder auf die Anbieter-ID nicht zugegriffen werden kann. Das Modem sollte nur einen Kontext pro CONTEXT_TYPE pro Anbieter-ID haben. Wenn der IHV oder OEM entscheidet, Modemkontexte im Modem vorzukonfigurieren, ist es wichtig, sicherzustellen, dass die Kontexte für jeden Anbieter ordnungsgemäß konfiguriert sind, für den er dies tut. Wenn die eingefügte SIM-Karte keine vorkonfigurierten IHV-Kontexte aufweist, sollte das Modem keine Kontexte ohne die Konfiguration des Betriebssystems haben. IHVs und OEMs müssen sicherstellen, dass MBIM_MS_CONTEXT_SOURCE = MbimMsContextSourceModemProvisioned ist, damit das Betriebssystem den Modemkontext für die Verbindung verwendet, sofern er vorhanden ist, und ihn nicht durch die APN-Datenbank von Windows überschreibt.
Wie das Modem den Kontext abbildet und durch die vorhandenen MBIM_CID_PROVISIONED_CONTEXT wiedergibt, liegt bei jedem IHV und ist nicht Bestandteil dieser Dokumentation.
Der neue MBIM_CID_MS_PROVISONED_CONTEXT_V2-Befehl ist fast identisch mit dem vorhandenen MBIM_CID_PROVISIONED_CONTEXT-Befehl von MBIM 1.0, aber mit mehreren Ergänzungen. Das erste bietet dem Betriebssystem die Möglichkeit, den Kontext zu aktivieren oder zu deaktivieren, der einem Kontexttyp im Modem zugeordnet ist. Wenn der Kontext im Modem deaktiviert ist, wird erwartet, dass das Modem nicht den gespeicherten Kontext für eine Verbindung mit dem Netzwerk verwendet, auch wenn diese nicht dem Betriebssystem bekannt gemacht wurden. Wenn das Betriebssystem eine Verbindung anfordert, die einem deaktivierten Kontext im Modem entspricht, sollte das Modem die Anforderung sofort ohne Signalisierung an das Netzwerk fehlschlagen. Der Abgleichsprozess sollte mit allen Feldern in der MBIM_MS_CONTEXT_V2-Struktur übereinstimmen.
Die MBIM_CONTEXT_IP_TYPE Struktur von MBIM 1.0 wird nur für MBIM_CID_CONNECT verwendet. In MBIM_CID_MS_PROVISIONED_CONTEXT_V2 hat Microsoft den IP-Typ als einen der Parameter für jeden Kontext hinzugefügt. Das Modem sollte MBIMContextIPTypeDefault melden, wenn es nicht für den angegebenen Kontext konfiguriert ist.
In Windows 10, version 1703, mit neuer Hardware, die MBIM_CID_MS_PROVISIONED_CONTEXT_V2 unterstützt, wird die ältere MBIM_CID_PROVISIONED_CONTEXT von Erstanbieterkomponenten nicht verwendet. Wenn es andere veraltete Client-/Betriebssystemkomponenten gibt, die MBIM_CID_PROVISIONED_CONTEXT senden, sollte das Modem die Ergebnisse so zurückgeben, wie es dies in Windows-Versionen vor Windows 10, Version 1703, tat.
Abfrage
MBIM_MS_PROVISIONED_CONTEXTS_INFO werden sowohl von "Abfrage" als auch von "Festlegen vollständiger Nachrichten" im InformationBuffer zurückgegeben.
Bei Abfrage ist der InformationBuffer null.
Set
Für Set enthält der InformationBuffer eine MBIM_MS_SET_PROVISIONED_CONTEXT_V2 Struktur. Da jedes Modem IHV im Set-Vorgang proprietäre Möglichkeiten zum Verwalten des Kontextspeichers haben kann, gibt das Betriebssystem das Feld "ContextId" nicht mehr an und erwartet, dass das Modem die Kontexte dem entsprechenden Steckplatz zuzuordnen. Wenn das Betriebssystem Kontexte festlegt, erwartet es, dass der Modem es für alle Verbindungen verwendet, die dem MBIM_CONTEXT_TYPE des angegebenen Kontexts entsprechen. Wenn die MBIM_CONTEXT_TYPE vom Modem nicht erkannt wird, sollte sie sie trotzdem speichern, auch wenn sie möglicherweise nicht mit dem Modem verbunden ist.
Unerwünschtes Ereignis
Der Event InformationBuffer enthält eine MBIM_MS_PROVISIONED_CONTEXTS_INFO_V2 Struktur. In einigen Fällen wird die Liste der bereitgestellten Kontexte entweder vom Netzwerk überThe-Air (OTA) oder über den Kurzmitteilungsdienst (SMS) aktualisiert, ohne dass der Befehl MBIM_CID_MS_PROVISIONED_CONTEXT_V2 vom Betriebssystem verwendet wird. Die Funktion muss die Liste der bereitgestellten Kontexte aktualisieren und den Tag MBIM_MS_CONTEXT_SOURCE = MbimMsContextSourceOperatorProvisioned entsprechend kennzeichnen. Danach müssen Funktionen den Host über Updates benachrichtigen, indem sie dieses Ereignis mit der aktualisierten Liste verwenden.
Die Parameter
| Vorgang | Set | Abfrage | Benachrichtigung |
|---|---|---|---|
| Befehl | MBIM_SET_MS_PROVISIONED_CONTEXT_V2 | Nicht anwendbar | Nicht anwendbar |
| Antwort | MBIM_MS_PROVISIONED_CONTEXT_INFO_V2 | MBIM_MS_PROVISIONED_CONTEXT_INFO_V2 | MBIM_MS_PROVISIONED_CONTEXT_INFO_V2 |
Datenstrukturen
Abfrage
Der InformationBuffer muss NULL sein, und "InformationBufferLength" muss null sein.
Set
Die folgende MBIM_SET_MS_PROVISIONED_CONTEXT_V2 Datenstruktur wird im InformationBuffer verwendet.
| Offset | Größe | Feld | Typ | BESCHREIBUNG |
|---|---|---|---|---|
| 0 | 4 | Vorgang | MBIM_MS_CONTEXT_OPERATIONS | Gibt den Typ des Vorgangs an, für den der SET-Befehl verwendet wird. Wenn diese Eigenschaft auf "MbimMsContextOperationDelete" festgelegt ist, sollte der Kontext für die angegebene MBIM_CONTEXT_TYPES gelöscht werden, und alle anderen Felder in MBIM_SET_MS_PROVISIONED_CONTEXT_V2 sollten ignoriert werden. Wenn diese Einstellung auf "MbimMsContextOperationRestoreFactory" festgelegt ist, sollten alle vom Betriebssystem erstellten oder geänderten Kontexte entfernt werden, die vorkonfigurierten Standardkontexte der Factory geladen werden, und alle anderen Felder in MBIM_SET_MS_PROVISIONED_CONTEXT_V2 sollten ignoriert werden. |
| 4 | 16 | ContextType | MBIM_CONTEXT_TYPES | Gibt den Typ des dargestellten Kontexts an; Zum Beispiel Internetkonnektivität, VPN (eine Verbindung mit einem Unternehmensnetzwerk) oder Voice-over-IP (VOIP). Weitere Informationen finden Sie in der MBIM_CONTEXT_TYPES Tabelle. |
| 20 | 4 | IP-Typ | MBIM_CONTEXT_IP_TYPES | Gibt den Typ des dargestellten Kontexts an; Zum Beispiel Internetkonnektivität, VPN (eine Verbindung mit einem Unternehmensnetzwerk) oder Voice-over-IP (VOIP). Weitere Informationen finden Sie in der MBIM_CONTEXT_IP_TYPES Tabelle. |
| 24 | 4 | Aktivieren | MBIM_MS_CONTEXT_ENABLE | Gibt an, ob der Kontext vom Modem verwendet werden kann. Wenn es auf "MbimMsContextDisabled" festgelegt ist, sollte jede Betriebssystemverbindungsanforderung, die dem Kontext entspricht, ohne das Netzwerk zu signalisieren, scheitern. Weitere Informationen finden Sie in der MBIM_MS_CONTEXT_ENABLE Tabelle. |
| 28 | 4 | Roaming-Dienste | MBIM_MS_CONTEXT_ROAMING_CONTROL | Gibt an, ob Roaming für diesen Kontext zulässig ist oder nicht. Weitere Informationen finden Sie in der MBIM_MS_CONTEXT_ROAMING_CONTROL Tabelle. |
| 32 | 4 | Medientyp | MBIM_MS_CONTEXT_MEDIA_TYPE | Gibt an, für welchen Medientransport der Kontext verwendet wird. Weitere Informationen finden Sie in der MBIM_MS_CONTEXT_MEDIA_TYPE Tabelle. |
| 36 | 4 | Quelle | MBIM_MS_CONTEXT_SOURCE | Gibt die Erstellungsquelle des Kontexts an. Weitere Informationen finden Sie in der MBIM_MS_CONTEXT_SOURCE Tabelle. |
| 40 | 4 | AccessStringOffset | OFFSET | Versatz im Datenpuffer zu einer Zeichenfolge, AccessString, um auf das Netzwerk zuzugreifen. Bei GSM-basierten Netzwerken wäre dies eine APN-Zeichenfolge (Access Point Name), z. B. "data.thephone-company.com". Bei CDMA-basierten Netzwerken kann dies eine spezielle Wählnummer wie "#777" oder ein Network Access Identifier (NAI) wie "foo@thephone-company.com" sein. Dieser Member kann NULL sein, um anzufordern, dass das Netzwerk den Standard-APN zuweist. Hinweis: Nicht alle Netzwerke unterstützen diese NULL-APN-Konvention, sodass ein Verbindungsfehler, der durch einen ungültigen APN verursacht wird, ein mögliches Ergebnis ist. Die Größe der Zeichenfolge darf 100 Zeichen nicht überschreiten. |
| 44 | 4 | AccessStringSize | SIZE(0..200) | Größe, die für AccessString verwendet wird. |
| 48 | 4 | BenutzernameVersatz | OFFSET | Offset in Bytes, berechnet vom Anfang dieser Struktur, zu einer Zeichenfolge, UserName, die den Benutzernamen für die Authentifizierung darstellt. Dieses Mitglied kann NULL sein. |
| 52 | 4 | UserNameSize | SIZE(0..510) | Größe, die für UserName verwendet wird. |
| 56 | 4 | PasswordOffset | OFFSET | Offset in Bytes, berechnet vom Anfang dieser Struktur, zu einer Zeichenfolge, Passwort, die das Passwort des Benutzernamens darstellt. Dieses Mitglied kann NULL sein. |
| 60 | 4 | Passwortgröße | SIZE(0..510) | Größe, die für das Kennwort verwendet wird. |
| 64 | 4 | Komprimierung | MBIM_COMPRESSION | Gibt die Komprimierung an, die in der Datenverbindung für Header und Daten verwendet werden soll. Dieses Mitglied gilt nur für GSM-basierte Geräte. Der Host legt dieses Element auf MBIMCompressionNone für CDMA-basierte Geräte fest. Weitere Informationen finden Sie in der MBIM_COMPRESSION Tabelle. |
| 68 | 4 | Authentifizierungsprotokoll | MBIM_AUTH_PROTOCOL | Authentifizierungstyp, der für die PDP-Aktivierung verwendet werden soll. Weitere Informationen finden Sie in der MBIM_AUTH_PROTOCOL Tabelle. |
| 72 | 4 | Datenpuffer | Datenpuffer | Der Datenpuffer, der AccessString, UserName und Password enthält. |
Die folgenden Datenstrukturen werden in der vorherigen Tabelle verwendet.
MBIM_MS_CONTEXT_ROAMING_CONTROL gibt die Roamingrichtlinie pro Kontext an. Das Betriebssystem kann angeben, ob der angegebene Kontext während des Roamings aktiviert werden kann oder nicht. Das Modem sollte den Kontext ohne Betriebssystemeingriff nicht selbst aktivieren, wenn der Roamingzustand die angegebenen Bedingungen nicht erfüllt. In Fällen, in denen das Modem keine Partner unterstützt, sollten alle Partnerkonfigurationen als gleichwertig zu Hause behandelt werden.
| Typ | Wert | BESCHREIBUNG |
|---|---|---|
| MbimMsContextRoamingControlHomeOnly | 0 | Gibt an, ob der Kontext nur im Heimnetzwerk verwendet werden darf oder nicht. |
| MbimMsContextRoamingControlPartnerOnly | 1 | Gibt an, ob der Kontext nur in Partnerroamingnetzwerken verwendet werden darf oder nicht. |
| MbimMsContextRoamingControlNonPartnerOnly | 2 | Gibt an, ob der Kontext nur in Nicht-Partner-Roamingnetzwerken verwendet werden darf oder nicht. |
| MbimMsContextRoamingControlHomeAndPartner | 3 | Gibt an, ob der Kontext in Heim- und Partnerroamingnetzwerken verwendet werden darf. |
| MbimMsContextRoamingControlHomeAndNonPartner | 4 | Gibt an, ob der Kontext in Heim- und Nicht-Partner-Roamingnetzwerken verwendet werden darf. |
| MbimMsKontextRoamingSteuerPartnerUndNichtPartner | 5 | Gibt an, ob der Kontext in Partner- und Nicht-Partner-Roamingnetzwerken verwendet werden darf. |
| MbimMsContextRoamingControlAllowAll | 6 | Gibt an, ob der Kontext in einer Roamingbedingung verwendet werden darf. |
MBIM_MS_CONTEXT_MEDIA_TYPE wurde hinzugefügt, um anzugeben, ob der Kontext für Mobilfunk oder iWLAN verwendet wird, wenn Wi-Fi Offload in zukünftigen Plattformen unterstützt wird. Wenn z. B. ein Kontext als Mobilfunk festgelegt ist und das Modem derzeit Wi-Fi Offloading ist, sollte eine Verbindung nicht mithilfe dieses Kontexts initiiert werden.
| Typ | Wert | BESCHREIBUNG |
|---|---|---|
| MbimMsContextMediaTypeNurMobilfunk | 0 | Gibt an, ob der Kontext nur verwendet werden darf, wenn er über das Mobilfunknetz registriert wird. |
| MbimMsContextMediaTypeWifiOnly | 1 | Gibt an, ob der Kontext nur beim Registrieren über iWLAN (Wi-Fi Offload) verwendet werden darf. |
| MbimMsContextMediaTypeAll | 2 | Gibt an, ob der Kontext beim Registrieren über Mobilfunk oder WLAN verwendet werden darf. |
MBIM_MS_CONTEXT_ENABLE gibt an, ob ein Kontext aktiviert oder deaktiviert ist.
| Typ | Wert | BESCHREIBUNG |
|---|---|---|
| MbimMsContextDisabled | 0 | Der bereitgestellte Kontext ist deaktiviert. Das Modem sollte die Aktivierung in diesem Kontext weder vom Betriebssystem noch von sich selbst ermöglichen. |
| MbimMsContextEnabled | 1 | Der bereitgestellte Kontext ist aktiviert. Der Kontext kann aktiviert werden, wenn andere Bedingungen erfüllt sind; Wenn das Roaming beispielsweise unzulässig ist, sollte der Kontext während des Roamings nicht aktiviert werden. |
MBIM_MS_CONTEXT_SOURCE wurde hinzugefügt, um dem Betriebssystem Sichtbarkeit darüber zu geben, wie der Modemkontext erstellt wurde. Auf diese Weise kann sich das Betriebssystem nach verschiedenen Situationen wie dem Zurücksetzen auf die Werkseinstellungen ordnungsgemäß verhalten, sodass sie wissen kann, was beibehalten werden soll und was basierend auf verschiedenen Operatoranforderungen an den Standardzustand zurückgegeben werden soll.
| Typ | Wert | BESCHREIBUNG |
|---|---|---|
| MbimMsContextSourceAdmin | 0 | Der Kontext wurde von einem Unternehmens-IT-Administrator aus dem Betriebssystem erstellt. |
| MbimMsContextSourceUser | 1 | Der Kontext wurde vom Benutzer über betriebssystemeinstellungen erstellt. |
| MbimMsContextSourceOperator | 2 | Der Kontext wurde vom Operator über OMA-DM oder andere Kanäle erstellt. |
| MbimMsContextSourceModem | 3 | Der Kontext wurde vom IHV oder OEM erstellt, der in der Modemfirmware enthalten war. |
| MbimMsContextSourceDevice | 4 | Der Kontext wurde von der Betriebssystem-APN-Datenbank erstellt. |
MBIM_MS_CONTEXT_OPERATIONS gibt die Vorgänge an, die das Betriebssystem ausführen kann, um Kontexte im Modem zu konfigurieren.
| Typ | Wert | BESCHREIBUNG |
|---|---|---|
| MbimMsContextOperationDefault | 0 | Standardvorgang, einschließlich Hinzufügen oder Ersetzen eines vorhandenen Kontexts im Modem. |
| MbimMsContextOperationDelete | 1 | Der Löschvorgang erfordert, dass das Modem einen vorhandenen Kontext im Modem löscht. |
| MbimMsContextOperationRestoreFactory | 2 | Stellen Sie den werkseitig vorkonfigurierten Kontext für die Provider-ID der aktuell eingelegten SIM-Karte wieder her. Alle Kontexte, die durch das Betriebssystem ersetzt oder erstellt wurden, sollten entfernt und ersetzt werden. Wenn kein vorkonfigurierter Betriebssystemkontext für die aktuelle eingefügte SIM-Anbieter-ID vorhanden ist, sollte der bereitgestellte Kontext im Modem entfernt werden. |
Die ursprüngliche MBIM_CONTEXT_TYPES von MBIM 1.0 ist weiterhin gültig. Microsoft fügt zusätzliche Kontexttypen hinzu, da seit MBIM 1.0 definiert wurden, mehr Kontexttypen eingeführt wurden. In der folgenden Tabelle werden die neuen Typen definiert, die eingeführt werden. IHVs und OEMs können andere proprietäre Kontexttypen mit anderen eindeutigen UUID-Werten definieren, die vom Betriebssystem nicht für eigene Zwecke erkennbar sind.
| Typ | Wert | BESCHREIBUNG |
|---|---|---|
| MBIMMsContextTypeAdmin | 5f7e4c2e-e80b-40a9-a239-f0abcfd11f4b | Der Kontext wird für administrative Zwecke wie die Geräteverwaltung verwendet. |
| MBIMMSContextTypeApp | 74d88a3d-dfbd-4799-9a8c-7310a37bb2ee | Der Kontext wird für bestimmte Anwendungen verwendet, die von Mobilfunkanbietern zugelassen werden. |
| MBIMMsContextTypeXcap | 50d378a7-baa5-4a50-b872-3fe5bb463411 | Der Kontext wird für die XCAP-Bereitstellung für IMS-Dienste verwendet. |
| MBIMMsContextTypeTethering | 5e4e0601-48dc-4e2b-acb8-08b4016bbaac | Der Kontext wird für mobile Hotspot-Tethering verwendet. |
| MBIMMsContextTypeEmergencyCalling | 5f41adb8-204e-4d31-9da8-b3c970e360f2 | Der Kontext wird für IMS-Notrufe verwendet. |
Antwort
Die folgende MBIM_MS_PROVISIONED_CONTEXT_INFO_V2 Struktur wird im InformationBuffer verwendet.
| Offset | Größe | Feld | Typ | BESCHREIBUNG |
|---|---|---|---|---|
| 0 | 4 | ElementCount (EC) | UINT32 | Anzahl der MBIM_MS_CONTEXT_V2-Strukturen, die im Datenpuffer folgen. |
| 4 | 8 * EG | MsProvisionedContextV2RefList | OL_PAIR_LIST | Das erste Element des Paars ist ein 4-Byte-Offset in Byte, berechnet vom Anfang (Offset 0) dieser MBIM_MS_PROVISIONED_CONTEXTS_INFO_V2-Struktur auf eine MBIM_MS_CONTEXT_V2 Struktur (weitere Informationen finden Sie in der MBIM_MS_CONTEXT_V2 Tabelle). Das zweite Element des Paares ist die Größe von 4 Bytes eines Zeigers auf die entsprechende MBIM_MS_CONTEXT_V2-Struktur. |
| 4 + 8 * EC | Datenpuffer | Datenpuffer | Feld von MBIM_MS_CONTEXT_V2-Strukturen. |
MBIM_MS_CONTEXT_V2, das in der vorherigen Tabelle verwendet wird, enthält Informationen zu einem bestimmten Kontext.
| Offset | Größe | Feld | Typ | BESCHREIBUNG |
|---|---|---|---|---|
| 0 | 4 | ContextId | UINT32 | Eine eindeutige ID für diesen Kontext. |
| 4 | 16 | ContextType | MBIM_CONTEXT_TYPES | Gibt den Typ des dargestellten Kontexts an; Zum Beispiel Internetkonnektivität, VPN (eine Verbindung mit einem Unternehmensnetzwerk) oder Voice-over-IP (VOIP). Geräte sollten MBIMContextTypeNone für leere oder nicht bereitgestellte Kontexte angeben. Weitere Informationen finden Sie in der MBIM_CONTEXT_TYPES Tabelle. |
| 20 | 4 | IP-Typ | MBIM_CONTEXT_IP_TYPES | Weitere Informationen finden Sie in der MBIM_CONTEXT_IP_TYPES Tabelle. |
| 24 | 4 | Aktivieren | MBIM_MS_CONTEXT_ENABLE | Gibt an, ob der Kontext vom Modem verwendet werden kann. Wenn sie auf "MbimMsContextDisabled" festgelegt ist, sollte jede Betriebssystemverbindungsanforderung, die dem Kontext entspricht, fehlschlagen, ohne dem Netzwerk ein Signal zu senden. Weitere Informationen finden Sie in der MBIM_MS_CONTEXT_ENABLE Tabelle. |
| 28 | 4 | Roaming-Dienste | MBIM_MS_CONTEXT_ROAMING_CONTROL | Gibt an, ob Roaming für diesen Kontext zulässig ist oder nicht. Weitere Informationen finden Sie in der MBIM_MS_CONTEXT_ROAMING_CONTROL Tabelle. |
| 32 | 4 | Medientyp | MBIM_MS_CONTEXT_MEDIA_TYPE | Gibt an, für welchen Medientransport der Kontext verwendet wird. Weitere Informationen finden Sie in der MBIM_MS_CONTEXT_MEDIA_TYPE Tabelle. |
| 36 | 4 | Quelle | MBIM_MS_CONTEXT_SOURCE | Gibt die Erstellungsquelle des Kontexts an. Weitere Informationen finden Sie in der MBIM_MS_CONTEXT_SOURCE Tabelle. |
| 40 | 4 | AccessStringOffset | OFFSET | Offset im Datenpuffer zu einer Zeichenfolge, AccessString, um auf das Netzwerk zuzugreifen. Bei GSM-basierten Netzwerken wäre dies eine APN-Zeichenfolge (Access Point Name), z. B. "data.thephone-company.com". Bei CDMA-basierten Netzwerken kann dies eine spezielle Wählnummer wie "#777" oder ein Network Access Identifier (NAI) wie "foo@thephone-company.com" sein. Dieses Element kann NULL sein, um anzufordern, dass das Netzwerk den Standard-APN zuweist. Hinweis: Nicht alle Netzwerke unterstützen diese NULL-APN-Konvention, sodass ein Verbindungsfehler, der durch einen ungültigen APN verursacht wird, ein mögliches Ergebnis ist. Die Größe der Zeichenfolge darf 100 Zeichen nicht überschreiten. |
| 44 | 4 | AccessStringSize | SIZE(0..200) | Größe, die für AccessString verwendet wird. |
| 48 | 4 | BenutzernameVersatz | OFFSET | Offset in Bytes, berechnet vom Anfang dieser Struktur, zu einer Zeichenfolge, UserName, die den Benutzernamen für die Authentifizierung darstellt. Dieses Mitglied kann NULL sein. |
| 52 | 4 | UserNameSize | SIZE(0..510) | Größe, die für "UserName" verwendet wird. |
| 56 | 4 | PasswordOffset | OFFSET | Offset in Bytes, berechnet vom Anfang dieser Struktur, zu einer Zeichenfolge, Passwort, die das Passwort des Benutzernamens darstellt. Dieses Mitglied kann NULL sein. |
| 60 | 4 | Passwortgröße | SIZE(0..510) | Größe, die für das Kennwort verwendet wird. |
| 64 | 4 | Komprimierung | MBIM_COMPRESSION | Gibt die Komprimierung an, die in der Datenverbindung für Header und Daten verwendet werden soll. Dieses Mitglied gilt nur für GSM-basierte Geräte. Der Host legt dieses Element auf MBIMCompressionNone für CDMA-basierte Geräte fest. Weitere Informationen finden Sie in der MBIM_COMPRESSION Tabelle. |
| 68 | 4 | Authentifizierungsprotokoll | MBIM_AUTH_PROTOCOL | Authentifizierungstyp, der für die PDP-Aktivierung verwendet werden soll. Weitere Informationen finden Sie in der MBIM_AUTH_PROTOCOL Tabelle. |
| 72 | Datenpuffer | Datenpuffer | Der Datenpuffer, der AccessString, UserName und Password enthält. |
Benachrichtigung
Weitere Informationen finden Sie in der MBIM_MS_PROVISIONED_CONTEXT_V2 Tabelle.
Statuscodes
Für Abfrage- und Set-Vorgänge:
| Statuscode | BESCHREIBUNG |
|---|---|
| MBIM_STATUS_READ_FAILURE | Fehler beim Vorgang, da das Gerät keine bereitgestellten Kontexte abrufen konnte. |
| MBIM_STATUS_NO_DEVICE_SUPPORT (Kein Gerätesupport) | Fehler beim Vorgang, da das Gerät den Vorgang nicht unterstützt. |
Nur für Set-Vorgänge:
| Statuscode | BESCHREIBUNG |
|---|---|
| MBIM_STATUS_UNGÜLTIGE_PARAMETER | Fehler beim Vorgang aufgrund ungültiger Parameter. |
| MBIM_STATUS_WRITE_FEHLER | Fehler beim Vorgang, da die Updateanforderung nicht erfolgreich war. |
Initialisierung von Geräten mit einem bereitgestellten Kontext
Initialisierung eines nicht SIM gesperrten GPRS-Geräts mit einem bereitgestellten Kontext
Das folgende Diagramm stellt die optimale Benutzererfahrung für GSM-basierte MB-Geräte dar. Für das out-of-box-Nutzererlebnis ist keine Benutzerkonfiguration erforderlich. Es wird davon ausgegangen, dass das Gerät so konfiguriert ist, dass das Netzwerk automatisch für die Registrierung ausgewählt wird. Die Bezeichnungen in Fettdruck stellen OID-Bezeichner oder Transaktionsflusssteuerung dar. Die Beschriftungen im regulären Text stellen die wichtigen Kennzeichen innerhalb der OID-Struktur dar.
Um ein nicht SIM gesperrtes GSM-basiertes Gerät zu initialisieren, implementieren Sie die folgenden Schritte:
Der MB-Dienst sendet eine asynchrone (nicht blockierende) OID_WWAN_READY_INFO Abfrageanforderung an den Miniporttreiber, um den bereiten Zustand des Geräts zu identifizieren. Der Miniporttreiber antwortet mit einer vorläufigen Eingangsbestätigung (NDIS_STATUS_INDICATION_REQUIRED), dass er die Anforderung erhalten hat und in Zukunft eine Benachrichtigung mit den angeforderten Informationen senden wird.
Der Miniporttreiber sendet eine NDIS_STATUS_WWAN_READY_INFO Benachrichtigung an den MB-Dienst, der an den MB-Dienst angibt, dass der Status des MB-Geräts WwanReadyStateInitialized ist.
Der MB-Dienst sendet eine asynchrone (nicht blockierende) OID_WWAN_REGISTER_STATE Abfrageanforderung an den Miniporttreiber, um den Registrierungsstatus des Geräts zu identifizieren. Der Miniporttreiber antwortet mit einer vorläufigen Eingangsbestätigung (NDIS_STATUS_INDICATION_REQUIRED), dass er die Anforderung erhalten hat und in Zukunft eine Benachrichtigung mit den angeforderten Informationen senden wird.
Der Miniporttreiber sendet eine NDIS_STATUS_WWAN_REGISTER_STATE-Benachrichtigung an den MB-Dienst, der angibt, dass der Registrierungsmodus des Geräts WwanRegistraterModeAutomatic ist und sein aktueller Registrierungsstatus WwanRegisterStateSearching ist.
Wenn das Gerät später bei einem Netzwerkanbieter registriert ist, sendet der Miniporttreiber eine nicht angeforderte NDIS_STATUS_WWAN_REGISTER_STATE Benachrichtigung an den MB-Dienst, der angibt, dass der aktuelle Registrierungsstatus des Geräts WwanRegisterStateHome ist.
Das Gerät versucht, den Paketdienst anzufügen. Wenn sich der Paketdienststatus in angefügt ändert, sendet der Miniporttreiber eine nicht angeforderte NDIS_STATUS_WWAN_PACKET_SERVICE Benachrichtigung an den MB-Dienst, der angibt, dass der Paketdienst angefügt ist und die aktuelle Datenklasse WWAN_DATA_CLASS_GPRS ist.
Der MB-Dienst sendet eine asynchrone (nicht blockierende) OID_WWAN_HOME_PROVIDER Abfrageanforderung an den Miniporttreiber, um Informationen zum Heimanbieter abzurufen. Der Miniporttreiber antwortet mit einer vorläufigen Bestätigung (NDIS_STATUS_INDICATION_REQUIRED), dass er die Anforderung erhalten hat, und sendet zukünftig eine Benachrichtigung mit den angeforderten Informationen.
Der Miniporttreiber sendet eine NDIS_STATUS_WWAN_HOME_PROVIDER Benachrichtigung an den MB-Dienst, der die Details des Heimanbieters angibt.
Der MB-Dienst sendet eine asynchrone (nicht blockierende) OID_WWAN_PROVISIONED_CONTEXTS Abfrageanforderung an den Miniporttreiber, um die Liste der bereitgestellten Kontexte abzurufen. Der Miniporttreiber antwortet mit einer vorläufigen Eingangsbestätigung (NDIS_STATUS_INDICATION_REQUIRED), dass er die Anforderung erhalten hat und in Zukunft eine Benachrichtigung mit den angeforderten Informationen senden wird.
Der Miniporttreiber sendet eine NDIS_STATUS_WWAN_PROVISIONED_CONTEXTS Benachrichtigung an den MB-Dienst, der eine Liste der WWAN_CONTEXT Strukturen enthält.
Der MB-Dienst sendet eine asynchrone (nicht blockierende) OID_WWAN_CONNECT Satzanforderung an den Miniport-Treiber, um den Paketdatenprotokoll (PDP)-Kontext zu aktivieren. Der Miniporttreiber antwortet mit einer vorläufigen Eingangsbestätigung (NDIS_STATUS_INDICATION_REQUIRED), dass er die Anforderung erhalten hat und in Zukunft eine Benachrichtigung mit den angeforderten Informationen senden wird.
Der Miniporttreiber sendet eine NDIS_STATUS_WWAN_CONTEXT_STATE Benachrichtigung an den MB-Dienst, der angibt, dass der PDP-Kontext aktiviert ist.
Der Miniporttreiber sendet eine NDIS_STATUS_LINK_STATE Benachrichtigung, um anzugeben, dass der Medienverbindungsstatus "MediaConnectStateConnected" ist.
Initialisierung eines CDMA-Paketgeräts mit einem konfigurierten Kontext
Das folgende Diagramm veranschaulicht die optimale Benutzererfahrung für CDMA-basierte Geräte. Für die Out-of-Box-Erfahrung ist keine Benutzerkonfiguration erforderlich. In diesem Szenario wird davon ausgegangen, dass das CDMA-basierte Konto nicht aktiviert wurde. Im Gegensatz zu GSM-basierten Geräten startet ein CDMA-basiertes Gerät automatisch die Registrierung mit dem Netzwerk, nachdem die Aktivierung abgeschlossen ist. Die fett formatierten Bezeichnungen sind OID-Identifikatoren oder Transaktionskontrolle. Die Beschriftungen im regulären Text sind die wichtigen Kennzeichen innerhalb der OID-Struktur.
Um ein CDMA-basiertes Paketgerät mit einem bereitgestellten Kontext zu initialisieren, implementieren Sie die folgenden Schritte:
Der MB Dienst sendet eine asynchrone (nicht blockierende) OID_WWAN_READY_INFO an den Miniporttreiber. Der Miniporttreiber antwortet mit einer vorläufigen Bestätigung (NDIS_STATUS_INDICATION_REQUIRED), dass er die Anforderung erhalten hat und in Zukunft eine Benachrichtigung mit den angeforderten Informationen senden wird.
Der Miniporttreiber sendet NDIS_STATUS_WWAN_FAILURE an den MB-Dienst.
Der MB-Dienst sendet eine asynchrone (nicht blockierende) OID_WWAN_SERVICE_ACTIVATION an den Miniporttreiber. Der Miniporttreiber antwortet mit einer vorläufigen Bestätigung (NDIS_STATUS_INDICATION_REQUIRED), dass er die Anforderung erhalten hat und in Zukunft eine Benachrichtigung mit den angeforderten Informationen senden wird.
Der Miniporttreiber sendet NDIS_STATUS_WWAN_SUCCESS an den MB-Dienst.
Der Miniporttreiber sendet NDIS_STATUS_WWAN_REGISTER_STATE an den MB-Dienst.
Der Miniporttreiber sendet NDIS_STATUS_WWAN_REGISTER_STATE an den MB-Dienst.
Der Miniporttreiber sendet NDIS_STATUS_WWAN_PACKET_SERVICE an den MB-Dienst.
Der MB-Dienst sendet asynchron (d.h. nicht blockierend) eine OID_WWAN_HOME_PROVIDER an den Miniporttreiber. Der Miniporttreiber antwortet mit einer vorläufigen Bestätigung (NDIS_STATUS_INDICATION_REQUIRED), dass er die Anforderung erhalten hat und in Zukunft eine Benachrichtigung mit den angeforderten Informationen senden wird.
Der Miniporttreiber sendet NDIS_STATUS_WWAN_SUCCESS an den MB-Dienst.
Der MB-Dienst sendet eine asynchrone (nicht blockierende) OID_WWAN_PROVISIONED_CONTEXTS an den Miniporttreiber. Der Miniporttreiber antwortet mit einer vorläufigen Bestätigung (NDIS_STATUS_INDICATION_REQUIRED), dass er die Anforderung erhalten hat, und dass er in Zukunft eine Benachrichtigung mit den angeforderten Informationen sendet.
Der Miniporttreiber sendet NDIS_STATUS_WWAN_SUCCESS an den MB-Dienst.
Der MB-Dienst sendet eine asynchrone (nicht blockierende) OID_WWAN_PROVISIONED_CONTEXTS an den Miniporttreiber. Der Miniporttreiber antwortet mit einer vorläufigen Eingangsbestätigung (NDIS_STATUS_INDICATION_REQUIRED), dass er die Anforderung erhalten hat und in Zukunft eine Benachrichtigung mit den angeforderten Informationen senden wird.
Der Miniporttreiber sendet NDIS_STATUS_WWAN_SUCCESS an den MB-Dienst.
Der Miniporttreiber sendet NDIS_STATUS_LINK_STATE an den MB-Dienst.