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