このトピックでは、MB サービスがデータ接続のセットアップに進む前に、MB デバイスにアクセスでき、ネットワーク関連のアクティビティに使用する準備ができていることを確認する手順について説明します。 ユーザー サブスクリプションがアクティブ化され、サブスクライバー関連情報がデバイスまたはサブスクライバー ID モジュール (SIM カード) に格納されている場合、デバイスを使用する準備が整いました。
MB サービスは、システムがミニポート ドライバーを読み込んだ後、このドライバーがその MB デバイスのハードウェア(無線スタック、SIM カードまたは同等の回線)を、サービスからの指示を待たずに自動的に初期化することを想定しています。
ミニポート ドライバーは、MB デバイスの初期状態を WwanReadyStateOff に設定します。 初期化に進むにつれて、ミニポート ドライバーは、デバイスの準備完了状態への変更を MB サービスに通知するイベント通知を送信する必要があります。
ミニポート ドライバーは、エラー状態が発生した場合、初期化プロセスを停止する必要があります。 エラー状態がクリアされると、ミニポート ドライバーは、デバイスが WwanReadyStateInitialized ready-state に達するまで初期化プロセスを再開できます。
いくつかのエラー シナリオの例を次に示します。
デバイスに SIM カードが必要であり、ミニポート ドライバーが SIM カードがないことを検出した場合、ミニポート ドライバーは WwanReadyStateSimNotInserted の準備完了状態イベント通知を送信する必要があります。ミニポート ドライバーは、ユーザーが SIM カードをデバイスに挿入するまで、その状態を維持する必要があります。
デバイスに SIM カードが必要で、ミニポート ドライバーが挿入された SIM カードを読み取ることができない場合 (たとえば、U-RIM が GSM ベースのデバイスに挿入されるか、USIM が CDMA ベースのデバイスに挿入されます)、または SIM カードがデバイスと互換性がない場合 (たとえば、3G USIM が 2G デバイスに挿入される場合など)。 USIM 形式を解釈できません)、ミニポート ドライバーは WwanReadyStateBadSim の準備完了状態イベント通知を送信する必要があります。ミニポート ドライバーは、ユーザーがデバイスに正しい SIM カードを挿入するまで、その状態を維持する必要があります。
デバイスが PIN (SIM カードを使用するデバイスの場合) またはパスワード (SIM カードを使用しないデバイスの場合) によってロックされている場合、ミニポート ドライバーは WwanReadyStateDeviceLocked の準備完了状態イベント通知を送信する必要があります。ミニポート ドライバーは、ユーザーが正しい PIN またはパスワードを入力するまで、その状態を維持する必要があります。
ミニポート ドライバーがサービスのアクティブ化を続行する必要があることを検出した場合、ミニポート ドライバーは WwanReadyStateNotActivated の準備完了状態イベント通知を送信する必要があり、サービスがアクティブ化されるまで、その状態を維持する必要があります。 これは、北米の CDMA ベースのデバイスの一般的な動作です。
ミニポート ドライバーが前に説明した以外のエラーが発生した場合、ミニポート ドライバーは WwanReadyStateFailure の準備完了状態イベント通知を送信する必要があり、問題が特定されて修正されるまで、その状態を維持する必要があります。
MB サービスでは、ミニポート ドライバーがこれらすべてのエラーを検出できることを前提としないことに注意してください。 また、サービスでは、ミニポート ドライバーがこれらのエラー状態を検出する順序を想定していません。 ただし、エラー シナリオは、前に示した順序で実装することをお勧めします。
ミニポート ドライバーが WwanReadyStateInitialized の準備完了状態イベント通知を送信するまで、サービスは、問題が特定され、修正されるまで、ネットワーク関連のアクティビティを続行しません。 ただし、サービスからミニポート ドライバーに OID が送信される場合があります。
ミニポート ドライバーは、 WwanReadyStateInitialized ready-state を報告する前に、SMS サブシステムの準備が整うのを待つ必要はありません。 代わりに、ミニポート ドライバーは、SMS サブシステムが SMS メッセージを送受信する準備ができたときに、別の OID_WWAN_SMS_CONFIGURATION 通知を送信する必要があります。
緊急モードのサポート
ミニポート ドライバーは、OID_WWAN_READY_INFO処理中に緊急通話サービスをサポートすることを示す場合、ミニポート ドライバーは、WwanEmergencyModeOn にWWAN_READY_INFO構造体の EmergencyMode メンバーを設定する必要があります。 この場合、ミニポート ドライバーは引き続き MB サービスに登録通知を送信する必要がありますが、サービスは自動構成関連の機能を呼び出しません。
ミニポート ドライバーは、SIM が有効でなくなったことを検出するシナリオでも、緊急通報サービスをサポートすることを指定できます。これは、サブスクリプションが未払いであったり、デバイスが盗まれたことが報告されたためにサービスが非アクティブ化された場合などです。
MB ミニポート ドライバーの初期化
次の図は、インターフェイスが修飾 MB インターフェイスであるかどうかを判断し、デバイスの機能に関する情報を収集するために実行されるプロセスを表しています。 これらの手順は、MB サービスの起動時に列挙された MB インターフェイスごとに実行されます。また、サービスの実行中に新しいインターフェイスが到着するたびに実行されます。 太字のラベルは、OID 識別子またはトランザクション フロー制御を表します。 標準テキストのラベルは、OID 構造体内の重要なフラグを表します。
MB ミニポート ドライバーを初期化するには、次の手順を使用します。
MB サービスは、同期 (ブロック) OID_GEN_PHYSICAL_MEDIUM クエリ要求を送信して、MB デバイスの種類を識別します。 ミニポート ドライバーは、MB デバイスが WWAN デバイスであることを示すために NdisPhysicalMediumWirelessWan で応答します。
MB サービスは、同期 (ブロック) OID_GEN_MEDIA_SUPPORTED クエリ要求をミニポート ドライバーに送信して、MB デバイスが使用するメディアの種類を識別します。 ミニポート ドライバーは、イーサネット エミュレーションを使用することを示す NdisMedium802_3 で応答します。
MB サービスは、ミニポート ドライバー がサポートしている ドライバー モデルのバージョンを識別するために、ミニポート ドライバーに同期 (ブロック) OID_WWAN_DRIVER_CAPSクエリ要求を送信します。 ミニポート ドライバーは、WWAN_VERSIONで応答します。
MB サービスは、非同期 (非ブロッキング) OID_WWAN_DEVICE_CAPS クエリ要求をミニポート ドライバーに送信して、MB デバイスの機能を識別します。 ミニポート ドライバーは、要求を受信したことを一時的に確認して応答し、今後、要求された情報を含む通知を送信します。
ミニポート ドライバーは、 ミニポート ドライバーがサポートする MB デバイスの機能を示す MB サービスにNDIS_STATUS_WWAN_DEVICE_CAPS通知を送信します。 たとえば、ミニポート ドライバーが GSM ベースのデバイスをサポートしている場合は、NDIS_WWAN_DEVICE_CAPS構造体の DeviceCaps.WwanCellularClass メンバーに WwanCellularClassGsm 値を指定する必要があります。 ミニポート ドライバーが CDMA ベースのデバイスをサポートしている場合は、 WwanCellularClassCdma を指定する必要があります。
SIM-Locked GPRS デバイスの初期化 User-Defined コンテキストを用いて
次の図は、ユーザーが SIM PIN を入力し、アクセス ポイント名の文字列を手動で構成するシナリオを示しています。 太字のラベルは OID 識別子またはトランザクション フロー制御であり、標準テキストのラベルは OID 構造体内の重要なフラグです。
PIN1 がロックされた GSM ベースのデバイスを初期化するには、次の手順を実装します。
MB サービスは、非同期 (非ブロッキング) OID_WWAN_READY_INFO クエリ要求をミニポート ドライバーに送信して、デバイスの準備完了状態を識別します。 ミニポート ドライバーは、要求を受け取ったことを確認し、要求された情報を後で通知することを暫定的な確認 (NDIS_STATUS_INDICATION_REQUIRED) で応答します。
ミニポート ドライバーは、MB サービスにサブスクライバー ID モジュール (SIM) がロックされていることを示す MB サービスにNDIS_STATUS_WWAN_FAILURE通知を送信します。
MB サービスは、非同期 (非ブロッキング) OID_WWAN_PIN クエリ要求をミニポート ドライバーに送信します。 ミニポート ドライバーは、要求を受け取ったことを確認し、要求された情報を後で通知することを暫定的な確認 (NDIS_STATUS_INDICATION_REQUIRED) で応答します。
ミニポート ドライバーは、MB サービスにNDIS_STATUS_WWAN_SUCCESS通知を送信します。
MB サービスは、ミニポート ドライバーに非同期 (非ブロッキング) OID_WWAN_PIN セット要求を送信します。 ミニポート ドライバーは、要求を受け取ったことを確認し、要求された情報を後で通知することを暫定的な確認 (NDIS_STATUS_INDICATION_REQUIRED) で応答します。
ミニポート ドライバーは、MB サービスにNDIS_STATUS_WWAN_SUCCESS通知を送信します。
ミニポート ドライバー は、MB デバイスの状態が WwanReadyStateInitialized であることを MB サービスに示す MB サービスにNDIS_STATUS_WWAN_READY_INFO通知を送信します。
MB サービスは、非同期 (非ブロッキング) OID_WWAN_REGISTER_STATE クエリ要求をミニポート ドライバーに送信します。 ミニポート ドライバーは、要求を受信したことを一時的な受信確認 (NDIS_STATUS_INDICATION_REQUIRED) で応答し、今後、要求された情報を含む通知を送信します。
ミニポート ドライバーは、MB サービスにNDIS_STATUS_WWAN_SUCCESS通知を送信します。
ミニポート ドライバーは、MB サービス にNDIS_STATUS_WWAN_REGISTER_STATE 通知を送信します。
MB サービスは、非同期 (非ブロッキング) OID_WWAN_HOME_PROVIDER クエリ要求をミニポート ドライバーに送信します。 ミニポート ドライバーは、要求を受信したことを一時的な受信確認 (NDIS_STATUS_INDICATION_REQUIRED) で応答し、今後、要求された情報を含む通知を送信します。
ミニポート ドライバーは、MB サービスにNDIS_STATUS_WWAN_SUCCESS通知を送信します。
ミニポート ドライバーは、MB サービス にNDIS_STATUS_WWAN_REGISTER_STATE 通知を送信します。
MB サービスは、非同期 (非ブロッキング) OID_WWAN_PACKET_SERVICE 要求をミニポート ドライバーに送信します。 ミニポート ドライバーは、要求を受け取ったことを確認し、要求された情報を後で通知することを暫定的な確認 (NDIS_STATUS_INDICATION_REQUIRED) で応答します。
ミニポート ドライバーは、MB サービス にNDIS_STATUS_WWAN_PACKET_SERVICE 通知を送信します。
MB サービスは、非同期 (非ブロッキング) OID_WWAN_PROVISIONED_CONTEXTS クエリ要求をミニポート ドライバーに送信します。 ミニポート ドライバーは、要求を受信したことを一時的な受信確認 (NDIS_STATUS_INDICATION_REQUIRED) で応答し、今後、要求された情報を含む通知を送信します。
ミニポート ドライバーは、MB サービス にNDIS_STATUS_WWAN_PROVISIONED_CONTEXTS を送信します。
MB サービスは、非同期 (非ブロッキング) OID_WWAN_PROVISIONED_CONTEXTS セット要求を MB サービスに送信します。 ミニポート ドライバーは、要求を受信したことを一時的な受信確認 (NDIS_STATUS_INDICATION_REQUIRED) で応答し、今後、要求された情報を含む通知を送信します。
ミニポート ドライバーは、MB サービスにNDIS_STATUS_WWAN_SUCCESSを送信します。
こちらもご覧ください
デバイスの準備の詳細については、「 OID_WWAN_READY_INFO」を参照してください。
プロビジョニングされたコンテキストを使用したデバイスの初期化の詳細については、「 MB プロビジョニングされたコンテキスト操作」を参照してください。