(57)【要約】【課題】  移動接続をサポートするサービスとＷＷＡＮデータサービスを公開するデバイスドライバとの間の、イベントをベースとする構成インターフェースのための方法およびシステムを提供すること。【解決手段】  オブジェクト識別子（ＯＩＤ）が、サービスとデバイスドライバの間で渡される。非同期通信が使用可能にされる。ＰＩＮ、ＳＩＭ、および信号強度を含めて、ＧＳＭおよびＣＤＭＡベースのデバイスなどＷＷＡＮデバイスの構成をネゴシエートするためにＯＩＤを使用するための方法およびシステムが提供される。【選択図】  図１
2005141737.tif 000002
【特許請求の範囲】
【請求項１】
ユーザモードモジュールへのカーネルモードドライバインターフェースを使用し、カーネルモードＷＷＡＮデバイスドライバにコマンドを送信し、およびカーネルモードＷＷＡＮデバイスドライバから情報を受信するシステムであって、
ユーザモードエンティティと、
前記ユーザモードモジュールへのカーネルモードドライバインターフェースを介して前記ＷＷＡＮデバイスドライバに前記ユーザモードエンティティによって送信される第１のオブジェクト識別子（ＯＩＤ）群と、
前記ユーザモードモジュールへのカーネルモードドライバインターフェースを介して前記ＷＷＡＮデバイスドライバから前記ユーザモードエンティティによって受信される第２のＯＩＤ群と
を備え、前記ユーザモードエンティティは、前記第１の群からの１つのＯＩＤを送信した後、前記ＷＷＡＮデバイスドライバから応答を受信する前に、前記ユーザモードモジュールへのカーネルモードドライバインターフェースを介して前記ＷＷＡＮデバイスドライバにＯＩＤを送信することが認められることを特徴とするシステム。
【請求項２】
前記ＷＷＡＮデバイスドライバは、ＧＳＭ基盤のデバイスを制御することを特徴とする請求項１に記載のシステム。
【請求項３】
前記ＷＷＡＮデバイスドライバは、ＣＤＭＡ基盤のデバイスを制御することを特徴とする請求項１に記載のシステム。
【請求項４】
前記ＷＷＡＮデバイスドライバは、ＣＤＭＡまたはＧＳＭ基盤のデバイスを制御することを特徴とする請求項１に記載のシステム。
【請求項５】
前記第２のＯＩＤ群は、前記ＷＷＡＮデバイスドライバに関連付けられたＷＷＡＮデバイスがＷＷＡＮサービスプロバイダによって供給されていることを前記ユーザモードエンティティに示すためのＯＩＤ群を含むことを特徴とする請求項１に記載のシステム。
【請求項６】
前記第１および第２のＯＩＤ群は、ＳＩＭからの情報を用いて認証するためのＯＩＤ群を含むことを特徴とする請求項１に記載のシステム。
【請求項７】
前記第１および第２のＯＩＤ群は、ＰＩＮを用いて認証するためのＯＩＤ群を含むことを特徴とする請求項１に記載のシステム。
【請求項８】
前記ＰＩＮは、音声呼と共に使用されることを特徴とする請求項７に記載のシステム。
【請求項９】
前記第１および第２のＯＩＤ群は、信号強度範囲閾値を管理するためのＯＩＤ群を含むことを特徴とする請求項１に記載のシステム。
【請求項１０】
前記第１のＯＩＤ群は、信号強度範囲閾値を確立する前記ユーザモードエンティティによって送信されるＯＩＤを含み、前記第２のＯＩＤ群は、信号強度が前記確立された信号強度範囲閾値の範囲外にあることを示す前記ＷＷＡＮデバイスドライバから受信されるＯＩＤを含むことを特徴とする請求項９に記載のシステム。
【請求項１１】
前記第１および第２のＯＩＤ群は、信号強度レポート間隔を管理するＯＩＤを含むことを特徴とする請求項１に記載のシステム。
【請求項１２】
前記第１のＯＩＤ群は、信号強度レポート間隔を確立する前記ユーザモードエンティティによって送信されるＯＩＤ群を含み、前記第２のＯＩＤ群は、前記確立された信号強度レポート間隔の最小頻度で前記ＷＷＡＮデバイスドライバから受信されるＯＩＤを含むことを特徴とする請求項１１に記載のシステム。
【請求項１３】
ユーザモードモジュールへのカーネルモードドライバインターフェースを介して送信されたＯＩＤを使用して、ＷＷＡＮデバイスの信号強度を管理する方法であって、
信号強度範囲閾値を確立する１つのＯＩＤを送信するステップと、
前記確立された信号強度範囲閾値の範囲外にある前記ＷＷＡＮデバイスの信号強度をレポートする１つのＯＩＤを受信するステップと
を備えたことを特徴とする方法。
【請求項１４】
前記信号強度範囲閾値を調節する１つのＯＩＤを送信するステップをさらに備えたことを特徴とする請求項１３に記載の方法。
【請求項１５】
前記ＷＷＡＮデバイスに関連するＷＷＡＮデバイスドライバによって、前記ＷＷＡＮデバイスの信号強度が前記確立された信号強度範囲閾値の範囲外にあることを決定するステップをさらに備えたことを特徴とする請求項１３に記載の方法。
【請求項１６】
ユーザモードモジュールへのカーネルモードドライバインターフェースを介して送信されたＯＩＤを使用して、ユーザモードエンティティがＷＷＡＮデバイスドライバを初期化する方法であって、
前記ＷＷＡＮデバイスに関連するデバイスドライバに、該デバイスによってサポートされている媒体に関する情報について照会するＯＩＤを送受信するステップと、
前記ユーザモードエンティティによってサポートされている構成サービスバージョンの範囲を設定する１つのＯＩＤを送信するステップと、
前記デバイスドライバによってサポートされている構成サービスバージョンの範囲について、前記デバイスドライバに照会するＯＩＤを送受信するステップと、
前記デバイスドライバの能力について、前記デバイスドライバに照会するＯＩＤ群を送受信するステップと
を備えたことを特徴とする方法。
【請求項１７】
前記ＷＷＡＮデバイスドライバは、ＧＳＭ基盤のデバイスを制御することを特徴とする請求項１６に記載の方法。
【請求項１８】
前記ＷＷＡＮデバイスドライバは、ＣＤＭＡ基盤のデバイスを制御することを特徴とする請求項１６に記載の方法。
【請求項１９】
ユーザモードモジュールへのカーネルモードドライバインターフェースを介して送信されたＯＩＤを使用して、ユーザモードエンティティがＷＷＡＮデバイスを初期化する方法であって、
前記ＷＷＡＮデバイスに関連するデバイスドライバを初期化するステップと、
プロトコルスタックを初期化する１つのＯＩＤを送信するステップと、
前記デバイスドライバが準備完了状態にあることを示す１つのＯＩＤを受信するステップと、
トランシーバに給電し、登録を試みる１つのＯＩＤを送信するステップと、
コンテキストを確立する１つのＯＩＤを送信するステップと、
前記デバイスが接続され、通信セッションのための準備ができていることを示す１つのＯＩＤを受信するステップと
を備えたことを特徴とする方法。
【請求項２０】
ＰＩＮが必要とされるか否かを示す１つのＯＩＤを前記デバイスドライバから受信するステップをさらに備えたことを特徴とする請求項１９に記載の方法。
【請求項２１】
前記ユーザモードエンティティは、ＰＩＮが必要な場合、ＰＩＮを含む１つのＯＩＤを送信することを特徴とする請求項２０に記載の方法。
【請求項２２】
前記デバイスドライバがプロバイダを探索中であることを示す１つのＯＩＤを受信するステップをさらに備えたことを特徴とする請求項１９に記載の方法。
【請求項２３】
前記デバイスドライバがパケット添付されていることを示す１つのＯＩＤを受信するステップをさらに備えたことを特徴とする請求項２２に記載の方法。
【請求項２４】
供給されるコンテキストのリストを要求する１つのＯＩＤを送信するステップをさらに備えたことを特徴とする請求項１９に記載の方法。
【請求項２５】
供給されるコンテキストのリストを有するＯＩＤを受信するステップをさらに備えたことを特徴とする請求項２４に記載の方法。
【請求項２６】
前記ＷＷＡＮデバイスは、ＧＳＭ基盤のデバイスであることを特徴とする請求項１９に記載の方法。
【請求項２７】
前記ＷＷＡＮデバイスは、ＣＤＭＡ基盤のデバイスであることを特徴とする請求項１９に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に、コンピュータソフトウェア−ハードウェアインターフェースの分野に関し、詳細には、ユーザモード接続アプリケーションとカーネルモードＷＷＡＮデバイスドライバとの間のインターフェースに関する。
【背景技術】
【０００２】
本願は、参照によりその全体を本明細書に組み込む、２００３年１０月２４日に出願されたＳｈｅｎらの「NDIS WWAN INTERFACE」という名称の米国特許仮出願第６０／５１４，３３１号明細書の利益を主張する。
【０００３】
ワイヤレス広域ネットワーク（セルラ事業者として、より知られるＷＷＡＮ）は、ＧＳＭ（Ｇｌｏｂａｌ  Ｓｙｓｔｅｍ  Ｍｏｂｉｌｅ）、ＧＰＲＳ（Ｇｅｎｅｒａｌ  Ｐａｃｋｅｔ  Ｒａｄｉｏ  Ｓｅｒｖｉｃｅ）、符号分割多元接続（ＣＤＭＡ）などＷＷＡＮプロトコルを使用するネットワークに、コンピュータが接続することを可能にする。これらのネットワークは、元々音声伝送のために使用されたものだが、ＷＷＡＮ接続ハードウェアを備えるコンピュータまたは他のデバイスを有するそのエンドユーザに、効率的なデータサービスを提供することができるものである。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
従来型のシステムでは、ＷＷＡＮを介してワイヤレスデータサービスを管理するため、個々のＷＷＡＮハードウェア開発者が特注の構成ユーザインターフェースを提供することが必要だった。これらのインターフェースによってユーザインターフェースとＷＷＡＮデバイスとの間で通信が可能となったが、そのメーカ専用であることから、所与のユーザインターフェースは特定のＷＷＡＮデバイスとしか互換ではなかった。さらに、従来のシステムのユーザインターフェースは、ユーザが接続を構成するのに、しばしば手作業の多い工程を行なうことが必要だった。
【０００５】
さらに、従来のシステムは、ＷＷＡＮデバイスドライバとその構成ユーザインターフェースとの間で同期通信を必要とするという問題があった。たとえば、ＷＷＡＮデバイスドライバが従来型システムにおいて個人識別番号（ＰＩＮ）を必要とする場合、任意の追加のコマンドを発行するためにはその前に、ユーザは、そのＰＩＮについて入力し、デバイスドライバに送り、デバイスドライバに処理させなければならないであろう。従来のシステムは同期通信が必要なので、しばしばＷＷＡＮデバイスを構成するための期間が長くなった。というのは、構成コマンドは、先のコマンドが完了したときのみ送ることができるからである。
【０００６】
本発明の諸実施形態は、移動接続をサポートするサービス（ローミングサービス）とＷＷＡＮデータサービスを公開するデバイスドライバとの間の、イベントをベースとする構成インターフェースのための方法およびシステムを提供する。このインターフェースは、最小限のユーザ構成でローミングサービスのための本質的な状態およびイベントを提供することが意図されている。
【課題を解決するための手段】
【０００７】
本発明の一態様によれば、ユーザモードモジュール対カーネルモードドライバインターフェースを使用し、ＯＩＤを使用することによってカーネルモードＷＷＡＮデバイスドライバにコマンドを送り、およびカーネルモードＷＷＡＮデバイスドライバから情報を受け取るためのシステムが提供される。一実施形態において、ＷＷＡＮデバイスドライバは、ＧＳＭベースのデバイスを制御する。他の実施形態において、ＷＷＡＮデバイスドライバは、ＣＤＭＡベースのデバイスを制御する。さらに他の実施形態において、ＷＷＡＮデバイスドライバは、ＣＤＭＡまたはＧＳＭベースのデバイスを制御する。
【０００８】
一実施形態において、ＷＷＡＮデバイスが、あるＷＷＡＮサービスプロバイダによって装備されていることをユーザモードエンティティに示すために、いくつかのＯＩＤが使用される。他の実施形態において、ＳＩＭからの情報を用いて認証するために、いくつかのＯＩＤが使用される。さらに他の実施形態において、ＰＩＮを用いて認証するために、いくつかのＯＩＤが使用される。１つのバージョンにおいて、ＰＩＮは、音声呼と共に使用される。
【０００９】
一実施形態において、信号強度範囲閾値を管理するために、いくつかのＯＩＤが使用される。１つのバージョンにおいて、信号強度範囲閾値を確立するために、いくつかのＯＩＤが使用され、その信号強度が、確立された信号強度範囲閾値の外にあることを示すために、いくつかのＯＩＤが使用される。
【００１０】
一実施形態において、信号強度レポート間隔を管理するために、いくつかのＯＩＤが使用される。１つのバージョンにおいて、信号強度レポート間隔を確立するために、いくつかのＯＩＤが使用され、確立された信号強度レポート間隔の最小頻度でいくつかのＯＩＤが受信される。
【００１１】
本発明の他の態様によれば、ユーザモードモジュールを介してカーネルモードドライバインターフェースに送られたＯＩＤを使用して、ＷＷＡＮデバイスの信号強度を管理するための方法が提供される。一実施形態において、この方法は、信号強度範囲閾値を確立するためにＯＩＤを送信するステップ、および確立された信号強度範囲閾値の外にあるＷＷＡＮデバイスの信号強度をレポートするＯＩＤを受信するステップを含む。他の実施形態において、この方法は、信号強度範囲閾値を調節するためにＯＩＤを送信するステップをさらに含む。さらに他の実施形態において、この方法は、ＷＷＡＮデバイスに関連するＷＷＡＮデバイスドライバによって、ＷＷＡＮデバイスの信号強度が、確立された信号強度範囲閾値の外にあることを決定するステップをさらに含む。
【００１２】
本発明の他の態様によれば、ユーザモードモジュールを介してカーネルモードドライバインターフェースに送られたＯＩＤを使用して、ユーザモードエンティティがＷＷＡＮデバイスドライバを初期化するための方法が提供される。一実施形態において、この方法は、ＷＷＡＮデバイスによってサポートされている媒体に関する情報について、そのＷＷＡＮデバイスに関連するデバイスドライバに照会するためにＯＩＤを送受信するステップ、ユーザモードエンティティによってサポートされている、ある範囲の構成サービスバージョンを設定するためにＯＩＤを送信するステップ、そのデバイスドライバによってサポートされている、ある範囲の構成サービスバージョンについて、そのデバイスドライバに照会するためにＯＩＤを送受信するステップ、および、そのデバイスドライバの能力について、そのデバイスドライバに照会するためにＯＩＤを送受信するステップを含む。一実施形態において、ＷＷＡＮデバイスドライバは、ＧＳＭベースのデバイスを制御する。他の実施形態において、ＷＷＡＮデバイスドライバは、ＣＤＭＡベースのデバイスを制御する。
【００１３】
本発明の他の態様によれば、ユーザモードモジュールを介してカーネルモードドライバインターフェースに送られたＯＩＤを使用して、ユーザモードエンティティがＷＷＡＮデバイスを初期化するための方法が提供される。一実施形態において、この方法は、ＷＷＡＮデバイスに関連するデバイスドライバを初期化するステップ、プロトコルスタックを初期化するためにＯＩＤを送信するステップ、デバイスドライバが準備完了状態にあることを示すＯＩＤを受信するステップ、トランシーバに給電し、登録を試みるためにＯＩＤを送信するステップ、コンテキストを確立するためにＯＩＤを送信するステップ、および、デバイスが接続され、通信セッションのための準備ができていることを示すＯＩＤを受信するステップを含む。他の実施形態において、この方法は、ＰＩＮが必要とされるか否かを示すＯＩＤをデバイスドライバから受信するステップをさらに含む。１つのバージョンにおいて、ユーザモードエンティティは、ＰＩＮが必要とされる場合、ＰＩＮを含むＯＩＤを送信する。
【００１４】
一実施形態において、この方法は、デバイスドライバがプロバイダを探索中であることを示すＯＩＤを受信するステップをさらに含む。１つのバージョンにおいて、この方法は、デバイスドライバにパケットが添付済みであることを示すＯＩＤを受信するステップをさらに含む。
【００１５】
一実施形態において、この方法は、装備されたコンテキストのリストを要求するＯＩＤを送信するステップをさらに含む。１つのバージョンにおいて、この方法は、装備されたコンテキストのリストを有するＯＩＤを受信するステップをさらに含む。
【００１６】
一実施形態において、ＷＷＡＮデバイスは、ＧＳＭベースのデバイスである。他の実施形態において、ＷＷＡＮデバイスは、ＣＤＭＡベースのデバイスである。
【００１７】
特許請求の範囲は、本発明の特徴について具体的に述べているが、本発明とその利点は、添付の図面と共に以下の詳細な説明を考慮して最もよく理解される。
【発明を実施するための最良の形態】
【００１８】
次に、ＯＩＤを使用して、移動接続をサポートするサービスとＷＷＡＮデータサービスを公開するデバイスドライバとの間でインターフェースを取るための方法およびシステムについて、好ましい実施形態に関連して述べるが、本発明の方法およびシステムは、移動接続サービスとデバイスドライバの間のインターフェースに限定されない。さらに、本明細書に述べられている方法およびシステムは例示的なものにすぎないこと、および本発明の精神および範囲から逸脱することなしに変形することができることを、当業者なら容易に理解できるであろう。
【００１９】
本発明は、添付の図面と併せて以下の詳細な説明を読むことによって、より完全に理解することとなる。この説明では、同じ符号は、本発明の様々な実施形態の中の類似の要素を指す。本発明は、好適なコンピューティング環境内で実施されるものとして示されている。必要ではないが、本発明について、パーソナルコンピュータによって実行される手続きなどコンピュータ実行可能命令の一般的なコンテキストにおいて説明しる。一般に、手続きは、特定のタスクを実行し、または特定の抽象データタイプを実行するプログラムモジュール、ルーチン、関数、プログラム、オブジェクト、コンポーネント、データ構造などを含む。さらに、本発明は、ハンドヘルドデバイス、マルチプロセッサシステム、マイクロプロセッサをベースとし、またはプログラム可能な家電、ネットワークＰＣ、ミニコンピュータ、メインフレームコンピュータなどを含めて、他のコンピュータシステム構成と共に実施することができることを、当業者なら理解できるであろう。本発明はまた、通信ネットワークを介してリンクされた遠隔処理デバイスによってタスクが実行される分散コンピューティング環境内で実施することができる。分散コンピューティング環境では、プログラムモジュールは、ローカルおよび遠隔の双方のメモリ記憶デバイス内に位置する可能性がある。コンピュータシステムという用語は、分散コンピューティング環境内で見出すことができるものなど、コンピュータ群からなるシステムを呼ぶために使用する。
【００２０】
図１は、本発明を実施することができる好適なコンピューティングシステム環境１００の一例を示す。コンピューティングシステム環境１００は、好適なコンピューティング環境の一例にすぎず、本発明の使用または機能の範囲についてどのような制限も示唆しないものとする。コンピューティング環境１００は、例示的な動作環境１００に示されている構成要素のいずれか１つまたは組合せに関してどのような依存性も要件も有すると解釈すべきでない。本発明のある実施形態は、例示的な動作環境１００に示されている各構成要素を含んではいるが、本発明の別の、より典型的な実施形態は、ネットワーク通信に必要とされるもの以外、不可欠でない構成要素、たとえば入力／出力デバイスは除かれている。
【００２１】
図１を参照すると、本発明を実施するための例示的なシステムは、コンピュータ１１０の形態で汎用コンピューティングデバイスを備えている。コンピュータ１１０の構成要素には、それだけには限らないが、処理装置１２０、システムメモリ１３０、およびシステムメモリを含む様々なシステム構成要素を処理装置１２０に結合するシステムバス１２１が含まれる。システムバス１２１は、様々なバスアーキテクチャのいずれかを使用する、メモリバスまたはメモリコントローラ、周辺機器バス、およびローカルバスを含むいくつかのタイプのバス構造のいずれかとすることができる。限定ではなく例を挙げると、そのようなアーキテクチャには、ＩＳＡ（Ｉｎｄｕｓｔｒｙ  Ｓｔａｎｄａｒｄ  Ａｒｃｈｉｔｅｃｔｕｒｅ）バス、ＭＣＡ（Ｍｉｃｒｏ  Ｃｈａｎｎｅｌ  Ａｒｃｈｉｔｅｃｔｕｒｅ）バス、ＥＩＳＡ（Ｅｎｈａｎｃｅｄ  ＩＳＡ）バス、ＶＥＳＡ（Ｖｉｄｅｏ  Ｅｌｅｃｔｒｏｎｉｃｓ  Ｓｔａｎｄａｒｄｓ  Ａｓｓｏｃｉａｔｉｏｎ）ローカルバス、およびメザニンバスとしても知られるＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ）バスが含まれる。
【００２２】
コンピュータ１１０は、一般に、様々なコンピュータ読取可能な媒体を含む。コンピュータ読取可能な媒体は、コンピュータ１１０によってアクセスすることができる任意の入手可能な媒体とすることができ、揮発性媒体と不揮発性媒体、取外し式媒体と固定式媒体を共に含む。限定ではなく例を挙げると、コンピュータ読取可能な媒体は、コンピュータ記憶媒体と通信媒体を含むことができる。コンピュータ記憶媒体には、コンピュータ読取可能命令、データ構造、プログラムモジュール、または他のデータなど、情報を記憶するための任意の方法または技術で実施される揮発性と不揮発性、取外し式と固定式の媒体が含まれる。コンピュータ記憶媒体には、それだけには限らないが、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリもしくは他のメモリ技術、ＣＤ−ＲＯＭ、デジタル多用途ディスク（ＤＶＤ）もしくは他の光ディスク記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置もしくは他の磁気記憶デバイス、または所望の情報を記憶するために使用することができ、コンピュータ１１０によってアクセスすることができる他の任意の媒体が含まれる。通信媒体は、一般に、コンピュータ読取可能命令、データ構造、プログラムモジュール、または他のデータを、搬送波または他の移送機構など変調データ信号に統合し、任意の情報送達媒体を含む。「変調データ信号」という用語は、情報を信号に符号化するようにその特性の１つまたは複数が設定された、または変化した信号を意味する。限定ではなく例を挙げると、通信媒体には、有線ネットワークまたは直接配線接続など有線媒体と、音響、ＲＦ、赤外線および他の無線媒体など無線媒体とが含まれる。上記のいずれかの組合せもまた、コンピュータ読取可能な媒体の範囲内に含まれるべきである。
【００２３】
システムメモリ１３０は、読出し専用メモリ（ＲＯＭ）１３１およびランダムアクセスメモリ（ＲＡＭ）１３２など揮発性および／または不揮発性メモリの形態でコンピュータ記憶媒体を含む。起動中などにコンピュータ１１０内の要素間で情報を転送するのを助ける基本ルーチンを含む基本入出力システム（ＢＩＯＳ）１３３は、一般にＲＯＭ１３１内に記憶されている。一般にＲＡＭ１３２は、処理装置１２０によって直ちにアクセス可能な、および／または現在処理されているデータおよび／またはプログラムモジュールを含む。限定ではなく例を挙げると、図１は、オペレーティングシステム１３４、アプリケーションプログラム１３５、他のプログラムモジュール１３６、プログラムデータ１３７を示す。
【００２４】
コンピュータ１１０はまた、他の取外し式／固定式、揮発性／不揮発性コンピュータ記憶媒体を含むことができる。例示にすぎないが、図１は、固定式の不揮発性磁気媒体との間で読出しまたは書込みをするハードディスクドライブ１４１、取外し式の不揮発性磁気ディスク１５２との間で読出しまたは書込みをする磁気ディスクドライブ１５１、ＣＤ  ＲＯＭまたは他の光媒体など取外し式の不揮発性光ディスク１５６との間で読出しまたは書込みをする光ディスクドライブ１５５を示す。例示的な動作環境内で使用することができる他の取外し式／固定式、揮発性／不揮発性コンピュータ記憶媒体には、それだけには限らないが、磁気テープカセット、フラッシュメモリカード、デジタル多用途ディスク、デジタルビデオテープ、固体ＲＡＭ、固体ＲＯＭなどが含まれる。一般にハードディスクドライブ１４１は、インターフェース１４０など固定式メモリインターフェースを介してシステムバス１２１に接続され、磁気ディスクドライブ１５１および光ディスクドライブ１５５は、一般に、インターフェース１５０など取外し式メモリインターフェースによってシステムバス１２１に接続される。
【００２５】
上述し、図１に示すドライブとその関連のコンピュータ記憶媒体は、コンピュータ１１０のためのコンピュータ読取可能命令、データ構造、プログラムモジュール、および他のデータを記憶する。たとえば、図１では、ハードディスクドライブ１４１が、オペレーティングシステム１４４、アプリケーションプログラム１４５、他のプログラムモジュール１４６、プログラムデータ１４７を記憶するものとして示されている。これらの構成要素は、オペレーティングシステム１３４、アプリケーションプログラム１３５、他のプログラムモジュール１３６、プログラムデータ１３７と同じとすることも異なるものとすることもできることに留意されたい。ここでは、オペレーティングシステム１４４、アプリケーションプログラム１４５、他のプログラムモジュール１４６、プログラムデータ１４７は、これらが最低でも異なるコピーであることを示すために異なる符号が付与されている。ユーザは、タブレットまたは電子デジタイザ（図示せず）、マイクロフォン（図示せず）、キーボード１６２、および一般にマウス、トラックボール、またはタッチパッドと呼ばれるポインティングデバイス１６１など、入力デバイスを介してコンピュータ１１０にコマンドおよび情報を入力することができる。他の入力デバイス（図示せず）には、マイクロフォン、ジョイスティック、ゲームパッド、衛星パラボラアンテナ、スキャナなどが含まれる。これらの、また他の入力デバイスは、システムバスに結合されているユーザ入力インターフェース１６０を介して処理装置１２０に接続されることがしばしばであるが、パラレルポート、ゲームポート、またはユニバーサルシリアルバス（ＵＳＢ）など、他のインターフェースおよびバス構造によって接続することができる。また、モニタ１９１または他のタイプのディスプレイデバイスを、ビデオインターフェース１９０などのインターフェースを介してシステムバス１２１に接続することができる。モニタ１９１はまた、タッチスクリーンパネルなどと一体化することができる。モニタおよび／またはタッチスクリーンパネルは、タブレットタイプのパーソナルコンピュータなど、コンピューティングデバイス１１０が組み込まれるハウジングに物理的に結合することができる。さらに、コンピューティングデバイス１１０などコンピュータはまた、スピーカ１９７やプリンタ１９６など他の周辺出力デバイスをも含むことができ、これらは、出力周辺機器インターフェース１９５などを介して接続することができる。
【００２６】
コンピュータ１１０は、遠隔コンピュータ１８０など、１つまたは複数の遠隔コンピュータに対する論理接続を使用してネットワーク環境内で動作することができる。遠隔コンピュータ１８０は、パーソナルコンピュータ、サーバ、ルータ、ネットワークＰＣ、ピアデバイスまたは他の共通ネットワークノードとすることができ、図１には、メモリ記憶デバイス１８１だけが示されているが、一般に、コンピュータ１１０に関して上述した要素の多数または全部を含む。図１に示されている論理接続は、ローカルエリアネットワーク（ＬＡＮ）１７１と広域ネットワーク（ＷＡＮ）１７３を含むが、他のネットワークを含むこともできる。そのようなネットワーク環境は、事務所、全社コンピュータネットワーク、イントラネット、インターネットで普通である。たとえば、本発明では、コンピュータ１１０は、データの移動もとであるソースマシンを含み、遠隔コンピュータ１８０は、宛先マシンを含むことができる。しかし、ソースマシンおよび宛先マシンは、ネットワークまたは任意の他の手段によって接続されている必要はなく、データは、ソースプラットフォームによって書き込み、宛先プラットフォームまたはプラットフォーム群によって読み出すことが可能な任意の媒体を介して移動させることができる。
【００２７】
コンピュータ１１０は、ＬＡＮネットワーク環境内で使用されるとき、ネットワークインターフェースまたはアダプタ１７０を介してＬＡＮ１７１に接続される。コンピュータ１１０は一般に、ＷＡＮネットワーク環境内で使用されるとき、インターネットなどＷＡＮ１７３を介して通信を確立するためのモデム１７２または他の手段を含む。モデム１７２は、内部にあっても外部にあってもよく、ユーザ入力インターフェース１６０または他の適切な機構を介してシステムバス１２１に接続することができる。ネットワーク環境では、コンピュータ１１０に関して示されたプログラムモジュール、またはその一部分を、遠隔メモリ記憶装置内に記憶することができる。限定ではなく例を挙げると、図１は、メモリデバイス１８１に常駐するものとして遠隔アプリケーションプログラム１８５を示す。図のネットワーク接続は例示的なものであり、コンピュータ間で通信リンクを確立する他の手段を使用することができることを理解されたい。
【００２８】
本発明は、様々な動的なネットワーク環境内で使用される移動および固定コンピューティングデバイス／マシン内に組み込まれる可能性がある。そのような環境では、通信のための好ましい方法は、使用可能な媒体の組が変化したとき、特定の媒体上のサービス品質が変化したとき、および／または様々な通信媒体に対するワークロードが変化したときで、変わる可能性がある。図２に参照すると、本発明を利用することができるワイヤレスコンピューティング環境の単純な一例が示されている。この例示的な環境では、ノートブックコンピュータ２００が、複数の通信媒体を介した通信を容易にする複数のネットワークインターフェースカード（特に図示せず）を含んでいる。図２に示されている特定の例では、ノートブックコンピュータ２００は、（ＷＷＡＮ媒体を介して）セルラ伝送タワー２０２、およびローカルエリアネットワーク２０６に通信可能に結合されるワイヤレストランシーバ２０４と（ＷＬＡＮ媒体を介して）通信する。
【００２９】
（ワイヤレスアクセスポイントまたはＷＡＰとも呼ばれる）ワイヤレストランシーバ２０４は、ＬＡＮ２０６上の様々なリソースに対してアクセスを実現する。たとえば、ワイヤレストランシーバ２０４は、ファイルサーバ２０８上で維持されているディレクトリ／ファイルに対する、ノートブックコンピュータ２００によるアクセスを実現する。また、ＬＡＮ２０６は、ノートブックコンピュータ２００のユーザを含むＬＡＮ２０６のユーザによる、インターネット２１２に対するアクセスを実現するゲートウェイ／ファイアウォール／モデム２１０を含む。ゲートウェイ／ファイアウォール／モデム２１０はまた、インターネット２１２のユーザによるＬＡＮ２０６上のリソースに対するアクセスを実現する。
【００３０】
ノートブックコンピュータ２００のユーザは、複数のネットワーク媒体がサポートされている結果、複数の通信媒体を介してインターネット２１２と、（インターネット２１２を介して）ファイルサーバ２０８とにアクセスすることができる。たとえば、ノートブックコンピュータ２００は、ＷＷＡＮネットワークインターフェースを使用して、セルラ伝送タワー２０２を含むセルラネットワークを介してＷＷＡＮ２１３およびインターネット２１２にアクセスすることができる。または、これに替えて、ノートブックコンピュータ２００は、ワイヤレストランシーバ２０４を介してＬＡＮ２０６上のリソースにアクセスする。図の例のＬＡＮ２０６は、適切に認証されたノートブックコンピュータ２００のユーザが、２つの例示的に示されているワイヤレスネットワーク媒体のどちらかを介してインターネット２１２およびＬＡＮ２０６のリソースにアクセスすることを可能にするネットワークアクセス／プロキシサーバを備えることを仮定したものである。ノートブックコンピュータは複数の媒体を介して同じリソースにアクセスすることができるので、ノートブックコンピュータ２００のユーザの現在の条件、必要、嗜好などに基づいてワイヤレスネットワーク媒体の特定の１つが選択される潜在的な可能性を許すこととなる。たとえば、そのネットワークの他のユーザ（たとえば、ワイヤレストランシーバ２０４を介して接続されたＰＣ２１４やハードワイヤードＰＣ２１６）は、制限されたネットワーク帯域幅を競い、および／または複数のネットワーク媒体の特定の１つを介した通信の質を劣化させる。さらに、ＰＣ２１４は、ワイヤレスユーザインターフェースデバイス（マウスおよびキーボード）を使用するため、他のワイヤレス通信を劣化させる信号干渉を生じさせる可能性がある。そのような場合、あまり動的でない嗜好リストでは、現在のネットワーク環境条件下でノートブック２００のユーザの特定の必要を満たすのに使用可能な最良の接続を選択することができない。
【００３１】
本発明を実施するノートブックコンピュータ２００内に組み込まれたローミング（ネットワークおよびインターフェース選択）エンジンは、ノートブックコンピュータ２００の、ネットワークインターフェースおよび関連ネットワークの組のうち１つまたは複数を選択し、ノートブックコンピュータ２００の現在のネットワーキングのニーズに応えるため、複数のサポートされているネットワーク媒体インターフェースに関連する情報に基準を適用する。ローミングエンジンは、複数のネットワークインターフェースによって供給された状況／能力情報に基づいて、その複数のネットワークインターフェースの各々についての自動化されたネットワーク／インターフェース選択意志の決定を可能とする。ローミングエンジンは、接続を確立するための現在好ましいネットワーク／インターフェースの組合せを選択すると、他のネットワーク／媒体の組合せの現在の状況／能力に関する情報を考慮することが可能となる。嗜好リストに加えて、ローミングエンジンは、ネットワークインターフェース／ネットワーク選択判断の際に、特定のリソースの可用性、ネットワーク速度（最大／実際）、日／時、ならびにローミングエンジンによって得ることができる任意の他の所望の要因に基づいて行なうことができる。したがって、ノートブックコンピュータ２００の多重ネットワークインターフェースの構成を決定する情報の範囲と要因の幅（各々潜在的に複数の媒体を包含する）は、所望の接続を確立するために使用可能なネットワークインターフェースが識別されるまで、嗜好によって順序付けられた単一の媒体（たとえばＷＬＡＮ）についてネットワークインターフェースのリストを単になめるだけの嗜好リストに比べて、著しく拡大する。
【００３２】
以上、本発明が組み込まれることが好ましい例示的なワイヤレスネットワーク環境について述べたので、ノートブックコンピュータ２００（または任意の他のコンピューティングデバイス）内に組み込むための例示的なネットワークソフトウェアアーキテクチャ／フレームワークを略図により示す図３を参照する。このネットワークソフトウェアアーキテクチャの特徴は、ローミングサービス３００などユーザモード接続サービスエンティティ内に組み込まれる集中調整制御である。
【００３３】
物理ネットワークインターフェースレベルから始めると、図のアーキテクチャでは、様々な媒体タイプ（たとえば、Ｂｌｕｅｔｏｏｔｈ、ＷＷＡＮ、ＷＬＡＮたとえば８０２．１１ａ／ｂ／ｇなど）のＮ個の媒体固有のドライバ３０２の１組は、コンピュータ２００にインストールされたＮ枚の現在存在するネットワークインターフェースカード（ＮＩＣ）の１組に関連付けられている。図の例では、媒体固有のドライバ３０２の各々は、対応するＮＩＣと通信する。そのような通信には、とりわけＮＩＣによって提供される状況／能力情報が含まれる。そのような状況／能力情報は、たとえば、ドライバ３０２による要求に応じてＮＩＣによって実行される定期的なスキャンによって得られる。要求に応じて、Ｎ個の媒体固有のドライバ３０２によって収集された状況／能力情報は、動的データストア３０４に渡され、その中に記憶される。使用可能なワイヤレスデバイスおよびネットワーク用の周波数帯を探索するためのスキャンコマンドを受信することに加えて、ＮＩＣはまた、ドライバ３０２から構成コマンドを受信する。
【００３４】
本発明の一実施形態において、前述のネットワークインターフェース状況／能力情報および通知は、共通のローミングサービスＡＰＩ３１０を介して、アプリケーション、装備サービス３０５（たとえば、ワイヤレスＩＳＰ）、グループポリシーサービス３０６、ユーザインターフェース３０８によってアクセス可能であることに留意されたい。例を挙げると、共通ローミングサービスＡＰＩ３１０は、ユーザインターフェース３０８またはグループポリシーサービス３０６を介して照会および変更するための呼出し可能なメソッド／演算／関数と、嗜好リストと、可視リストと、媒体構成と、デバイス状態と、ユーザ認証データと、ネットワーク構成とを含む。
【００３５】
本発明の一実施形態において、１組の媒体固有のモジュール３２０は、特定の媒体種類に関連する自動ネットワークおよびインターフェース選択並びにネットワーク通信をサポートする。図の例では、その１組の媒体固有のモジュール３２０には、８０２．３モジュール、８０２．１１モジュール、ＷＷＡＮモジュール、ＤＳＬモジュールが含まれる。媒体固有のモジュール３２０は、ローミングサービスエンティティ３００に代わって媒体固有のドライバに能力／状況情報を要求し、媒体固有のドライバと通信し、サポートされている媒体の種類の、関連する媒体固有のドライバによるネットワークインターフェースのスキャンを起動する。
【００３６】
ネットワークインターフェース構成コマンドは、特定のネットワークまたはネットワーク群に接続するため、媒体固有のモジュール３２０の１つ（または複数）に対し出される。ローミングサービスエンティティ３００から受信された構成命令に応答して、媒体固有のモジュール３２０は、その関連する媒体固有のドライバに対し呼出しを行うことによって、識別されたネットワークインターフェースに関連付けられた接続への変更を開始する。例示的な実施形態において、媒体固有のモジュール３２０の各々は、上述の機能を実行するための状態マシンを組み込んでいる。例示的な実施形態は、特定の媒体の種類タイプ、またはあるクラスの媒体タイプについて媒体固有のモジュールを提供しているが、本発明の代替の諸実施形態は、複数の、無関係の媒体タイプをサポートする複合の媒体固有モジュール（たとえば、ＷＷＡＮ／ＷＬＡＮ媒体固有モジュール）を含むことが企図されている。
【００３７】
媒体固有のモジュール３２０は、２つのインターフェースに関連付けられている。媒体固有のモジュール３２０は、媒体固有の調整コンポーネント３２２内に組み込まれた汎用インターフェースを介してローミングサービスエンティティと通信する。ローミングエンジンと自動構成エンジンを備える調整コンポーネント３２２は、外部データの調整を行い、必要に応じて情報を記憶する。ユーザモード媒体固有モジュール３２０は、たとえば、（カーネルモードの）ネットワークドライバインターフェース指定（ＮＤＩＳ）３４０に従って、媒体固有のドライバ３０２と通信する。本発明の一実施形態において、媒体固有のモジュール３２０は、オブジェクト識別子（ＯＩＤ）を使用して、ＮＤＩＳに従って媒体固有のドライバ３０２と通信する。
【００３８】
本発明の一実施形態において、媒体固有のドライバ３０２の各々は、それ自体の情報ベースを備えており、そのドライバは、管理エンティティが照会または設定することができる動的構成情報および静的情報をこの情報ベースに記憶する。イーサネット（登録商標）マルチキャストアドレスリストは、構成情報の一例である。受信されたブロードキャストパケットの数は、静的情報の一例である。情報ベース内の各情報要素は、オブジェクトと呼ばれ、ＯＩＤを介して参照される。したがって、管理エンティティが特定の管理されるオブジェクトを照会または設定したいと望む場合、管理エンティティは、そのオブジェクトに特定のＯＩＤを設ける。
【００３９】
本発明の一実施形態によるＯＩＤの構造は、図４に示す。ＯＩＤの最初の３バイトは、ＯＩＤの様々な分類への鍵を提供する。第４のバイトは、これらの分類内の特定の情報管理オブジェクトを識別する。
【００４０】
先に指摘しているように、本発明の一実施形態において、ローミングサービスなどユーザモード接続サービスは、インターフェースを介してＷＷＡＮドライバにリンクされる。本発明の好ましい実施形態において、このインターフェースに沿った通信は、ＮＤＩＳに従うものである。コマンド／制御動作の場合、ローミングサービスとＷＷＡＮドライバとは、ＯＩＤを交換することによって通信を行なう。誰がアクションを開始しているか、およびどこを制御データが流れているかに応じて、３つのプリミティブ（ＳＥＴ、ＱＵＥＲＹ、ＩＮＤＩＣＡＴＥ）が使用可能である。ＳＥＴは、ローミングサービスによって呼び出され、データ構造をＷＷＡＮドライバに送信する。ＱＵＥＲＹもまたローミングサービスによって呼び出されるが、ＷＷＡＮドライバにデータ構造をローミングサービスまで送信させる。ＩＮＤＩＣＡＴＥはＷＷＡＮドライバによって呼び出され、ＷＷＡＮドライバが率先してデータ構造をローミングサービスまで送信することを可能にする。各々の場合において、オブジェクト識別子（ＯＩＤ）はデータ構造と共に渡され、それに応じて、受信側はデータ構造を型変換する（ｃａｓｔ）ことが可能となる。
【００４１】
本発明の一実施形態において、ＷＷＡＮドライバは、下表１のように、ＳＥＴ要求に応答するためにＭｉｎｉｐｏｒｔＳｅｔＩｎｆｏｒｍａｔｉｏｎＮＤＩＳハンドラを実装する。
【００４２】
【表１】
2005141737.tif 000003
【００４３】
この実施形態によれば、ＭｉｎｉｐｏｒｔＡｄａｐｔｅｒＣｏｎｔｅｘｔは、ミニポートドライバによって割り振られたコンテキスト領域に対するハンドルを指定するが、その領域ではドライバは、ＭｉｎｉｐｏｒｔＩｎｉｔｉａｌｉｚｅによって設定されたＮＩＣ毎状態を維持する。Ｏｉｄパラメータは、ドライバが実行すべきＳＥＴ動作を指定するシステム規定のＯＩＤ＿ＸＸＸコードを指定する。ＩｎｆｏｒｍａｔｉｏｎＢｕｆｆｅｒは、設定のためにＭｉｎｉｐｏｒｔＳｅｔＩｎｆｏｒｍａｔｉｏｎによって使用されるＯＩＤ特有のデータを含んでいるバッファに対するポインタである。ＩｎｆｏｒｍａｔｉｏｎＢｕｆｆｅｒＬｅｎｇｔｈは、ＩｎｆｏｒｍａｔｉｏｎＢｕｆｆｅｒ部でバイト数を指定する。ＢｙｔｅｓＲｅａｄは、ＭｉｎｉｐｏｒｔＳｅｔＩｎｆｏｒｍａｔｉｏｎが、ＩｎｆｏｒｍａｔｉｏｎＢｕｆｆｅｒ部でバッファから読み出すバイト数に設定する変数に対するポインタである。ＢｙｔｅｓＮｅｅｄｅｄは、ＩｎｆｏｒｍａｔｉｏｎＢｕｆｆｅｒＬｅｎｇｔｈがＯｉｄによって必要とされるものより小さい場合に、ＭｉｎｉｐｏｒｔＳｅｔＩｎｆｏｒｍａｔｉｏｎが、要求を満たすために必要とする総バイト数に設定する変数に対するポインタである。
【００４４】
本発明の一実施形態において、ＷＷＡＮドライバは、下表２のように、ＱＵＥＲＹ要求に応答するためにＭｉｎｉｐｏｒｔＱｕｅｒｙＩｎｆｏｒｍａｔｉｏｎＮＤＩＳハンドラを実装する。
【００４５】
【表２】
2005141737.tif 000004
【００４６】
この実施形態によれば、ＭｉｎｉｐｏｒｔＡｄａｐｔｅｒＣｏｎｔｅｘｔは、ミニポートドライバによって割り振られたコンテキスト領域に対するハンドルを指定するが、この領域でドライバは、ＭｉｎｉｐｏｒｔＩｎｉｔｉａｌｉｚｅによって設定されたＮＩＣ毎状態を維持する。Ｏｉｄパラメータは、ドライバが実行すべきグローバルクエリ動作を指定するシステム規定のＯＩＤ＿ＸＸＸコードを指定する。ＩｎｆｏｒｍａｔｉｏｎＢｕｆｆｅｒは、ＭｉｎｉｐｏｒｔＱｕｅｒｙＩｎｆｏｒｍａｔｉｏｎがＯＩＤ特有の情報を返すべきバッファに対するポインタである。ＩｎｆｏｒｍａｔｉｏｎＢｕｆｆｅｒＬｅｎｇｔｈは、ＩｎｆｏｒｍａｔｉｏｎＢｕｆｆｅｒ部でバイト数を指定する。ＢｙｔｅｓＷｒｉｔｔｅｎは、ＭｉｎｉｐｏｒｔＱｕｅｒｙＩｎｆｏｒｍａｔｉｏｎが、ＩｎｆｏｒｍａｔｉｏｎＢｕｆｆｅｒ部で返しつつあるバイト数に設定する変数に対するポインタである。ＢｙｔｅｓＮｅｅｄｅｄは、ＩｎｆｏｒｍａｔｉｏｎＢｕｆｆｅｒＬｅｎｇｔｈがＯｉｄによって必要とされるものより小さい場合に、ＭｉｎｉｐｏｒｔＱｕｅｒｙＩｎｆｏｒｍａｔｉｏｎが、要求を満たすために必要とする総バイト数に設定する変数に対するポインタである。
【００４７】
本発明の一実施形態において、指示の送信は、下表３のように、ＮｄｉｓＭＩｎｄｉｃａｔｅＳｔａｔｕｓを呼び出すことによって行なわれる。
【００４８】
【表３】
2005141737.tif 000005
【００４９】
この実施形態によれば、非送信請求型指示について、ＧｅｎｅｒａｌＳｔａｔｕｓパラメータがＮＤＩＳ＿ＳＴＡＴＵＳ＿ＷＷ＿ＩＮＤＩＣＡＴＩＯＮに設定される。非同期応答の場合、ＮＤＩＳ＿ＳＴＡＴＵＳ＿ＷＷ＿ＡＳＹＮＣ＿ＲＥＳＰＯＮＳＥに設定される。非送信請求型通信の場合、ＳｔａｔｕｓＢｕｆｆｅｒパラメータが、表４に示されているデータ構造内でパッケージされたデータを含む。ＳｔａｔｕｓＢｕｆｆｅｒＳｉｚｅは、ＳｔａｔｕｓＢｕｆｆｅｒの総サイズを含む。
【００５０】
【表４】
2005141737.tif 000006
【００５１】
次に、非同期動作のためのセマンティクスについて、図５を参照しながら述べる。本発明の一実施形態において、ＳＥＴコマンドとＱＵＥＲＹコマンドは、迅速に返す動作のために、規定されているように使用される。ＷＷＡＮドライバ５５０は、そのようなコマンドを受信したとき、その要求を処理し、完了応答を適時に返す。しかし、いくつかのＷＷＡＮ動作（たとえば、アクセス可能な（ｖｉｓｉｂｌｅ）事業者を探索し、あるいは加入者識別モジュールまたはＳＩＭからエントリを読み出すこと）を完了するのに数秒程度かかる可能性がある。典型的には、ＮＤＩＳ５５２は、（ＮｄｉｓＭＳｅｔＩｎｆｏｒｍａｔｉｏｎＣｏｍｐｌｅｔｅまたはＮｄｉｓＭＱｕｅｒｙＩｎｆｏｒｍａｔｉｏｎＣｏｍｐｌｅｔｅが使用される場合でも）ＯＩＤコマンドをシリアル化する。したがって、本発明の一実施形態によれば、ＷＷＡＮデバイスと対話する大抵の動作は、ＳＥＴ／ＩＮＤＩＣＡＴＥセマンティクスに基づいて、以下の非同期機構を使用する。
【００５２】
ＳＥＴ５５４に応じて、ＩｎｆｏｒｍａｔｉｏｎＢｕｆｆｅｒおよびＩｎｆｏｒｍａｔｉｏｎＢｕｆｆｅｒＬｅｎｇｔｈは、表５に示されているデータ構造を指す。
【００５３】
【表５】
2005141737.tif 000007
【００５４】
即時のエラー条件がある場合、ＷＷＡＮドライバは、直ちにＳＥＴコマンドを失敗にする。そうでない場合には、ＷＷＡＮドライバは、直ちに成功を返し、次いで動作の実行を開始する。戻り動作５５６で許される戻り値が表６に示されている。
【００５５】
【表６】
2005141737.tif 000008
【００５６】
戻り動作５５６まで、ＮＤＩＳ  ＯＩＤチャネル５０４は、他のＯＩＤについて遮断される。戻り動作５５６の後で、ＮＤＩＳ  ＯＩＤチャネル５０４が、より非同期な要求を含む可能性がある他のＯＩＤについて開かれる。ＷＷＡＮデバイスドライバは、ＷＷＡＮデバイスドライバ５５０の情報ベース内に記憶される要求のＲｅｑｕｅｓｔＩＤパラメータを介して、未完の非同期要求を追跡する。ＷＷＡＮデバイスドライバ５５０が、要求された動作を完了したとき、ＷＷＡＮドライバ５５０は、元の非同期ＳＥＴ要求５５４からのＲｅｑｕｅｓｔＩＤパラメータに合致する、表７に示されているデータ構造をＯｂｊｅｃｔＤａｔａＳｉｚｅおよびＯｂｊｅｃｔＤａｔａＯｆｆｓｅｔが指した状態で、ＯＩＤタイプＯＩＤ＿ＷＷ＿ＡＳＹＮＣ＿ＲＥＳＰＯＮＳＥのＩＮＤＩＣＡＴＥ５５８を送信する。
【００５７】
【表７】
2005141737.tif 000009
【００５８】
ＲｅｑｕｅｓｔＩＤパラメータは、ＳＥＴ５５４に応じてどのような値が渡されても合致する。本発明の一実施形態において、応答のＲｅｓｕｌｔＣｏｄｅは、表８に示されている値の１つである。
【００５９】
【表８−１】
2005141737.tif 000010
【００６０】
【表８−２】
2005141737.tif 000011
【００６１】
次に、本発明の一実施形態で使用される、ＷＷＡＮドライバに規定されたＯＩＤおよび状況指示について、図６を参照しながら説明する。これらのＯＩＤは、どのＮＤＩＳミニポートドライバにもサポートされていることが必要な他の必須のＯＩＤおよび指示に加えられるものである。いくつかのＯＩＤおよび状況指示は、使用される技術のタイプに基づいて必要とされる。与えられている指示値は、ＮＤＩＳ＿ＳＴＡＴＵＳ＿ＷＷ＿ＩＮＤＩＣＡＴＩＯＮ状況タイプのためのものだけである。
【００６２】
本発明の一実施形態において、いくつかのＯＩＤがドライバ初期化６０２をサポートする。ドライバ初期化をサポートするために使用されるＯＩＤの説明は、以下の通りである。
【００６３】
ＯＩＤ＿ＧＥＮ＿ＭＥＤＩＡ＿ＳＵＰＰＯＲＴＥＤ。ミニポートは、照会されると、ＮｄｉｓＭｅｄｉｕｍ８０２＿３を返さなければならない。これは、ＷＷＡＮドライバが、ＤＨＣＰサーバおよびＡＲＰ解決をスプーフィングすることが必要になることを意味する。
【００６４】
ＯＩＤ＿ＧＥＮ＿ＰＨＹＳＩＣＡＬ＿ＭＥＤＩＵＭ。ミニポートは、照会されると、ＮｄｉｓＰｈｙｓｉｃａｌＭｅｄｉｕｍＷｉｒｅｌｅｓｓＷａｎを返さなければならない。ローミングサービスは、どのＷＷＡＮ  ＯＩＤアクションをも実行する前に、この値を得ることが必要とされる。
【００６５】
ＯＩＤ＿ＷＷ＿ＮＥＧＯＴＩＡＴＥ＿ＶＥＲＳＩＯＮ。このオブジェクトは、ローミングサービスとＷＷＡＮドライバとの間でインターフェースのバージョンをネゴシエートするために使用される。最初に、ローミングサービスがＳＥＴを行い、どのバージョンをサポートするかＷＷＡＮドライバに告げる。次いで、ローミングサービスはＱＵＥＲＹを実行し、ＷＷＡＮドライバによってサポートされているバージョンが、ネゴシエートされたバージョンと共に返される。ローミングサービスは、さらにＷＷＡＮ  ＯＩＤアクションを実行する前に、ＷＷＡＮドライバとバージョンとをネゴシエートすることが必要となる。ＯＩＤ＿ＷＷ＿ＮＥＧＯＴＩＡＴＥ＿ＶＥＲＳＩＯＮオブジェクトをサポートするために使用されるデータ構造を表９に示す。ＱＵＥＲＹの前にＳＥＴが実行され、ＷＷＡＮドライバが、使用するのに良好なバージョンを見つけた場合、ＱＵＥＲＹによって返されるＮｅｇｏｔｉａｔｅｄＶｅｒｓｉｏｎパラメータは、使用すべきそのバージョンに設定される。ＳＥＴが実行されなかった、あるいは共通のバージョンが見つからなかった場合、ＮｅｇｏｔｉａｔｅｄＶｅｒｓｉｏｎパラメータは０ｘｆｆｆｆｆｆｆｆに設定され、これと後続のＳＥＴおよびＱＵＥＲＹ動作すべてについてエラーが生成され、ドライバは、どのようなＩＮＤＩＣＡＴＥも発行しない。
【００６６】
【表９】
2005141737.tif 000012
【００６７】
ＯＩＤ＿ＷＷ＿ＤＥＶＩＣＥ＿ＣＡＰＳ。このオブジェクトは、セルラ技術、サポートされているパケットデータのクラス、提供される音声サービスのタイプ、ならびにＳＩＭが使用されるかどうかを含めて、ＷＷＡＮドライバの能力を読み出すために使用される。最初と最後は、プロバイダ選択とＳＩＭユーザインターフェースがこれら２つの能力値によって決まることを考えると、特に重要である。製造者およびファームウェアリビジョンもまた、オプションのフィールドとして使用可能である。本発明の一実施形態による、ＯＩＤ＿ＷＷ＿ＤＥＶＩＣＥ＿ＣＡＰＳオブジェクトをサポートするデータ構造が、表１０に示されている。ＷｗａｎＤｅｖｉｃｅＴｙｐｅパラメータは、ローミングサービスデバイスに対して、そのデバイスがローカルであるか、それとも遠隔であるかを示す。ＷｗａｎＣｅｌｌｕｌａｒＣｌａｓｓパラメータは、プロバイダ登録モードなど、セルラ技術特有の機能を制御する。ＷｗａｎＣｅｌｌｕｌａｒＣｌａｓｓＧｓｍに設定されたとき、手動モードと自動モードが許される。ＷｗａｎＣｅｌｌｕｌａｒＣｌａｓｓＣｄｍａに設定されたとき、自動モードだけが許される。ＷｗａｎＶｏｉｃｅＣｌａｓｓパラメータは、音声サービスの存在すること、および、そのようなサービスがどのようにデータサービスと対話するかを示す。ＷｗａｎＳｉｍＣｌａｓｓパラメータは、ローミングサービスがＳＩＭ特有の動作を実行すべきかどうかを制御する。ＷｗａｎＤａｔａＣｌａｓｓビットフィールドパラメータは、どのデータサービスがサポートされているかを示す。Ｍａｎｕｆａｃｔｕｒｅｒフィールドは、製造者ストリングを指す。Ｍｏｄｅｌフィールドは、モデルストリングを指す。Ｆｉｒｍｗａｒｅフィールドは、ファームウェアリビジョンストリングを指す。ＤｅｖＳｐｅｃｉｆｉｃＳｉｚｅフィールドおよびＤｅｖＳｐｅｃｉｆｉｃＯｆｆｓｅｔフィールドは、デバイス特有のインターフェース情報を指す。
【００６８】
【表１０−１】
2005141737.tif 000013
【００６９】
【表１０−２】
2005141737.tif 000014
【００７０】
本発明の一実施形態において、いくつかのＯＩＤがＷＷＡＮ初期化６０４をサポートする。ＷＷＡＮ初期化をサポートするために使用されるＯＩＤの説明は、以下の通りである。
【００７１】
ＯＩＤ＿ＷＷ＿ＩＮＩＴＩＡＬＩＺＥ。このオブジェクトに対するＳＥＴは、ローミングサービスが、ＷＷＡＮ初期化手順のための準備ができていることを示す。ＳＩＭが使用される場合、これもまたこの時点で初期化される。ここで渡されるデータ構造はない。デバイスは、このコマンドを受信する前に初期化を開始することができるが、ＯＩＤ＿ＷＷ＿ＲＥＡＤＹ＿ＳＴＡＴＥ指示を送信できるのは、ドライバがこの初期化ＯＩＤを受信した後だけである。ＰＩＮが使用可能な場合、ドライバは、ＷＷＡＮ＿ＮＯＴＩＦＹ＿ＰＩＮ＿ＳＴＡＴＥ指示を使用して、ＰＩＮが必要であることを示す。ドライバは、ネットワーク登録することができる状態になった後はいつでも、ＷＷＡＮ＿ＲＥＡＤＹ＿ＳＴＡＴＥ＿ＩＮＩＴＩＡＬＩＺＥＤを示す。システムがエアプレーンモードにある場合、トランシーバは、この時点で電源投入されない。ＷＷＡＮドライバが、ＯＩＤ＿ＷＷ＿ＩＮＩＴＩＡＬＩＺＥ  ＯＩＤを受信し、すでに初期化されている場合、ローミングサービスは、予期せず終了し、再起動されていた可能性がある。したがって、ドライバは、未完の要求をＷｗａｎＲｅｓｕｌｔＦａｉｌｕｒｅエラーをもって終了し、存在するどのインターフェースおよび接続も解体し、適切な初期化状態に戻る。
【００７２】
ＯＩＤ＿ＷＷ＿ＳＨＵＴＤＯＷＮ。このオブジェクトに対するＳＥＴは、ローミングサービスが、ドライバを非アクティブ化しようとしていることを示す。必要とされるデータ構造はない。任意のコンテキストの非アクティブ化、切離し、および登録解除など、クリーンアップ手順が始まる。ドライバは、これらの動作が行われたとき、関連の指示を送信することができるが、ローミングサービスは、いつＷＡＮシャットダウンが完了したかを知るために、ＷＷＡＮ＿ＲＥＡＤＹ＿ＳＴＡＴＥ＿ＳＨＵＴＤＯＷＮ通知を探すだけである。ローミングサービスは、あるタイムアウトが経過した後、ＷＡＮシャットダウンが完了したと想定することができる。ローミングサービスは、非同期イベントの完了を可能にするために、ある時間の間待つ。その後で、ローミングサービスは、残りのシャットダウン手順を続行する。
【００７３】
ＯＩＤ＿ＷＷ＿ＧＥＴ＿ＲＥＡＤＹ＿ＳＴＡＴＥおよびＮＤＩＳ＿ＷＷ＿ＲＥＡＤＹ＿ＳＴＡＴＥ。これらのオブジェクトによって、起動時およびシャットダウン時に、ある種の機能がいつ準備完了するかについて、ドライバがローミングサービスに知らせることができる（動作中に、変更が発生する可能性もあるが、可能性は低い）。これは主に、ドライバがＷＷＡＮデバイスを適切な状態にした後、ローミングサービスがトランシーバをアクティブ化し、ネットワーク上に登録することが可能となる。ＳＩＭ電話帳およびＳＭＳストアが初期化されるときなど、他の状態もまたサポートされている。初期化中、ローミングサービスは、ＷＷＡＮ＿ＲＥＡＤＹ＿ＳＴＡＴＥ＿ＩＮＩＴＩＡＬＩＺＥＤ指示を受信するまで登録に進まない。
【００７４】
本発明の一実施形態による、これらのＯＩＤをサポートするデータ構造が、表１１に示されている。Ｓｔａｔｅパラメータは、ＷＷＡＮ＿ＲＥＡＤＹ＿ＳＴＡＴＥ＿＊定数のビットフィールドである。Ｉｍｓｉパラメータは、加入者を識別するＩＭＳＩストリングを指す。ＷＷＡＮ＿ＲＥＡＤＹ＿ＳＴＡＴＥ＿ＩＮＩＴＩＡＬＩＺＥＤ状態に達するまで、この値を占有する必要はない。Ｉｍｅｉパラメータは、機器（ＧＳＭにおけるＩＭＥＩ、およびＣＤＭＡにおけるＥＳＮ）を識別するストリングを指す。ＷＷＡＮ＿ＲＥＡＤＹ＿ＳＴＡＴＥ＿ＩＮＩＴＩＡＬＩＺＥＤ状態に達するまで、この値を占有する必要はない。ＩｓｄｎＣｏｕｎｔパラメータ、ＩｓｄｎＬｉｓｔＳｉｚｅパラメータ、ＩｓｄｎＬｉｓｔＯｆｆｓｅｔパラメータは、加入者の電話番号を識別するＭＳＩＳＤＮストリングの配列を指す。それぞれヌルで終わり、最後の電話番号は、ダブルヌルで終わる。ＷＷＡＮ＿ＲＥＡＤＹ＿ＳＴＡＴＥ＿ＩＮＩＴＩＡＬＩＺＥＤ状態に達するまで、これらの値を占有する必要はない。
【００７５】
【表１１】
2005141737.tif 000015
【００７６】
本発明の一実施形態において、いくつかのＯＩＤがＰＩＮ動作６０６をサポートする。本発明の一実施形態による、ＰＩＮ動作ＯＩＤをサポートするデータ構造を表１２に示す。ＰＩＮ動作６０６をサポートするＯＩＤの説明は、以下の通りである。
【００７７】
ＯＩＤ＿ＷＷ＿ＧＥＴ＿ＰＩＮ＿ＳＴＡＴＥおよびＮＤＩＳ＿ＷＷ＿ＰＩＮ＿ＳＴＡＴＥ。これらのオブジェクトにより、ＰＩＮ、ＰＩＮ２、ＰＵＫ、ＰＵＫ２が必要である、など、起動時および動作中に様々なパスワード条件をドライバが示すことが可能となる。非ＳＩＭパスワードもまた、サポートされている。初期化中、ローミングサービスは、ＷｗａｎＰｉｎＳｔａｔｅＮｏｎｅ指示を受信するまで登録に進まない。ＯＩＤ＿ＷＷ＿ＧＥＴ＿ＰＩＮ＿ＳＴＡＴＥに対するＳＥＴは、現在の準備完了状態を非同期で照会するために使用される。ＷＷＡＮ＿ＡＳＹＮＣ＿ＲＥＱＵＥＳＴ構造体内のＤａｔａＳｉｚｅおよびＤａｔａＯｆｆｓｅｔは無視される。ＷＷＡＮ＿ＡＳＹＮＣ＿ＲＥＱＵＥＳＴ構造体内のＤａｔａＳｉｚｅおよびＤａｔａＯｆｆｓｅｔは、ＷＷＡＮ＿ＰＩＮ＿ＳＴＡＴＥ構造体を指す。ＮＤＩＳ＿ＷＷ＿ＰＩＮ＿ＳＴＡＴＥに対するＩＮＤＩＣＡＴＥは、準備完了状態値が変化したとき送信される。ＷＷＡＮ＿ＡＳＹＮＣ＿ＮＯＴＩＦＹ構造体内のＤａｔａＳｉｚｅおよびＤａｔａＯｆｆｓｅｔは、ＷＷＡＮ＿ＰＩＮ＿ＳＴＡＴＥ構造体を指す。本発明の一実施形態において、ＷＷＡＮドライバは、起動中にＷｗａｎＰｉｎＴｙｐｅＰｉｎが示された場合、緊急音声呼を処理する責任を負う。ユーザが実際にＰＩＮダイアログから緊急呼をダイアルした後だけ、トランシーバがアクティブ化され、自動登録が実行されて緊急呼が開始される。
【００７８】
ＯＩＤ＿ＷＷ＿ＳＥＴ＿ＰＩＮ。このオブジェクトに対するＳＥＴは、ＰＩＮをデバイスに送信する、あるいはＰＩＮ設定を使用可能／使用不能にする、あるいはＳＩＭ上のＰＩＮを変更するために使用される。ＰＩＮが必要とされる指示に応答して、ローミングサービスがＰＩＮエントリＵＩを表示することができない場合、あるいはユーザが取り消しを行なってダイアログから出る場合、ローミングサービスは、ＯＩＤ＿ＷＷ＿ＳＥＴ＿ＰＩＮ  ＯＩＤを送信し、ＷｗａｎＰｉｎＡｃｔｉｏｎＣａｎｃｅｌを設定する。次いで、ＷＷＡＮは、有効なＰＩＮが入力されるのを待っているどの未処理のコマンドについても適切なパスワードエラーを返す。
【００７９】
表１２に示されているＰＩＮ動作６０６をサポートするために使用されるデータ構造に関して、ＰｉｎＴｙｐｅパラメータはＷＷＡＮ＿ＰＩＮ＿ＴＹＰＥ値である。ＰｉｎＦｏｒｍａｔパラメータは、どの文字フォーマットがそのピンに許されるかを示す。ＰｉｎＬｅｎｇｔｈＭｉｎパラメータおよびＰｉｎＬｅｎｇｔｈＭａｘパラメータは、ＰＩＮについて入力しなければならない文字の最小数および最大数である。これらは、範囲が未知である場合、−１に設定される。ＷＷＡＮ＿ＰＩＮ＿ＴＹＰＥがＷｗａｎＰｉｎＴｙｐｅＮｏｎｅ以外のものを示す場合には、デバイスはＰＩＮを待ち、ＡｔｔｅｍｐｔｓＲｅｍａｉｎｉｎｇパラメータは、そのＰＩＮタイプについて試行が何回残っているかを示す。−１値は、未知を示す。ＰｉｎＡｃｔｉｏｎパラメータは、ＷＷＡＮ＿ＰＩＮ＿ＡＣＴＩＯＮ値である。Ｐｉｎパラメータは、送信するＰＩＮ、またはＰＩＮ設定を使用可能／使用不能にすることを必要とされるＰＩＮである。ＰＩＮコードを送信するか、またはＰＩＮを使用可能／使用不能にするとき、ＮｅｗＰｉｎフィールドは無視すべきである。ＰＵＫコードを送信するとき、ＰｉｎパラメータはＰＵＫコードを指し、ＮｅｗＰｉｎは、設定する新しいＰＩＮを指す。
【００８０】
【表１２−１】
2005141737.tif 000016
【００８１】
【表１２−２】
2005141737.tif 000017
【００８２】
本発明の一実施形態において、いくつかのＯＩＤによりプロバイダ動作６０８がサポートされる。
【００８３】
ＯＩＤ＿ＷＷ＿ＧＥＴ＿ＰＲＥＦＥＲＲＥＤ＿ＰＲＯＶＩＤＥＲＳおよびＯＩＤ＿ＷＷ＿ＳＥＴ＿ＰＲＥＦＥＲＲＥＤ＿ＰＲＯＶＩＤＥＲＳ。これらのオブジェクトは、デバイスまたはＳＩＭ上でローカルに記憶されている優先プロバイダのリストからエントリを読み出し、追加し、および削除するために使用される。これらのフィールドを読み出すためにネットワークに接触しないことが好ましい。本発明の一実施形態において、禁止されたプロバイダリストもまた使用可能な場合、これらのエントリは、そのリストに含まれ、それに応じてタグ付けされる。ＯＩＤ＿ＷＷ＿ＧＥＴ＿ＰＲＥＦＥＲＲＥＤ＿ＰＲＯＶＩＤＥＲＳに対するＳＥＴは、優先プロバイダのリストを非同期で照会するために使用される。ＯＩＤ＿ＷＷ＿ＳＥＴ＿ＰＲＥＦＥＲＲＥＤ＿ＰＲＯＶＩＤＥＲＳに対するＳＥＴは、優先プロバイダのリストを非同期で設定するために使用される。本発明の一実施形態においては、その全体のリストが渡される。個々の追加および削除は、追跡されない。ドライバは、キャッシュされたリストのコピーを保持し、個々の追加／削除を実行し、あるいは、リスト全体を単一の動作で上書きする。
【００８４】
ＯＩＤ＿ＷＷ＿ＧＥＴ＿ＶＩＳＩＢＬＥ＿ＰＲＯＶＩＤＥＲＳ。このオブジェクトは、現在デバイスの範囲内に存在するプロバイダのリストを得るために使用される。このＯＩＤに対するＳＥＴは、優先（ｐｒｅｆｅｒｒｅｄ）プロバイダのリストを非同期で照会する。ＷＷＡＮ＿ＡＳＹＮＣ＿ＲＥＳＰＯＮＳＥ内のＤａｔａＳｉｚｅおよびＤａｔａＯｆｆｓｅｔは、ＷＷＡＮ＿ＰＲＯＶＩＤＥＲ＿ＬＩＳＴ構造体を指す。スキャン動作は、３０秒以下であることが好ましい。この制限に達した場合、ドライバは、部分リストに戻る。
【００８５】
本発明の一実施形態による、これらのプロバイダ動作ＯＩＤ６０８をサポートするデータ構造を表１３に示す。
【００８６】
【表１３】
2005141737.tif 000018
【００８７】
ＰｒｏｖｉｄｅｒＩＤフィールドが必要である。ＧＳＭネットワークの場合、このストリングは通常、３桁の移動国コード（ＭＣＣ）と２桁または３桁の移動ネットワークコード（ＭＮＣ）との連結である。ＭＮＣコードは、０で予めパディングされ、位置合わせおよび構文解析のために３桁で設定されることが推奨される。Ｓｔａｔｅパラメータは、プロバイダエントリにタグ付けすることができる様々な状態を表す。ＰｒｏｖｉｄｅｒＮａｍｅパラメータは、好意的なプロバイダストリングを指す。ＵＩのために、このストリングは、２０文字を超えないことが好ましい。このフィールドは、ローミングサービスが優先プロバイダのリストを設定すると無視される。ＰｒｏｖｉｄｅｒＣｏｕｎｔパラメータ、ＰｒｏｖｉｄｅｒＬｉｓｔＳｉｚｅパラメータ、ＰｒｏｖｉｄｅｒＬｉｓｔＯｆｆｓｅｔパラメータは、ＷＷＡＮ＿ＰＲＯＶＩＤＥＲ構造体群のリストを形成する。
【００８８】
本発明の一実施形態において、いくつかのＯＩＤにより登録動作６１０がサポートされる。本発明の一実施形態による、登録動作ＯＩＤ６１０をサポートするデータ構造を表１４に示す。登録動作６１０をサポートするＯＩＤの説明は、以下の通りである。
【００８９】
ＯＩＤ＿ＷＷ＿ＧＥＴ＿ＲＥＧＩＳＴＥＲ＿ＳＴＡＴＥ、ＯＩＤ＿ＷＷ＿ＳＥＴ＿ＲＥＧＩＳＴＥＲ＿ＳＴＡＴＥ、ＮＤＩＳ＿ＷＷ＿ＲＥＧＩＳＴＥＲ＿ＳＴＡＴＥ。これらのオブジェクトにより、関連する状態クエリおよび指示と共に、トランシーバの電源を投入し、および登録を実行することが可能となる。自動および手動の登録モードがサポートされている。ドライバは、登録が成功した後で、パケット添付を自動的に開始する。明示的にはパケット添付をサポートしないネットワークの場合、ドライバは、やはりパケット添付状態を示すことが好ましい。デバイスの登録状態が変化したとき、ドライバは、ローミングサービスが正しい状態をユーザに反映することができるように、適切な指示を送信する。本発明の一実施形態においては、ローミングサービスが登録を開始することになるのは、ドライバがＷＷＡＮ＿ＲＥＡＤＹ＿ＳＴＡＴＥ＿ＩＮＩＴＩＡＬＩＺＥＤの状態を示した後だけである。デバイスは、別段の指示がない限り、あるいはドライバが使用不能にされるまで、登録モードにあるままとなる。ＷｗａｎＲｅｇｉｓｔｅｒＭｏｄｅＡｕｔｏｍａｔｉｃ、ＷｗａｎＲｅｇｉｓｔｅｒＭｏｄｅＭａｎｕａｌ、ＷｗａｎＲｅｇｉｓｔｅｒＭｏｄｅＲｅｒｅｇｉｓｔｅｒの場合、デバイスが事業者に配置される（ｃａｍｐ  ｏｎ）と、デバイスは自動的にパケット添付を行なう。ＷｗａｎＲｅｇｉｓｔｅｒＭｏｄｅＤｅｒｅｇｉｓｔｅｒの場合、デバイスは、自動的にパケット切離しする。登録モードを設定すると、ＷｗａｎＲｅｇｉｓｔｅｒＭｏｄｅＡｕｔｏｍａｔｉｃおよびＷｗａｎＲｅｇｉｓｔｅｒＭｏｄｅＭａｎｕａｌは、新しいモードが先のモードと同じである場合、登録を開始しない。ＷｗａｎＲｅｇｉｓｔｅｒＭｏｄｅＲｅｒｅｇｉｓｔｅｒは、この目的のために使用される。このフラグは、登録状態を設定するためにだけ有効である。登録されたデバイスに対する後続の照会または指示により、それぞれＷｗａｎＲｅｇｉｓｔｅｒＭｏｄｅＡｕｔｏｍａｔｉｃまたはＷｗａｎＲｅｇｉｓｔｅｒＭｏｄｅＭａｎｕａｌが引き起こされる。
【００９０】
【表１４】
2005141737.tif 000019
【００９１】
表１４に示されている登録動作６１０をサポートするために使用されるデータ構造に関して、ＲｅｇｉｓｔｅｒＭｏｄｅパラメータは、ＷＷＡＮデバイスが、配置する（ｃａｍｐ  ｏｎ）ための事業者を見つけるために使用中であるというメソッドを記述している。ＷｗａｎＲｅｇｉｓｔｅｒＭｏｄｅＡｕｔｏｍａｔｉｃおよびＷｗａｎＲｅｇｉｓｔｅｒＭｏｄｅＭａｎｕａｌの場合、デバイスは、トランシーバがアクティブ化され、プロバイダが登録され、および（適切な場合）自動パケットが添付されることを保証する。ＷｗａｎＲｅｇｉｓｔｅｒＭｏｄｅＤｅｒｅｇｉｓｔｅｒの場合、デバイスは現在のネットワークから切り離され、登録解除されるが、送信器は給電された状態にしておく。ＷｗａｎＲｅｇｉｓｔｅｒＭｏｄｅＲａｄｉｏＯｆｆの場合、デバイスは現在のネットワークから切り離され、登録解除され、給電されている送信器をオフにするが、（ＳＩＭを含めて）プロトコルスタックは初期化された状態にしておく。ＷｗａｎＲｅｇｉｓｔｅｒＭｏｄｅＲｅｒｅｇｉｓｔｅｒフラグは、デバイスが現在、モードＷｗａｎＲｅｇｉｓｔｅｒＭｏｄｅＡｕｔｏｍａｔｉｃまたはＷｗａｎＲｅｇｉｓｔｅｒＭｏｄｅＭａｎｕａｌにあるとき、設定についてだけ有効である。ＲｅｇｉｓｔｅｒＳｔａｔｅパラメータは、ユーザインターフェース内に反映されている可能性の高いＷＷＡＮデバイスの現在の登録状態を示す。自動レジスタモードで登録状態を読み出すと、Ｐｒｏｖｉｄｅｒパラメータには、（適用可能な場合）デバイスが現在配置されている（ｃａｍｐｅｄ  ｏｎ）プロバイダが含まれる。手動レジスタモードで登録状態を読み出すと、Ｐｒｏｖｉｄｅｒパラメータには、（プロバイダが使用可能でない場合でも）デバイスが固定されているプロバイダが含まれる。登録状態を手動モードで設定すると、Ｐｒｏｖｉｄｅｒパラメータには、固定するための事業者ＩＤが含まれる（事業者ストリングを無視する）。登録状態を自動モードで設定すると、このパラメータは無視される。
【００９２】
本発明の一実施形態において、いくつかのＯＩＤにより信号強度動作６１２がサポートされる。
【００９３】
ＯＩＤ＿ＷＷ＿ＳＥＴ＿ＳＩＧＮＡＬ＿ＳＵＧＧＥＳＴＩＯＮ、ＯＩＤ＿ＷＷ＿ＧＥＴ＿ＳＩＧＮＡＬ＿ＳＴＡＴＥ、ＮＤＩＳ＿ＷＷ＿ＳＩＧＮＡＬ＿ＳＴＡＴＥ。これらのオブジェクトは、ドライバ感度のノイズフロア上にあるデシベルとしてレポートされる信号強度状態を管理するために使用される。信号強度がデフォルトの閾値外で変化すると、指示が与えられ、イベント発生（ｅｖｅｎｔｉｎｇ）レートがデフォルトの最大頻度を確実に超えないようにする。適切なヒステリシスが使用される。アプリケーションは、決して信号強度を求めてポーリングしないことが好ましい。（起動など）特別な状況では、アプリケーションは、ＱＵＥＲＹを使用して信号強度を得る。ＯＩＤ＿ＷＷ＿ＳＥＴ＿ＳＩＧＮＡＬ＿ＳＵＧＧＥＳＴＩＯＮオブジェクトに対するＳＥＴは、提案された通知間隔および電界強度の閾値を非同期で設定する。いくつかの実施形態において、信号通知をさらに削減することによって更なる電力節約を実現することができるような条件を満たす間、ドライバはこれらの値を使用する。測定された信号強度が閾値外へ移動すると、ＮＤＩＳ＿ＷＷ＿ＳＩＧＮＡＬ＿ＳＴＡＴＥオブジェクトに対するＩＮＤＩＣＡＴＥにより、ドライバが信号強度通知を送信することが可能になる。デフォルトにより、ドライバは、５秒以下の間隔で指示をレポートする。ドライバは、信号強度が最後にレポートされた値から少なくとも±４ｄＢ変化したかどうかを通知するだけでよいようにすることが好ましい。
【００９４】
本発明の一実施形態により、信号強度動作ＯＩＤ６１２をサポートするために使用されるデータ構造を表１５に示す。
【００９５】
【表１５−１】
2005141737.tif 000020
【００９６】
【表１５−２】
2005141737.tif 000021
【００９７】
Ｒｓｓｉパラメータは、ドライバ感度のノイズフロア上のデシベルとしてレポートされた信号強度である。電力消費を最小限に抑えるため、このインターフェースにより、Ｒｓｓｉが変化するのに基づいて通知を送信するためのデフォルトの最小間隔が指定される。いくつかの状況では（たとえば、長期間のユーザ非活動の間）、ＲｓｓｉＩｎｔｅｒｖａｌにより、追加の電力を保存するためより長い間隔をいつ使用することができるかが指定される。ドライバはこの拡大された間隔に固執する必要はない。この間隔を設定するとき、「−１」値は、使用可能な提案値がないことを意味する。デフォルトの最小間隔が使用されるのである。信号強度を示すとき、この値には、デバイスによって現在使用されている間隔が含まれる。電力消費を最小限に抑えるため、このインターフェースにより、Ｒｓｓｉが変化するのに基づいて通知を送信するためにデフォルトの±閾値がさらに指定される。本発明の一実施形態において、信号強度が閾値を超える量だけ変化すると、ドライバは、その変化についてローミングサービスに通知する。いくつかの状況では（たとえば、強い信号の領域にいる間）、ＲｓｓｉＴｈｒｅｓｈｏｌｄは、より大きい±閾値をいつ使用して追加の電力を保存することができるかを指定する。ドライバはこの拡大された閾値に固執する必要はない。この閾値を設定するとき、「−１」値は、使用可能な提案値がないことを意味する。デフォルトの閾値が使用される。信号強度を示すとき、この値には、デバイスによって現在使用されている閾値が含まれる。
【００９８】
本発明の一実施形態において、いくつかのＯＩＤによりパケットデータ管理およびアクティブ化動作６１４がサポートされる。本発明の一実施形態により、パケットデータ管理およびアクティブ化動作６１４をサポートするデータ構造を表１６に示す。パケットデータ管理およびアクティブ化動作６１４をサポートするＯＩＤの説明は、以下の通りである。
【００９９】
ＯＩＤ＿ＷＷ＿ＧＥＴ＿ＰＡＣＫＥＴ＿ＳＥＲＶＩＣＥおよびＮＤＩＳ＿ＷＷ＿ＰＡＣＫＥＴ＿ＳＥＲＶＩＣＥ。これらのオブジェクトは、現在のパケット添付状態、およびサポートされている関連のデータサービスを読み出し、通知するために使用される。登録された後で、デバイスは、パケット添付しようと自動的に試み、その結果、ＳＥＴオブジェクトは必要とされない。
【０１００】
ＯＩＤ＿ＷＷ＿ＧＥＴ＿ＰＲＯＶＩＳＩＯＮＥＤ＿ＣＯＮＴＥＸＴＳおよびＯＩＤ＿ＷＷ＿ＳＥＴ＿ＰＲＯＶＩＳＩＯＮＥＤ＿ＣＯＮＴＥＸＴＳ。これらのオブジェクトは、デバイスに記憶された好ましいコンテキストエントリを読み出し、書き込むために使用される。これらの設定は、デバイスに対してローカルである。これらのフィールドを読み出すためにネットワークに接触しないことが好ましい。ＯＩＤ＿ＷＷ＿ＧＥＴ＿ＰＲＯＶＩＳＩＯＮＥＤ＿ＣＯＮＴＥＸＴＳオブジェクトに対するＳＥＴは、優先プロバイダを非同期で照会する。ＯＩＤ＿ＷＷ＿ＳＥＴ＿ＰＲＯＶＩＳＩＯＮＥＤ＿ＣＯＮＴＥＸＴＳオブジェクトに対するＳＥＴは、提供されたアクセスストリングを非同期でアクティブ化または非アクティブ化するために使用される。このリストは、その全体を渡される。個々の追加および削除は、追跡されないのである。いくつかの実施形態において、ドライバは、キャッシュされたリストのコピーを保持し、個々の追加／削除を実行し、あるいはリスト全体を単一の動作で上書きする。
【０１０１】
ＯＩＤ＿ＷＷ＿ＧＥＴ＿ＡＣＴＩＶＡＴＥ＿ＳＴＡＴＥ、ＯＩＤ＿ＷＷ＿ＳＥＴ＿ＡＣＴＩＶＡＴＥ＿ＳＴＡＴＥ、ＮＤＩＳ＿ＷＷ＿ＡＣＴＩＶＡＴＥ＿ＳＴＡＴＥ。これらのオブジェクトは、特定のパケットコンテキストをアクティブ化（または非アクティブ化）し、および関連する状態を照会するために使用される。ＯＩＤ＿ＷＷ＿ＳＥＴ＿ＡＣＴＩＶＡＴＥ＿ＳＴＡＴＥオブジェクトは、特定のコンテキストを開始し、または終了するために使用される。ＷＷＡＮドライバは、ローミングサービスがこのＯＩＤを送信したときコンテキストのアクティブ化を試みるだけである。ドライバは、登録および／または信号を喪失した後でも、そのコンテキストを自動的にアクティブ化しない。アクセスストリングが提供されない場合、コンテキストは、デフォルトのストリングではなくブランクのアクセスストリングでアクティブ化される。ＷＷＡＮドライバは、アクティブ化状態が変化すると、ＮＤＳＩ＿ＷＷ＿ＡＣＴＩＶＡＴＥ＿ＳＴＡＴＥオブジェクトを介して適切な指示を送信することが期待される。このオブジェクトは、ＷＷＡＮドライバがＷｗａｎＲｅｇｉｓｔｅｒＳｔａｔｅＨｏｍｅまたはＷｗａｎＲｅｇｉｓｔｅｒＳｔａｔｅＲｏａｍｉｎｇのレジスタ状態を示した場合に呼び出されることになるだけである。ＧＳＭネットワーク上では、デバイスは、やはりＷｗａｎＡｔｔａｃｈＳｔａｔｅＡｔｔａｃｈｅｄの添付状態を示さなければならない。
【０１０２】
【表１６−１】
2005141737.tif 000022
【０１０３】
【表１６−２】
2005141737.tif 000023
【０１０４】
表１６に示されているパケットデータ管理およびアクティブ化動作６１４をサポートするために使用されるデータ構造に関して、ＡｔｔａｃｈＳｔａｔｅはパケットに添付の状態である。ＧＰＲＳにおいては、ローミングサービスは、コンテキストのアクティブ化の処理をはじめる前に、ＷｗａｎＡｔｔａｃｈＳｔａｔｅＡｔｔａｃｈｅｄを認識しなければならない。パケット添付をサポートしてない技術の場合、このパラメータは無視される。ＤａｔａＣｌａｓｓパラメータは、どのデータクラスが現在使用されているかを示すＷＷＡＮ＿ＤＡＴＡ＿ＣＬＡＳＳ＿＊定数である。これが変化した場合（たとえば、１ｘＲＴＴから１ｘＥｖＤｏへの遷移）、このサービスの変化を示すための通知が送信される。Ｐｒｏｖｉｄｅｒパラメータは、アクセスストリングによって参照されるサービスを所有するプロバイダを識別するが、ここでアクセスストリングを使用するのは、ネットワークによっては、グローバルに一意のアクセスストリングを使用しないものがあるからである（たとえば、「ｉｎｔｅｒｎｅｔ」は、いくつかのプロバイダによって使用される）。ＷＷＡＮ＿ＣＯＮＴＥＸＴ＿ＡＵＴＨＥＮＴＩＣＡＴＩＯＮフィールドは、ユーザ／パスワード認証が必要になると、使用される認証のタイプを示す。ＡｃｔｉｖａｔｉｏｎＳｔａｔｅパラメータは、アクティブ化状態を設定するとき、提供されたコンテキストをドライバがどう利用すべきか、ドライバに指令する。アクティブ化状態を照会すると、ＡｃｔｉｖａｔｉｏｎＳｔａｔｅパラメータは、所与のコンテキストの現在のアクティブ化状態を反映するようになる。ＧＳＭネットワークでは、ＡｃｃｅｓｓＳｔｒｉｎｇパラメータは、「ｉｎｔｅｒｎｅｔ２．ｖｏｉｃｅｓｔｒｅａｍ．ｃｏｍ」などＡＰＮストリングになるであろう。ＣＤＭＡネットワークでは、「＃７７７」など、特別なダイヤルコードになる可能性がある。ＡｕｔｈｅｎｔｉｃａｔｉｏｎＴｙｐｅパラメータは、コンテキストをアクティブ化するとき、（あれば）どの認証を使用するかを示す。ＵｓｅｒＮａｍｅパラメータは、認証のために使用されるユーザ名を指す。Ｐａｓｓｗｏｒｄパラメータは、認証のために使用されるパスワードを指す。ＮｕｍｂｅｒＯｆＣｏｎｔｅｘｔｓパラメータ、ＣｏｎｔｅｘｔＬｉｓｔＳｉｚｅパラメータ、ＣｏｎｔｅｘｔＬｉｓｔＯｆｆｓｅｔパラメータは、コンテキスト構造の配列への参照である。Ｃｏｎｔｅｘｔパラメータは、パケット接続をアクティブ化するために使用されるアクセスストリングおよび任意選択の認証情報を示す。
【０１０５】
本発明の一実施形態において、いくつかのＯＩＤによりロケーション動作６１６がサポートされる。
【０１０６】
ＯＩＤ＿ＷＷ＿ＧＥＴ＿ＬＯＣＡＴＩＯＮ＿ＩＮＦＯ、ＯＩＤ＿ＷＷ＿ＳＥＴ＿ＬＯＣＡＴＩＯＮ＿ＩＮＦＯ、ＮＤＩＳ＿ＷＷ＿ＬＯＣＡＴＩＯＮ＿ＩＮＦＯ。これらのオブジェクトは、現在使用可能なセルタワー情報を読み出すために使用される。これは、目下のネットワークトポロジのより良好な「フィンガープリント」を提供するために使用される。
【０１０７】
本発明の一実施形態において、いくつかのＯＩＤによりベンダ固有の動作６１８がサポートされる。これらのＯＩＤをサポートするために使用されるデータ構造を表１７に示す。
【０１０８】
【表１７】
2005141737.tif 000024
【０１０９】
ＡｐｐＩｄパラメータは、０でなければローミングサービスに登録した各アプリケーションを一意に識別する。ＷＷＡＮドライバは、ＡｐｐＩｄが０に設定された状態でＩＮＤＩＣＡＴＥを発行することによって、登録されたアプリケーションすべてにメッセージをブロードキャストする。
【０１１０】
ベンダ固有の動作６１８をサポートするＯＩＤには、ＯＩＤ＿ＷＷ＿ＧＥＴ＿ＶＥＮＤＯＲ＿ＳＰＥＣＩＦＩＣ、ＯＩＤ＿ＷＷ＿ＳＥＴ＿ＶＥＮＤＯＲ＿ＳＰＥＣＩＦＩＣ、ＮＤＩＳ＿ＷＷ＿ＶＥＮＤＯＲ＿ＳＰＥＣＩＦＩＣが含まれる。これらのオブジェクトは、ローミングサービスでは認識が困難なベンダ固有のデータを用いて動作を実行するために使用される。各コマンドを特定のアプリケーションに関連付けるために、アプリケーション識別子を使用することができる。ブランクのアプリケーション識別子を有する指示は、登録されたアプリケーションすべてにブロードキャストされることになる。
【０１１１】
次に、本発明の一実施形態による、上述のＯＩＤを使用する様々な状況の例について述べる。図７は、本発明の一実施形態による、ＯＩＤを使用することによってＷＷＡＮデバイスドライバを初期化する一例のフローチャート７００を示す。一般に、ドライバはそれ自体をＷＷＡＮドライバとして識別し、適切なバージョンのネゴシエートを実行する。ローミングサービスは、ステップ７０２で、ＯＩＤ＿ＧＥＮ＿ＰＨＹＳＩＣＡＬ＿ＭＥＤＩＵＭを使用してドライバに照会する。ドライバは、ステップ７０４でＮｄｉｓＰｈｙｓｉｃａｌＭｅｄｉｕｍＷｉｒｅｌｅｓｓＷａｎを返し、ＷＷＡＮ  ＯＩＤをサポートすることを示す。次いで、ローミングサービスは、ステップ７０６でＯＩＤ＿ＧＥＮ＿ＭＥＤＩＡ＿ＳＵＰＰＯＲＴＥＤを用いてドライバに照会し、これに対してドライバは、ステップ７０８でＮｄｉｓＭｅｄｉｕｍ８０２＿３を用いて応答し、したがって、イーサネット（登録商標）パケットが８０２．３プロトコルに従ってフォーマットされることを通信する。次いで、ローミングサービスは、ステップ７１０で、ＯＩＤ＿ＷＷ＿ＮＥＧＯＴＩＡＴＥ＿ＶＥＲＳＩＯＮを用いてローミングサービスによってサポートされている構成サービスバージョンの範囲を設定する。ローミングサービスは、ステップ７１２で、ドライバによってサポートされている構成サービスバージョンのその範囲を見つけるために、ＯＩＤ＿ＷＷ＿ＮＥＧＯＴＩＡＴＥ＿ＶＥＲＳＩＯＮを用いてドライバに照会する。ドライバは、ステップ７１４でこの値を返す。次いで、ローミングサービスは、ステップ７１６で、デバイスドライバの能力を発見するために、ＯＩＤ＿ＷＷ＿ＤＥＶＩＣＥ＿ＣＡＰＳを用いてドライバに照会する。ドライバは、ステップ７１８でこれらの能力を返す。
【０１１２】
図８は、本発明の一実施形態による、ＯＩＤを使用することによってＷＷＡＮデバイスを初期化する例を示す図である。この手順によって初期化されるＷＷＡＮデバイスは、ＧＰＲＳデバイス、ＣＤＭＡベースのデバイス、または他のＷＷＡＮデバイスとなる可能性があり、ユーザがＰＩＮを入力する必要があるか、または必要としないかのどちらかとすることができる。一般的な手順は、図７を参照して述べたフローチャート７００でのデバイスドライバの初期化で開始する。ドライバの初期化は、ローミングサービスが任意のＷＷＡＮ  ＯＩＤを呼び出す前に完了させる。ローミングサービスは、ステップ８０２で、プロトコルスタックおよびＳＩＭがあれば、それをＯＩＤ＿ＷＷ＿ＩＮＩＴＩＡＬＩＺＥを使用して初期化する。このコマンドがデバイスドライバによって受信されると始めて、デバイスドライバは、準備完了状態指示をローミングサービスに送り返すことができる。デバイスドライバは、ステップ８０４で、ＮＤＩＳ＿ＷＷ＿ＰＩＮ＿ＳＴＡＴＥ上のＷｗａｎＰｉｎＳｔａｔｅＮｏｎｅパラメータを用いてＰＩＮが必要でないことを示す。
【０１１３】
または、これに替えて、デバイスドライバは、ＷｗａｎＰｉｎＳｔａｔｅＮｅｅｄＰｉｎパラメータを用いてＰＩＮが必要であることを示す。ＰＩＮは、たとえば、ＳＩＭをロック解除するために必要となる可能性がある。この場合には、ローミングサービスは、ステップ８０６で、ＯＩＤ＿ＷＷ＿ＳＥＴ＿ＰＩＮのＷＷＡＮ＿ＰＩＮフィールドを設定することによってＰＩＮを送信する。これは非同期要求であり、後でドライバは、ステップ８０８で、ＮＤＩＳ＿ＷＷ＿ＡＳＹＮＣ＿ＲＥＳＰＯＮＳＥ上のＲｅｓｕｌｔＣｏｄｅ＝Ｓ＿ＯＫを用いて、その受信とセット動作の完了とを示す。
【０１１４】
この例は、ステップ８１０で、ドライバがＮＤＩＳ＿ＷＷ＿ＲＥＡＤＹ＿ＳＴＡＴＥを用いて準備完了状態にあることを示して続行する。ローミングサービスは、ステップ８１２で、トランシーバの電源を投入し、ＯＩＤ＿ＷＷ＿ＳＥＴ＿ＲＥＧＩＳＴＥＲ＿ＳＴＡＴＥを使用することによって登録を試みるようにドライバに通知する。ドライバは、ステップ８１４で、ＮＤＩＳ＿ＷＷ＿ＡＳＹＮＣ＿ＲＥＳＰＯＮＳＥ上のＲｅｓｕｌｔＣｏｄｅ＝Ｓ＿ＯＫを用いて、その受信とセット動作の完了とを示す。ドライバは、ステップ８１６で、ＮＤＩＳ＿ＷＷ＿ＲＥＧＩＳＴＥＲ＿ＳＴＡＴＥを使用して、プロバイダを探索中であることを示す。次いで、ドライバは、ステップ８１８で、ＮＤＩＳ＿ＷＷ＿ＲＥＧＩＳＴＥＲ＿ＳＴＡＴＥを使用して、デバイスがホームプロバイダにあることを示す。デバイスがパケット添付されていると、ドライバは、ステップ８２０で、ＮＤＩＳ＿ＷＷ＿ＰＡＣＫＥＴ＿ＳＥＲＶＩＣＥを使用してローミングサービスに示す。または、これに替えて、ＷＷＡＮデバイスがＣＤＭＡベースのデバイスである場合、ＣＤＭＡは添付概念をサポートしないため、ＮＤＩＳ＿ＷＷ＿ＰＡＣＫＥＴ＿ＳＥＲＶＩＣＥを使用してＷＷＡＮ＿ＤＡＴＡ＿ＣＬＡＳＳ＿１ＸＲＴＴが返される。
【０１１５】
図８の例では、コンテキストがＷＷＡＮサービスプロバイダによって供給され、ローミングサービスは、ステップ８２２で、ＯＩＤ＿ＷＷ＿ＧＥＴ＿ＰＲＯＶＩＳＩＯＮＥＤ＿ＣＯＮＴＥＸＴＳを使用して、これらの供給されたコンテキストを要求する。ドライバは、ステップ８２４で、ＮＤＩＳ＿ＷＷ＿ＡＳＹＮＣ＿ＲＥＳＰＯＮＳＥのＷＷＡＮ＿ＡＣＴＩＶＡＴＩＯＮ＿ＣＯＮＴＥＸＴ＿ＬＩＳＴパラメータを用いて、供給されたコンテキストのリストを示す。ＷＷＡＮ＿ＡＣＴＩＶＡＴＩＯＮ＿ＣＯＮＴＥＸＴ＿ＬＩＳＴパラメータは、たとえば、「＃７７７」などアクティブ化ストリングとすることができる。このようにして、デバイスドライバはローミングサービスに、デバイスがすでに装備済みであることを通知しているため、接続タイプを選択する必要はない。または、これに替えて、コンテキストが供給されず、ユーザが手動でアクセスポイントストリングを構成する状況では、ステップ８２２および８２４は省略される。
【０１１６】
この例は、ステップ８２６で、ローミングサービスがＯＩＤ＿ＷＷ＿ＳＥＴ＿ＡＣＴＩＶＡＴＥ＿ＳＴＡＴＥのＷＷＡＮ＿ＣＯＮＴＥＸＴパラメータを用いてコンテキストを設定して続行する。デバイスドライバは、ステップ８２８で、ＮＤＩＳ＿ＷＷ＿ＡＳＹＮＣ＿ＲＥＳＰＯＮＳＥ上のＲｅｓｕｌｔＣｏｄｅ＝Ｓ＿ＯＫを用いて、コンテキストをアクティブ化したことを示す。次いで、ドライバは、ステップ８３０で、ＮＤＩＳ＿ＷＷ＿ＡＣＴＩＶＡＴＥ＿ＳＴＡＴＥを用いて、ＷＷＡＮ状態がアクティブ化されていることを示す。ドライバは、ステップ８３２で、ＮＤＩＳ＿ＧＥＮ＿ＭＥＤＩＡ＿ＣＯＮＮＥＣＴ＿ＳＴＡＴＵＳのＮｄｉｓＭｅｄｉａＳｔａｔｅＣｏｎｎｅｃｔｅｄパラメータを使用して、現在、着信および発信ＩＰパケットをサービスすることができることを示す。
【０１１７】
図９は、本発明の一実施形態により、パケット接続中にＯＩＤを使用してＷＷＡＮデバイスによってサービスされる音声呼の一例を示すフローチャートである。デバイスドライバは、ステップ９０２で、ＮＤＩＳ＿ＷＷ＿ＰＡＣＫＥＴ＿ＳＥＲＶＩＣＥを使用して、デバイスが使用しているサービスのタイプ（ＧＰＲＳ、ＣＤＭＡなど）を示す。ＧＰＲＳの場合、ＷＷＡＮ＿ＤＡＴＡ＿ＣＬＡＳＳ＿ＧＰＲＳパラメータが使用される。ＣＤＭＡの場合、ＷＷＡＮ＿ＤＡＴＡ＿ＣＬＡＳＳ＿１ＸＲＴＴパラメータが使用される。パケット接続中、ドライバは、ステップ９０４で、ＮＤＩＳ＿ＧＥＮ＿ＭＥＤＩＡ＿ＣＯＮＮＥＣＴ＿ＳＴＡＴＵＳのＮｄｉｓＭｅｄｉａＳｔａｔｅＣｏｎｎｅｃｔｅｄパラメータを用いて、接続されていることを示す。ステップ９０６において、デバイス上で音声呼を後に発し、または音声呼に答えると、ドライバは、ステップ９０８で、ＮＤＩＳ＿ＧＥＮ＿ＭＥＤＩＡ＿ＣＯＮＮＥＣＴ＿ＳＴＡＴＵＳを使用して、切断状態にあることを示す。ステップ９１０で音声呼が完了すると、ドライバは、ステップ９１２で、ＮＤＩＳ＿ＧＥＮ＿ＭＥＤＩＡ＿ＣＯＮＮＥＣＴ＿ＳＴＡＴＵＳを用いて、再び接続状態にあることを示し、パケット接続が再開する。
【０１１８】
図１０は、本発明の一実施形態による、信号強度監視の頻度を制御する一例を示すフローチャートである。ドライバは、ステップ１００２で、ＮＤＩＳ＿ＷＷ＿ＲＥＧＩＳＴＥＲ＿ＳＴＡＴＥを使用して、デバイスがホームプロバイダにあることを示す。ドライバは、ステップ１００４で、ＮＤＩＳ＿ＷＷ＿ＳＩＧＮＡＬ＿ＳＴＡＴＥを使用して、現在の信号状態、この例では５０ｄＢを示す。ローミングサービスは、ステップ１００６で、ＯＩＤ＿ＷＷ＿ＳＥＴ＿ＳＩＧＮＡＬ＿ＳＵＧＧＥＳＴＩＯＮを設定することによって、ドライバがその範囲内でローミングサービスに通知することを必要としない閾値を提案する。この例では、現在レポートされている信号強度が５０ｄＢと、十分大きいため、ローミングサービスは、±１０ｄＢの閾値範囲を提案する。ＯＩＤ＿ＷＷ＿ＳＥＴ＿ＳＩＧＮＡＬ＿ＳＵＧＧＥＳＴＩＯＮがローミングサービスによって非同期コマンドとして送信されたため、ドライバは、ステップ１００８で、ＮＤＩＳ＿ＷＷ＿ＡＳＹＮＣ＿ＲＥＳＰＯＮＳＥ上のＲｅｓｕｌｔＣｏｄｅ＝Ｓ＿ＯＫを用いて応答する。信号強度が最終的に閾値未満に降下したとき、ドライバは、ステップ１０１０で、ＮＤＩＳ＿ＷＷ＿ＳＩＧＮＡＬ＿ＳＴＡＴＥを使用して、その値を示す。この例では、信号は３８ｄＢに降下している。この降下が示されると、いくつかの実施形態では、ドライバは、信号強度降下のさらなる指示のレポートを中止する。ローミングサービスは、ステップ１０１２で、ＯＩＤ＿ＷＷ＿ＳＥＴ＿ＳＩＧＮＡＬ＿ＳＵＧＧＥＳＴＩＯＮを使用して、新しい閾値を設定する。この例では、新しい閾値は±６ｄＢである。ドライバは、ステップ１０１４で、ＮＤＩＳ＿ＷＷ＿ＡＳＹＮＣ＿ＲＥＳＰＯＮＳＥ上のＲｅｓｕｌｔＣｏｄｅ＝Ｓ＿ＯＫを用いて応答する。デバイスアイドルの所定の期間１０１６の後に、ローミングサービスは、ステップ１０１８で、ＯＩＤ＿ＷＷ＿ＳＥＴ＿ＳＩＧＮＡＬ＿ＳＵＧＧＥＳＴＩＯＮのＲｓｓｉＳｕｇｇｅｓｔｅｄＩｎｔｅｒｖａｌパラメータを使用して、ドライバが信号状態を示すための拡大された最小時間間隔を提案する。この例では、提案された間隔は２０秒である。ドライバは、ステップ１０２０で、ＮＤＩＳ＿ＷＷ＿ＡＳＹＮＣ＿ＲＥＳＰＯＮＳＥ上のＲｅｓｕｌｔＣｏｄｅ＝Ｓ＿ＯＫを用いて応答する。ステップ１０２２で、ドライバは、ＮＤＩＳ＿ＷＷ＿ＳＩＧＮＡＬ＿ＳＴＡＴＥを使用して、信号強度、この例では４５ｄＢが提案された閾値を超えていることを示す。
【０１１９】
図１１は、本発明の一実施形態による、ＳＩＭパスワードを必要とする動作を実行する一例を示すフローチャートである。この例では、ユーザがＷＷＡＮデバイスを用いて音声呼を発しようと試みるが、デバイスは、ＰＩＮ２の除去（ｃｌｅａｒａｎｃｅ）を必要とする。ドライバは、ステップ１１０２で、ＮＤＩＳ＿ＷＷ＿ＲＥＧＩＳＴＥＲ＿ＳＴＡＴＥを使用して、デバイスがホームプロバイダにあることを示す。ドライバは、ステップ１１０４で、ＮＤＩＳ＿ＷＷ＿ＰＡＣＫＥＴ＿ＳＥＲＶＩＣＥを用いて、デバイスがパケット添付されていることをローミングサービスに示す。ユーザが音声呼を発しようと試みると、ローミングサービスは、ステップ１１０６で、カスタムのＯＩＤ＿ＷＷ＿ＶＥＮＤＯＲ＿ＳＰＥＣＩＦＩＣを送信する。しかし、非同期の結果を送信する前に、ドライバは、ステップ１１０８で、ＮＤＩＳ＿ＷＷ＿ＰＩＮ＿ＳＴＡＴＥを使用して、ＰＩＮ２が必要であることを示す。ローミングサービスは、ステップ１１１０で、ＯＩＤ＿ＷＷ＿ＳＥＴ＿ＰＩＮを使用して、ＰＩＮを送信する。ドライバは、ステップ１１１２で、ＮＤＩＳ＿ＷＷ＿ＡＳＹＮＣ＿ＲＥＳＰＯＮＳＥ上のＲｅｓｕｌｔＣｏｄｅ＝Ｓ＿ＯＫを用いて応答し、ＰＩＮ２が今除去されていることを示す。次いで、ステップ１１０６で与えられた音声呼コマンドに対する非同期応答として、ドライバは、ステップ１１１４で、ＮＤＩＳ＿ＷＷ＿ＡＳＹＮＣ＿ＲＥＳＰＯＮＳＥ上の別のＲｅｓｕｌｔＣｏｄｅ＝Ｓ＿ＯＫを用いて応答する。
【０１２０】
本発明の原理を適用することができる多数の可能な実施形態に鑑みて、図面に関連して本明細書に述べられている実施形態は例示的なものにすぎないものとすること、本発明の範囲を制限すると解釈すべきでないことを理解されたい。たとえば、図の諸実施形態は、本発明の精神から逸脱することなしに構成および詳細を修正することができることを、当業者なら理解することができる。本発明について、ソフトウェアモジュールまたは構成要素によって述べたが、当業者なら、それらをハードウェア構成要素によって等価に置き換えることができることを理解することができる。したがって、本明細書に述べられている本発明は、特許請求の範囲とその等価物の範囲内に入る可能性のあるそのような実施形態すべてを企図している。
【図面の簡単な説明】
【０１２１】
【図１】本発明の一実施形態によるＷＷＡＮデバイスの構成を実施するためのコンピューティングデバイスの例示的なアーキテクチャを示す単純化された概略図である。
【図２】移動コンピューティングデバイスが接続する可能性のある複数のネットワークアクセスポイントを含む例示的な多重ネットワーク通信媒体構成の図である。
【図３】本発明を実施するコンピューティングデバイス内で、移動接続モジュール対ＷＷＡＮデバイスドライバインターフェース内の主な構成要素を識別する概略図である。
【図４】本発明の一実施形態による、オブジェクト識別子の構成要素を示す図である。
【図５】本発明の一実施形態による、オブジェクト識別子を使用する移動接続モジュール対ＷＷＡＮデバイスドライバインターフェース内の非同期要求および応答を例示する修正フローチャートである。
【図６】本発明の一実施形態内で使用される、オブジェクト識別子の機能セットを示す図である。
【図７】本発明の一実施形態による、オブジェクト識別子を使用するＷＷＡＮデバイスドライバの初期化を示す修正フローチャートである。
【図８】本発明の一実施形態による、ＷＷＡＮデバイスの初期化を示す修正フローチャートである。
【図９】本発明の一実施形態による、パケット接続中にオブジェクト識別子を使用してＷＷＡＮデバイスによってサービスされる音声呼を示す修正フローチャートである。
【図１０】本発明の一実施形態による、オブジェクト識別子を使用する信号強度の制御および監視を示す修正フローチャートである。
【図１１】本発明の一実施形態による、オブジェクト識別子を使用する、ＳＩＭパスワードを必要とする動作の性能を示す修正フローチャートである。
【符号の説明】
【０１２２】
１００  コンピューティングシステム環境
１１０  コンピュータ
１２０  処理装置
１２１  システムバス
１３０  システムメモリ
１３１  ＲＯＭ
１３２  ＲＡＭ
１３３  ＢＩＯＳ
１３４  オペレーティングシステム
１３５  アプリケーションプログラム
１３６  他のプログラムモジュール
１３７  プログラムデータ
１４０  固定式不揮発性メモリインターフェース
１４１  ハードディスクドライブ
１４４  オペレーティングシステム
１４５  アプリケーションプログラム
１４６  他のプログラムモジュール
１４７  プログラムデータ
１５０  取外し式不揮発性メモリインターフェース
１５１  磁気ディスクドライブ
１５２  不揮発性磁気ディスク
１５５  光ディスクドライブ
１５６  不揮発性光ディスク
１６０  ユーザ入力インターフェース
１６１  マウス
１６２  キーボード
１７０  ネットワークインターフェース
１７１  ローカルエリアネットワーク
１７２  モデム
１７３  広域ネットワーク
１８０  遠隔コンピュータ
１８１  メモリ記憶デバイス
１８５  遠隔アプリケーションプログラム
１９０  ビデオインターフェース
１９１  モニタ
１９５  出力周辺機器インターフェース
１９６  プリンタ
１９７  スピーカ
２００  ノートブックコンピュータ
２０２  ＷＷＡＮ無線タワー
２０４  ワイヤレストランシーバ
２０６  イーサネット（登録商標）
２０８  ファイルサーバ
２１０  ゲートウェイ／ファイアウォール／モデム
２１２  インターネット
２１３  ＷＷＡＮネットワーク
２１４  ＰＣ
２１６  ハードワイヤードＰＣ
３００  ローミングサービス
３０２  媒体固有のドライバ
３０４  動的データストア
３０５  装備サービス
３０６  グループポリシーサービス
３１０  ローミングサービスＡＰＩ
３２０  媒体固有のモジュール
３２２  調整コンポーネント
３４０  ネットワークドライバインターフェース指定（ＮＤＩＳ）
【図１】
2005141737.tif 000025
【図２】
2005141737.tif 000026
【図３】
2005141737.tif 000027
【図４】
2005141737.tif 000028
【図５】
2005141737.tif 000029
【図６】
2005141737.tif 000030
【図７】
2005141737.tif 000031
【図８】
2005141737.tif 000032
【図９】
2005141737.tif 000033
【図１０】
2005141737.tif 000034
【図１１】
2005141737.tif 000035