MB-Gerätebereitschaft
In diesem Thema werden die Verfahren beschrieben, mit denen sichergestellt wird, dass auf ein MB-Gerät zugegriffen werden kann und für netzwerkbezogene Aktivitäten verwendet werden kann, bevor der MB-Dienst mit dem Einrichten von Datenverbindungen fortfährt. Das Gerät ist einsatzbereit, wenn das Benutzerabonnement aktiviert wurde und abonnentenbezogene Informationen auf dem Gerät oder dem Abonnentenidentitätsmodul (SIM-Karte) gespeichert werden.
Der MB-Dienst geht davon aus, dass ein Miniporttreiber die Hardware seines MB-Geräts (Funkstapel, SIM-Karte oder eine entsprechende Schaltung) automatisch initialisiert, nachdem das System sie geladen hat, ohne auf Anweisungen vom Dienst zu warten.
Miniport-Treiber legen den anfänglichen Bereitzustand ihres MB-Geräts auf WwanReadyStateOff fest. Während sie mit der Initialisierung fortfahren, müssen Miniporttreiber Ereignisbenachrichtigungen senden, um den MB-Dienst über Änderungen am Bereit-Zustand ihres Geräts zu informieren.
Miniport-Treiber müssen den Initialisierungsprozess beenden, wenn fehlerbedingungen auftreten. Nachdem die Fehlerbedingung gelöscht wurde, können Miniporttreiber den Initialisierungsprozess fortsetzen, bis ihr Gerät den WwanReadyStateInitialized Ready-Zustand erreicht hat.
Im Folgenden sind Beispiele für einige Fehlerszenarien aufgeführt:
Wenn das Gerät eine SIM-Karte erfordert und der Miniporttreiber erkennt, dass keine SIM-Karte vorhanden ist, muss der Miniporttreiber eine WwanReadyStateSimNotInserted-Ereignisbenachrichtigung senden, und der Miniporttreiber muss in diesem Zustand bleiben, bis der Benutzer eine SIM-Karte in das Gerät einfügt.
Wenn das Gerät eine SIM-Karte erfordert und der Miniporttreiber die eingefügte SIM-Karte nicht lesen kann (z. B. wird ein U-RIM in ein GSM-basiertes Gerät oder ein USIM in ein CDMA-basiertes Gerät eingefügt) oder die SIM-Karte ist nicht mit dem Gerät kompatibel (z. B. wird ein 3G-USIM in ein 2G-Gerät eingefügt, der das USIM-Format nicht interpretieren kann), muss der Miniporttreiber eine WwanReadyStateBadSim-Ereignisbenachrichtigung senden, und der Miniporttreiber muss in diesem Zustand bleiben, bis der Benutzer eine richtige SIM-Karte in das Gerät einfügt.
Wenn das Gerät durch die PIN (für Geräte, die SIM-Karten verwenden) oder durch ein Kennwort (für Geräte ohne SIM-Karten) gesperrt ist, das einen weiteren Fortschritt der Geräteinitialisierung verhindert, muss der Miniporttreiber eine WwanReadyStateDeviceLocked-Ereignisbenachrichtigung senden, und der Miniporttreiber muss in diesem Zustand bleiben, bis der Benutzer die richtige PIN oder das richtige Kennwort eingibt.
Wenn der Miniporttreiber erkennt, dass die Dienstaktivierung erforderlich ist, um fortzufahren, muss der Miniporttreiber eine WwanReadyStateNotActivated-Benachrichtigung für bereite Zustandsereignisse senden, und er muss in diesem Zustand bleiben, bis der Dienst aktiviert wurde. Dies ist ein typisches Verhalten für CDMA-basierte Geräte in Nordamerika.
Wenn für den Miniporttreiber andere als die zuvor erwähnten Fehler auftreten, muss der Miniporttreiber eine WwanReadyStateFailure-Ereignisbenachrichtigung senden, die bereit ist, und er muss in diesem Zustand bleiben, bis das Problem identifiziert und behoben wurde.
Beachten Sie, dass der MB-Dienst nicht davon aus geht, dass Miniporttreiber alle diese Fehler erkennen können. Der Dienst übernimmt auch nicht die Reihenfolge, in der Miniporttreiber diese Fehlerbedingungen erkennen. Es empfiehlt sich jedoch, die Fehlerszenarien in der zuvor aufgeführten Reihenfolge zu implementieren.
Bis ein Miniporttreiber eine WwanReadyStateInitialized Ready-State-Ereignisbenachrichtigung sendet, fährt der Dienst mit netzwerkbezogenen Aktivitäten erst dann fort, wenn das Problem identifiziert und behoben wurde. Der Dienst kann jedoch weiterhin OIDs an den Miniporttreiber senden.
Miniport-Treiber müssen nicht warten, bis das SMS-Subsystem bereit ist, bevor sie den WwanReadyStateInitialized ready-state melden. Stattdessen sollten Miniporttreiber eine separate OID_WWAN_SMS_CONFIGURATION Benachrichtigung senden, wenn das SMS-Subsystem zum Senden und Empfangen von SMS-Nachrichten bereit ist.
Unterstützung des Notfallmodus
Wenn der Miniporttreiber angibt, dass er Notrufdienste bei der Verarbeitung OID_WWAN_READY_INFO muss der Miniporttreiber das EmergencyMode-Element der WWAN_READY_INFO-Struktur auf WwanEmergencyModeOn festlegen. In diesem Fall sollte der Miniporttreiber weiterhin Registrierungsbenachrichtigungen an den MB-Dienst senden, aber der Dienst ruft keine automatischen Konfigurationsfunktionen auf.
Miniport-Fahrer können angeben, dass sie Notrufdienste auch in Szenarien unterstützen, in denen sie erkennen, dass die SIM-Karte nicht mehr gültig ist, z. B. weil das Abonnement unbezahlt ist oder der Dienst deaktiviert wurde, weil das Gerät als gestohlen gemeldet wurde.
MB-Miniporttreiberinitialisierung
Das folgende Diagramm stellt den Prozess dar, bei dem ermittelt wird, ob es sich bei der Schnittstelle um eine qualifizierte MB-Schnittstelle handelt, und um Informationen zu den Gerätefunktionen zu sammeln. Diese Schritte werden für jede aufgezählte MB-Schnittstelle ausgeführt, wenn der MB-Dienst gestartet wird, sowie für jede neue Schnittstelle, während der Dienst ausgeführt wird. Die fett formatierten Bezeichnungen stellen OID-Bezeichner oder Transaktionsflusssteuerung dar. Die Bezeichnungen im regulären Text stellen die wichtigen Flags innerhalb der OID-Struktur dar.
Gehen Sie wie folgt vor, um einen MB-Miniporttreiber zu initialisieren:
Der MB-Dienst sendet eine synchrone (blockierende) OID_GEN_PHYSICAL_MEDIUM Abfrageanforderung, um den Typ des MB-Geräts zu identifizieren. Der Miniporttreiber antwortet mit NdisPhysicalMediumWirelessWan , um anzugeben, dass das MB-Gerät ein WWAN-Gerät ist.
Der MB-Dienst sendet eine synchrone (blockierende) OID_GEN_MEDIA_SUPPORTED Abfrageanforderung an den Miniporttreiber, um zu ermitteln, welche Art von Medium das MB-Gerät verwendet. Der Miniporttreiber antwortet mit NdisMedium802_3 , um anzugeben, dass die Ethernet-Emulation verwendet wird.
Der MB-Dienst sendet eine synchrone (blockierende) OID_WWAN_DRIVER_CAPS Abfrageanforderung an den Miniporttreiber, um zu ermitteln, welche Treibermodellversion der Miniporttreiber unterstützt. Der Miniporttreiber antwortet mit WWAN_VERSION.
Der MB-Dienst sendet eine asynchrone (nicht blockierende) OID_WWAN_DEVICE_CAPS Abfrageanforderung an den Miniporttreiber, um die Funktionen des MB-Geräts zu identifizieren. Der Miniporttreiber antwortet mit einer vorläufigen Bestätigung, dass er die Anforderung erhalten hat, und sendet in Zukunft eine Benachrichtigung mit den angeforderten Informationen.
Der Miniporttreiber sendet eine NDIS_STATUS_WWAN_DEVICE_CAPS Benachrichtigung an den MB-Dienst, die die Funktionen des MB-Geräts angibt, das der Miniporttreiber unterstützt. Wenn der Miniporttreiber beispielsweise ein GSM-basiertes Gerät unterstützt, sollte er den WwanCellularClassGsm-Wert im DeviceCaps.WwanCellularClass-Member der NDIS_WWAN_DEVICE_CAPS-Struktur angeben. Wenn der Miniporttreiber ein CDMA-basiertes Gerät unterstützt, sollte er WwanCellularClassCdma angeben.
Initialisierung SIM-Locked GPRS-Geräts mit einem User-Defined Kontext
Das folgende Diagramm veranschaulicht das Szenario, in dem der Benutzer eine SIM-PIN eingibt und manuell eine Zugriffspunktnamenzeichenfolge konfiguriert. Fett formatierte Bezeichnungen sind OID-Bezeichner oder Transaktionsflusssteuerung, und die Bezeichnungen im regulären Text sind die wichtigen Flags innerhalb der OID-Struktur.
Um ein GSM-basiertes Gerät mit gesperrter PIN1 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 Bereitzustand 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 dass er in Zukunft eine Benachrichtigung mit den angeforderten Informationen sendet.
Der Miniporttreiber sendet eine NDIS_STATUS_WWAN_FAILURE-Benachrichtigung an den MB-Dienst, um dem MB-Dienst mitzuteilen, dass das Abonnentenidentitätsmodul (Subscriber Identity Module, SIM) gesperrt ist.
Der MB-Dienst sendet eine asynchrone (nicht blockierende) OID_WWAN_PIN Abfrageanforderung 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 eine NDIS_STATUS_WWAN_SUCCESS-Benachrichtigung an den MB-Dienst.
Der MB-Dienst sendet eine asynchrone (nicht blockierende) OID_WWAN_PIN set-Anforderung 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 eine NDIS_STATUS_WWAN_SUCCESS-Benachrichtigung an den MB-Dienst.
Der Miniporttreiber sendet eine NDIS_STATUS_WWAN_READY_INFO Benachrichtigung an den MB-Dienst, die an den MB-Dienst angibt, dass der Status des MB-Geräts WwanReadyStateInitialized lautet.
Der MB-Dienst sendet eine asynchrone (nicht blockierende) OID_WWAN_REGISTER_STATE-Abfrageanforderung an den Miniporttreiber. Der Miniporttreiber antwortet mit einer vorläufigen Bestätigung (NDIS_STATUS_INDICATION_REQUIRED), dass er die Anforderung erhalten hat, und sendet in Zukunft eine Benachrichtigung mit den angeforderten Informationen.
Der Miniporttreiber sendet eine NDIS_STATUS_WWAN_SUCCESS-Benachrichtigung an den MB-Dienst.
Der Miniporttreiber sendet eine NDIS_STATUS_WWAN_REGISTER_STATE Benachrichtigung an den MB-Dienst.
Der MB-Dienst sendet eine asynchrone (nicht blockierende) OID_WWAN_HOME_PROVIDER Abfrageanforderung an den Miniporttreiber. Der Miniporttreiber antwortet mit einer vorläufigen Bestätigung (NDIS_STATUS_INDICATION_REQUIRED), dass er die Anforderung erhalten hat, und sendet in Zukunft eine Benachrichtigung mit den angeforderten Informationen.
Der Miniporttreiber sendet eine NDIS_STATUS_WWAN_SUCCESS-Benachrichtigung an den MB-Dienst.
Der Miniporttreiber sendet eine NDIS_STATUS_WWAN_REGISTER_STATE Benachrichtigung an den MB-Dienst.
Der MB-Dienst sendet eine asynchrone (nicht blockierende) OID_WWAN_PACKET_SERVICE-Anforderung 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 eine NDIS_STATUS_WWAN_PACKET_SERVICE Benachrichtigung an den MB-Dienst.
Der MB-Dienst sendet eine asynchrone (nicht blockierende) OID_WWAN_PROVISIONED_CONTEXTS Abfrageanforderung an den Miniporttreiber. Der Miniporttreiber antwortet mit einer vorläufigen Bestätigung (NDIS_STATUS_INDICATION_REQUIRED), dass er die Anforderung erhalten hat, und sendet in Zukunft eine Benachrichtigung mit den angeforderten Informationen.
Der Miniporttreiber sendet NDIS_STATUS_WWAN_PROVISIONED_CONTEXTS an den MB-Dienst.
Der MB-Dienst sendet eine asynchrone (nicht blockierende) OID_WWAN_PROVISIONED_CONTEXTS set-Anforderung an den MB-Dienst. Der Miniporttreiber antwortet mit einer vorläufigen Bestätigung (NDIS_STATUS_INDICATION_REQUIRED), dass er die Anforderung erhalten hat, und sendet in Zukunft eine Benachrichtigung mit den angeforderten Informationen.
Der Miniporttreiber sendet NDIS_STATUS_WWAN_SUCCESS an den MB-Dienst.
Weitere Informationen
Weitere Informationen zur Gerätebereitschaft finden Sie unter OID_WWAN_READY_INFO.
Weitere Informationen zur Geräteinitialisierung mit bereitgestellten Kontexten finden Sie unter MB Provisioned Context Operations.For more information about device initialization with provisioned contexts, see MB Provisioned Context Operations.