Bereitgestellte Kontextvorgänge von MB
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 Version von Windows 10, Version 1703, liest Windows nur die Konfigurationen des Internets und kaufen 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 für NDIS dies über 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 das Konfigurieren und Aktualisieren von in Modem bereitgestellten Kontexten unterstützen möchten, müssen die neuere Version der CID und OID in Windows 10, Version 1703, implementieren. Um die Abwärtskompatibilität sicherzustellen, müssen sie für IHVs/OEMs, die neue Hardware in 1703 älteren Betriebssystemversionen 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 Kontextvorgänge
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 = Grundlegende Verbindungserweiterungen
UUID = UUID_BASIC_CONNECT_EXTENSIONS
UUID-Wert = 3d01dcc5-fef5-4d05-0d3abef7058e9aaf
CID | Befehlscode | Minimum OS Version |
---|---|---|
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 oberen Clients definiert hat, um bereitgestellte Kontexte im Modem zu verwalten, hat Windows traditionell nur den Kontext im Modem abgefragt, aber 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 vielmehr wichtiger, den kontextabhängigen Kontext für jeden Kontexttyp vorzuschreiben. Wird an das IMS-Beispiel zurückgegeben, unabhängig davon, wie viele vorhandene bereitgestellte Kontexte sich im Modem befinden, sollte nur versucht werden, wenn das Betriebssystem einen Kontext festlegt, der MBIM_CONTEXT_TYPE = IMS hat, dann sollte nur der vom Modem initiierte IMS-Datenverkehr versucht werden.
MBIM 1.0 gibt an, dass MBIM_CID_PROVISIONED_CONTEXT nur Abfragekontexte aufrufen können, die mit der Anbieter-ID (MCC/MNC-Paar) des 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. Bei „Set“ ermöglicht der Befehl dem Betriebssystem nicht mehr, 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 präsentierten 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 ist zu erwarten, dass Abfrage- oder Set-Anfragen des Modems fehlschlagen, wenn die SIM-Karte fehlt oder gesperrt ist oder auf die Provider-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 ohne die Betriebssystemkonfiguration keinen Kontext haben. IHVs und OEMs müssen sicherstellen, dass MBIM_MS_CONTEXT_SOURCE = MbimMsContextSourceModemProvisioned, sodass das Betriebssystem den Kontext des Modems für die Verbindung verwendet, sofern vorhanden, und es nicht aus der APN-Datenbank von Windows überschreiben.
Wie das Modem den Kontext verarbeitet und durch die vorhandenen MBIM_CID_PROVISIONED_CONTEXT wiedergibt, liegt bei jedem IHV und liegt außerhalb 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 Abgleichprozess 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 nicht von Komponenten von Erstanbietern verwendet. Wenn es andere ältere Client-/Betriebssystemkomponenten gibt, die MBIM_CID_PROVISIONED_CONTEXT senden, wird erwartet, dass das Modem Ergebnisse wie in Versionen von Windows vor Windows 10, Version 1703, zurückgibt.
Abfrage
MBIM_MS_PROVISIONED_CONTEXTS_INFO werden sowohl von "Abfrage" als auch von "Festlegen vollständiger Nachrichten" im Informationspuffer zurückgegeben.
Bei Abfrage ist der Informationspuffer null.
Set
Für Set enthält der Informationspuffer eine MBIM_MS_SET_PROVISIONED_CONTEXT_V2 Struktur. Da jede Modem-IHV über proprietäre Methoden zur Verwaltung der Kontextspeicherung verfügen kann, gibt das Betriebssystem beim Set-Vorgang das ContextId-Feld nicht mehr an und erwartet, dass das Modem die Kontexte dem entsprechenden Steckplatz zuordnet. Wenn das Betriebssystem Kontexte festlegt, erwartet es, dass es für alle Verbindungen verwendet wird, 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 Informatiospuffer enthält eine MBIM_MS_PROVISIONED_CONTEXTS_INFO_V2 Struktur. In einigen Fällen wird die Liste der bereitgestellten Kontexte vom Netzwerk entweder Over-The-Air (OTA) oder per Short Message Service (SMS) aktualisiert, der nicht über den Befehl MBIM_CID_MS_PROVISIONED_CONTEXT_V2 des Betriebssystems läuft. Die Funktion muss die Liste der bereitgestellten Kontexte und Tag-MBIM_MS_CONTEXT_SOURCE = MbimMsContextSourceOperatorProvisioned aktualisieren. Danach müssen Funktionen den Host über Updates benachrichtigen, die dieses Ereignis mit der aktualisierten Liste verwenden.
Parameter
Vorgang | Set | Abfrage | Benachrichtigung |
---|---|---|---|
Get-Help | MBIM_SET_MS_PROVISIONED_CONTEXT_V2 | Nicht zutreffend | Nicht zutreffend |
Antwort | MBIM_MS_PROVISIONED_CONTEXT_INFO_V2 | MBIM_MS_PROVISIONED_CONTEXT_INFO_V2 | MBIM_MS_PROVISIONED_CONTEXT_INFO_V2 |
Datenstrukturen
Abfrage
Der Informatiospuffer muss NULL sein, und "InformationBufferLength" muss null sein.
Set
Die folgende MBIM_SET_MS_PROVISIONED_CONTEXT_V2 Datenstruktur wird im Informatiopuffer verwendet.
Abweichung | Size | Feld | Typ | Beschreibung |
---|---|---|---|---|
0 | 4 | Vorgang | MBIM_MS_CONTEXT_OPERATIONS | Gibt den Operationstyp 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 | IPType | 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 sie auf "MbimMsContextDisabled" festgelegt ist, sollte eine Betriebssystemverbindungsanforderung, die dem Kontext entspricht, fehlgeschlagen sein, ohne das Netzwerk zu signalisieren. Weitere Informationen finden Sie in der MBIM_MS_CONTEXT_ENABLE Tabelle. |
28 | 4 | Roaming | 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 | MediaType | 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 | Versetzt im Datenpuffer auf eine 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 sollte 100 Zeichen nicht überschreiten. |
44 | 4 | AccessStringSize | GRÖSSE(0..200) | Größe, die für AccessString verwendet wird. |
48 | 4 | UserNameOffset | OFFSET | Offset in Bytes, berechnet vom Anfang dieser Struktur, zu einer Zeichenfolge, UserName, die den Benutzernamen für die Authentifizierung darstellt. Dieses Element kann NULL sein. |
52 | 4 | UserNameSize | GRÖSSE(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, Kennwort, die das Kennwort des Benutzernamens für die Authentifizierung darstellt. Dieses Element kann NULL sein. |
60 | 4 | PasswordSize | GRÖSSE(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 | AuthProtocol | 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 | DataBuffer | DATABUFFER | Der Datenpuffer, der AccessString, UserName und Kennwort 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-Partnerroamingnetzwerken verwendet werden darf oder nicht. |
MbimMsContextRoamingControlHomeAndPartner | 3 | Gibt an, ob der Kontext nur in Home und Partnerroamingnetzwerken verwendet werden darf oder nicht. |
MbimMsContextRoamingControlHomeAndNonPartner | 4 | Gibt an, ob der Kontext nur in Home und Nicht-Partnerroamingnetzwerken verwendet werden darf oder nicht. |
MbimMsContextRoamingControlPartnerAndNonPartner | 5 | Gibt an, ob der Kontext nur in Partner- und Nicht-Partnerroamingnetzwerken verwendet werden darf oder nicht. |
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 wlan-Offload in zukünftigen Plattformen unterstützt wird. Wenn z. B. ein Kontext als Mobilfunk festgelegt ist und das Modem zurzeit WLAN-Offloading ist, sollte eine Verbindung nicht mithilfe dieses Kontexts initiiert werden.
Typ | Wert | Beschreibung |
---|---|---|
MbimMsContextMediaTypeCellularOnly | 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 nicht über das Betriebssystem und selbst aktivieren. |
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. Dadurch kann das Betriebssystem nach verschiedenen Situationen, beispielsweise einer Zurücksetzung auf die Werkseinstellungen, korrekt reagieren und erkennt, was basierend auf den verschiedenen Anforderungen des Bedieners beibehalten und was auf den Standardzustand zurückgesetzt 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 | Stellt 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 der Definition von MBIM 1.0 weitere 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 Informatiopuffer verwendet.
Abweichung | Size | Feld | Typ | Beschreibung |
---|---|---|---|---|
0 | 4 | ElementCount (EC) | UINT32 | Anzahl der MBIM_MS_CONTEXT_V2 Strukturen, die im DataBuffer folgen. |
4 | 8 * EC | 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 Paars ist eine 4-Byte-Größe eines Zeigers auf die entsprechende MBIM_MS_CONTEXT_V2 Struktur. |
4 + 8 * EC | DataBuffer | DATABUFFER | Array von MBIM_MS_CONTEXT_V2 Strukturen. |
MBIM_MS_CONTEXT_V2, das in der vorherigen Tabelle verwendet wird, enthält Informationen zu einem bestimmten Kontext.
Abweichung | Size | 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 | IPType | 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 eine Betriebssystemverbindungsanforderung, die dem Kontext entspricht, fehlgeschlagen sein, ohne das Netzwerk zu signalisieren. Weitere Informationen finden Sie in der MBIM_MS_CONTEXT_ENABLE Tabelle. |
28 | 4 | Roaming | 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 | MediaType | 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 einem String, 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 sollte 100 Zeichen nicht überschreiten. |
44 | 4 | AccessStringSize | GRÖSSE(0..200) | Größe, die für AccessString verwendet wird. |
48 | 4 | UserNameOffset | OFFSET | Offset in Bytes, berechnet vom Anfang dieser Struktur, zu einer Zeichenfolge, UserName, die den Benutzernamen für die Authentifizierung darstellt. Dieses Element kann NULL sein. |
52 | 4 | UserNameSize | GRÖSSE(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, Kennwort, die das Kennwort des Benutzernamens für die Authentifizierung darstellt. Dieses Element kann NULL sein. |
60 | 4 | PasswordSize | GRÖSSE(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 | AuthProtocol | MBIM_AUTH_PROTOCOL | Authentifizierungstyp, der für die PDP-Aktivierung verwendet werden soll. Weitere Informationen finden Sie in der MBIM_AUTH_PROTOCOL Tabelle. |
72 | DataBuffer | DATABUFFER | Der Datenpuffer, der AccessString, UserName und Kennwort 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 | Fehler beim Vorgang, da das Gerät den Vorgang nicht unterstützt. |
Nur für Set-Vorgänge:
Statuscode | Beschreibung |
---|---|
MBIM_STATUS_INVALID_PARAMETERS | Fehler beim Vorgang aufgrund ungültiger Parameter. |
MBIM_STATUS_WRITE_FAILURE | 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 die Out-of-Box-Benutzeroberfläche 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 Bestätigung (NDIS_STATUS_INDICATION_REQUIRED), dass er die Anforderung erhalten hat, und er sendet eine Benachrichtigung mit den angeforderten Informationen in Der Zukunft.
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 Bestätigung (NDIS_STATUS_INDICATION_REQUIRED), dass er die Anforderung erhalten hat, und er sendet eine Benachrichtigung mit den angeforderten Informationen in Der Zukunft.
Der Miniport-Treiber sendet eine NDIS_STATUS_WWAN_REGISTER_STATE-Benachrichtigung an den MB-Dienst, die angibt, dass der Registrierungsmodus des Geräts WwanRegistraterModeAutomatic 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 auf „Verbunden“ ändert, sendet der Miniport-Treiber eine unerwünschte NDIS_STATUS_WWAN_PACKET_SERVICE-Benachrichtigung an den MB-Dienst, die angibt, dass der Paketdienst verbunden 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 er sendet eine Benachrichtigung mit den angeforderten Informationen in Der Zukunft.
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 Bestätigung (NDIS_STATUS_INDICATION_REQUIRED), dass er die Anforderung erhalten hat, und er sendet eine Benachrichtigung mit den angeforderten Informationen in Der Zukunft.
Der Miniport-Treiber sendet eine NDIS_STATUS_WWAN_PROVISIONED_CONTEXTS-Benachrichtigung an den MB-Dienst, die eine Liste von WWAN_CONTEXT-Strukuren enthält.
Der MB-Dienst sendet eine asynchrone (nicht blockierende) OID_WWAN_CONNECT Festlegen der Anforderung an den Miniporttreiber, um den Paketdatenprotokollkontext (PDP) zu aktivieren. Der Miniporttreiber antwortet mit einer vorläufigen Bestätigung (NDIS_STATUS_INDICATION_REQUIRED), dass er die Anforderung erhalten hat, und er sendet eine Benachrichtigung mit den angeforderten Informationen in Der Zukunft.
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 Medienverbindungszustand MediaConnectStateConnected ist.
Initialisierung eines CDMA-Paketgeräts mit einem bereitgestellten Kontext
Das folgende Diagramm veranschaulicht die optimale Benutzererfahrung für CDMA-basierte Geräte. Für die Out-of-Box-Benutzeroberfläche 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 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 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 dass er zukünftig eine Benachrichtigung mit den angeforderten Informationen sendet.
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 dass er zukünftig eine Benachrichtigung mit den angeforderten Informationen sendet.
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 eine asynchrone (nicht blockierende) 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 dass er zukünftig 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 Bestätigung (NDIS_STATUS_INDICATION_REQUIRED), dass er die Anforderung erhalten hat, und dass er zukünftig 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 Bestätigung (NDIS_STATUS_INDICATION_REQUIRED), dass er die Anforderung erhalten hat, und er sendet eine Benachrichtigung mit den angeforderten Informationen in Der Zukunft.
Der Miniporttreiber sendet NDIS_STATUS_WWAN_SUCCESS an den MB-Dienst.
Der Miniporttreiber sendet NDIS_STATUS_LINK_STATE an den MB-Dienst.