このトピックでは、パケット データ サービス接続中にパケット データ サービス、パケット データ サービスのハンドオフ、音声呼び出しを失って回復する操作について説明します。
パケット データ サービスの損失と回復
次の図は、ミニポート ドライバーがさまざまな間隔の信号強度とパケット サービスを失ったときに従う必要があるプロセスを示しています。 太字のラベルは、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 を送信します。
パケット データ サービスのハンドオフ
次の図は、パケット サービスが GPRS、EDGE、UMTS、HSDPA、TD-SCDMA などのさまざまな GSM ベースのテクノロジ間を移動するとき、または 1xRTT、EV-DO、EV-DO RevA などのさまざまな CDMA ベースのテクノロジ間を移動する場合に、ミニポート ドライバーが従う必要がある手順を示しています。 太字のラベルは、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クエリ要求に応答して WwanVoiceClassSeparateVoiceData を WwanVoiceClass メンバーに返すミニポート ドライバーにのみ適用されます。 太字のラベルは、OID 識別子またはトランザクション フロー制御を表します。 標準テキストのラベルは、OID 構造体内の重要なフラグを表します。
この手順では、着信音声通話を受け入れると、既存のパケット接続が優先されることを前提としています。 OID_WWAN_DEVICE_CAPS クエリ要求に応答して WwanVoiceClassSimultaneousVoiceData を WwanVoiceClass メンバーで返すミニポート ドライバーの場合、現在のパケット接続は影響を受けないようにする必要があります。
仕様上、MB サービスは回線音声をサポートせず、サービスを禁止もしないことに注意してください。 上の図で説明したプロセスは、デバイスがデータと回線音声の両方を処理できるが、一度に 1 つだけの場合にのみ適用されます。 このプロセスでは、音声通話が既存のデータ接続よりも優先されることを前提としています。 この場合、ミニポート ドライバーは、音声呼び出しの間、データ接続を中断する必要があります。 その後、ミニポート ドライバーは、MB 接続を自動的に再確立することによって、データ サービスを再開する必要があります。
パケット データ サービス接続中に音声通話を処理するには、次の手順に従います。
パケット データ サービスに正常に接続するには、ミニポート ドライバーは、現在の DataClass を示す NDIS_WWAN_PACKET_SERVICE_STATE 通知を MB サービスに送信した後、メディア接続状態を MediaConnectStateConnected として示す NDIS_STATUS_LINK_STATE 通知を MB サービスに送信する必要があります。
音声通話が行われたり応答されたりすると、ミニポート ドライバーは、メディア接続状態を MediaConnectStateDisconnected として示すために、NDIS_STATUS_LINK_STATE通知を MB サービスに送信する必要があります。
ミニポート ドライバーは、WwanVoiceCallStateInProgress としてデバイスの VoiceCall 状態を示す MB サービスにNDIS_STATUS_WWAN_CONTEXT_STATE通知を送信する必要があります。
ハングアップ時に、ミニポート ドライバーは、WwanVoiceCallStateHangup としてデバイスの VoiceCall 状態を示す MB サービスにNDIS_STATUS_WWAN_CONTEXT_STATE通知を送信する必要があります。
音声通話が完了した後、デバイスはパケット接続を再開します。 ミニポート ドライバーは、メディア接続状態を MediaConnectStateConnected として示す MB サービスにNDIS_STATUS_LINK_STATE通知を送信する必要があります。
ミニポート ドライバーは、現在の DataClass を示す MB サービスにNDIS_WWAN_PACKET_SERVICE_STATE通知を送信する必要があります。
こちらもご覧ください
パケット サービス操作の詳細については、「 OID_WWAN_PACKET_SERVICE」を参照してください。