MB パケット サービス操作
このトピックでは、パケット データ サービス接続中にパケット データ サービス、パケット データ サービスのハンドオフ、音声通話をロスしたり回復したりする操作について説明します。
パケット データ サービスの損失と復旧
次の図が示すのは、ミニポート ドライバーがさまざまな間隔で信号強度とパケット サービスをロスしたときに従う必要があるプロセスです。 太字のラベルは、OID 識別子またはトランザクション フロー制御です。標準テキストのラベルは、OID 構造体内の重要なフラグです。
パケット データ サービスをロスした後、それを回復するには、次の手順を使用します。
ミニポート ドライバーは、MB サービスに NDIS_WWAN_LINK_STATE を送信します。
ミニポート ドライバーは、MB サービスに NDIS_WWAN_SIGNAL_STATE を送信します。
ミニポート ドライバーは、MB サービスに NDIS_WWAN_SIGNAL_STATE を送信します。
ミニポート ドライバーは、MB サービスに NDIS_WWAN_SIGNAL_STATE を送信します。
ミニポート ドライバーは、MB サービスに NDIS_WWAN_REGISTER_STATE を送信します。
ミニポート ドライバーは、MB サービスに NDIS_STATUS_WWAN_PACKET_SERVICE を送信します。
ミニポート ドライバーは、MB サービスに NDIS_STATUS_LINK_STATE を送信します。
ミニポート ドライバーは、MB サービスに NDIS_WWAN_SIGNAL_STATE を送信します。
パケット データ サービスのハンドオフ
次の図が示すのは、パケット サービスが異なる GSM ベース テクノロジ (GPRS、EDGE、UMTS、HSDPA、TD-SCDMA など) の間を移動するとき、または異なる CDMA ベースのテクノロジ (1xRTT、EV-DO、EV-DO RevA など) の間を移動するときに、ミニポート ドライバーが従う必要がある手順です。 太字のラベルは、OID 識別子またはトランザクション フロー制御です。 標準テキストのラベルは、OID 構造体内の重要なフラグです。
ハンドオフ プロセスで IP アドレスが変更されない限り、MB サービスは既存の接続を中断することなく、ハンドオフ イベントを透過的に処理することにご注意ください。 ただし、ミニポート ドライバーは、IP アドレスが変更された場合にのみ、これまでどおりに、メディア切断イベントについて MB サービスに通知する必要があります。
ミニポート ドライバーと、ミニポート ドライバーが管理する MB デバイスは、MB サービスとその他のオーバーレイ アプリケーションへの影響を最小限に抑えながら、異なるエア インターフェイス間のレイヤー 2 ハンドオフを自動的に処理できる必要があります。 唯一考えられる影響は、テクノロジのハンドオフによって生じる可能性がある IP アドレスの変更です。 この場合、ミニポート ドライバーは、パケット サービスの変更を MB サービスに報告する前に、MB 接続を再確立する必要があります。 DHCP 機能を実装していないミニポート ドライバーでは、IP ヘルパーと、関連する関数を使用する必要があります。 DHCP 機能を実装するミニポート ドライバーでは、IP ヘルパー関数を使用する必要はありません。
パケット データ サービスをハンドオフするには、次の手順に従います。
ミニポート ドライバーは、MB サービスに NDIS_STATUS_WWAN_PACKET_SERVICE を送信します。
ミニポート ドライバーは、MB サービスに NDIS_WWAN_LINK_STATE を送信します。
ミニポート ドライバーは、MB サービスに NDIS_STATUS_WWAN_PACKET_SERVICE を送信します。
ミニポート ドライバーは、古い IP アドレスを持つ DeleteUnicastIpAddressEntry ヘルパー関数を呼び出します。
ミニポート ドライバーは、新しい IP アドレスを持つ CreateUnicastIpAddressEntry ヘルパー関数を呼び出します。
ミニポート ドライバーは、MB サービスに NDIS_STATUS_LINK_STATE を送信します。
ミニポート ドライバーは、MB サービスに NDIS_STATUS_LINK_STATE を送信します。
ミニポート ドライバーは、MB サービスに NDIS_STATUS_WWAN_PACKET_SERVICE を送信します。
パケット データ サービス接続時の音声通話
次の図は、パケット データ サービスがアクティブな間に音声通話が行われるときに、ミニポート ドライバーが従う必要があるプロセスを表しています。 この図では、1xRTT を例として使用していますが、手順は他のエア インターフェイスにも適用されます。 次の図に概要を示すプロセスは、OID_WWAN_DEVICE_CAPS の query 要求に応答して WwanVoiceClass メンバーに WwanVoiceClassSeparateVoiceData を返すミニポート ドライバーにのみ適用されます。 太字のラベルは、OID 識別子またはトランザクション フロー制御を表します。 標準テキストのラベルは、OID 構造体内の重要なフラグを表します。
この手順は、着信音声通話を受け入れると、既存のパケット接続が優先されることを前提としています。 OID_WWAN_DEVICE_CAPS の query 要求に応答して WwanVoiceClass に WwanVoiceClassSimultaneousVoiceData を返すミニポート ドライバーの場合、現在のパケット接続が影響を受けないようにする必要があります。
設計上、MB サービスでは回線音声がサポートされておらず、サービスも禁止されないことにご注意ください。 上の図で説明したプロセスは、デバイスがデータと回線音声の両方を処理できるものの、一度に 1 つしか処理できない場合にのみ適用されます。 このプロセスは、音声通話が既存のデータ接続よりも優先されることを前提としています。 この場合、ミニポート ドライバーは、音声通話の間、データ接続を中断する必要があります。 その後、ミニポート ドライバーは、MB 接続を自動的に再確立して、データ サービスを再開する必要があります。
パケット データ サービスの接続中に音声通話を処理するには、次の手順に従います。
パケット データ サービス接続が成功した場合、ミニポート ドライバーは、メディア接続状態を MediaConnectStateConnected として示すために、現在の DataClass の後に MB サービスへの NDIS_STATUS_LINK_STATE 通知を示すために、MB サービスに NDIS_WWAN_PACKET_SERVICE_STATE 通知を送信する必要があります。
音声通話が発信または応答されたら、ミニポート ドライバーはメディア接続状態を MediaConnectStateDisconnected として示すために、MB サービスに NDIS_STATUS_LINK_STATE 通知を送信する必要があります。
その後、ミニポート ドライバーは、WwanVoiceCallStateInProgress としてデバイスの VoiceCall 状態を示す NDIS_STATUS_WWAN_CONTEXT_STATE 通知を MB サービスに送信する必要があります。
ハングアップ時に、ミニポート ドライバーは、WwanVoiceCallStateHangup としてデバイスの VoiceCall 状態を示す NDIS_STATUS_WWAN_CONTEXT_STATE 通知を MB サービスに送信する必要があります。
音声通話が完了した後、デバイスはパケット接続を再開します。 ミニポート ドライバーは、メディア接続状態を MediaConnectStateConnected として示すために、MB サービスに NDIS_STATUS_LINK_STATE 通知を送信する必要があります。
ミニポート ドライバーは、現在の DataClass を示すMB サービスに NDIS_WWAN_PACKET_SERVICE_STATE 通知を送信する必要があります。
参照
パケット サービス操作の詳細については、OID_WWAN_PACKET_SERVICE を参照してください。