JP4054390B2 - モデムインタフェース - Google Patents

モデムインタフェース Download PDF

Info

Publication number
JP4054390B2
JP4054390B2 JP32464795A JP32464795A JP4054390B2 JP 4054390 B2 JP4054390 B2 JP 4054390B2 JP 32464795 A JP32464795 A JP 32464795A JP 32464795 A JP32464795 A JP 32464795A JP 4054390 B2 JP4054390 B2 JP 4054390B2
Authority
JP
Japan
Prior art keywords
modem
driver
command
data
independent
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP32464795A
Other languages
English (en)
Other versions
JPH08272717A (ja
Inventor
ジェイ ウイリアムス ロバート
ピー ガプト クリストファー
エイ リープル キース
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of JPH08272717A publication Critical patent/JPH08272717A/ja
Application granted granted Critical
Publication of JP4054390B2 publication Critical patent/JP4054390B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M11/00Telephonic communication systems specially adapted for combination with other electrical systems
    • H04M11/06Simultaneous speech and data transmission, e.g. telegraphic transmission over the same conductors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M11/00Telephonic communication systems specially adapted for combination with other electrical systems
    • H04M11/06Simultaneous speech and data transmission, e.g. telegraphic transmission over the same conductors
    • H04M11/066Telephone sets adapted for data transmision

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer And Data Communications (AREA)
  • Telephonic Communication Services (AREA)
  • Communication Control (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、モデムを使用するコンピュータ通信と、さらに特にコンピュータシステムにおけるモデムインタフェースとに関するものである。
【0002】
【発明が解決しようとする課題】
今日のパーソナルコンピュータにおけるアプリケーションプログラム(アプリケーション)の数の増加は、リモートデータ通信の特徴をサポートするモデムと相互に影響し合っているに違いない。モデムにアクセスするアプリケーションのいくつかの例としては、リモートネットワークアクセスや、掲示板サービスや、ファックスモデムや、電子メール(eメール)等を含む必要があるかもしれない。ワードプロセッサや表計算プログラムのようなアプリケーションさえも、例えば、モデムを制御して他のコンピュータにファイルを転送するソフトウェアを含むことができる。モデムへのアクセスが、より多くのアプリケーションの重要な特徴になったことにより、アプリケーション開発者は、これらのアプリケーションにおけるモデム通信をサポートする開発コードの問題に取り組まなければならなくなった。
【0003】
モデム制御のタスクは、アプリケーション開発を極めて複雑にする。モデムを制御するために、アプリケーションは、コンピュータに接続された個々のブランドおよびバージョンのモデムのコマンドセットを理解する必要がある。多くのモデムは、ジョージア州ノークロス(Norcross, Georgia )にあるヘイズマイクロコンピュータプロダクツ社(Hayes Microcomputer Products, Inc.)によって制定されたヘイズ標準ATコマンドセット(Hayes Standard AT Command set )によるコマンドを使用する。このATコマンドセットは、コンピュータ産業において良く知られ、広く使用されているモデムを制御し、設定するための多くのコマンドを含む。しかしながら、各々のブランドまたはバージョンのモデムは、いくつかのATコマンドと新たな特徴をサポートする追加のコマンドとを含むコマンドの独自の組み合わせを独自に理解する。この結果、モデムにおいてサポートされるコマンドセットは、実際的に異なる恐れがある。
【0004】
事態をさらに複雑にすることは、The Comite Consultatif International de Telegraphie et Telephonie (CCITT)と、The International Telecommunications Union - Telecommunications Standardization Sector(ITU−T)とによって制定された、モデムおよびファクシミリ伝送に関する多数のプロトコルが存在することである。アプリケーション開発者は、アプリケーションがモデムを正確に制御できるようにするために、モデムプロトコルに加えてATコマンドにも精通しなければならない。
【0005】
モデム技術の進歩とともに、モデムの特徴の変化と歩調を合わせてアプリケーションを制作することは、アプリケーション開発者にとって大変困難なことになった。各々の新たな特徴は、しばしば、1つまたはそれ以上の新たなコマンドによってサポートされ、これらのコマンドは、モデムのブランドによって異なるかもしれない。異なるモデムの特徴の範囲に適合するアプリケーションの制作において、モデムのサポートに向けられたアプリケーションの部分は、極めて複雑になる恐れがある。このコードの開発は、明らかにアプリケーションの中心部分の機能の開発を減じる。たとえ、開発者が、現在のモデムの特徴をサポートする完全な仕事を行ったとしても、アプリケーションにおけるモデムサポートは、将来のバージョンのモデムのより進歩した特徴をサポートしないであろう。アプリケーションが市販された後、進歩した特徴に対するサポートを容易に追加する変更はできない。
【0006】
アプリケーション開発の複雑化に加えて、多くのアプリケーションにおいてモデム制御を置くことは、資源コンテンション(resource contention )問題を発生させる。各々のアプリケーションがモデム制御のサポートを準備する場合、アプリケーションにモデム資源を割り当てることは、不可能ではないにしても困難である。これらの事情において代表的に、モデムの制御を最初に得たアプリケーションは、自発的に制御を止めるまで、制御を継続する。この結果、モデムを制御するアプリケーションは、他のアプリケーションが電話呼出しに関係することを不可能にする。この状況において、シリアルポートドライバに対するインタフェースは、せいぜいいくらかのコンテンション管理を行えるだけである。しかしながらこのコンテンション管理は、ある程度制限される。
【0007】
モデムサポートソフトウェアが存在することの追加の欠点は、これらがモデムをコンピュータシステムに導入することを困難にすることである。アプリケーションを2つ以上のモデム形式の制御に対して設定できるが、代表的に、個々のモデム形式との通信に関してアプリケーションを正確に設定するためのユーザからの追加の情報を必要とする。モデム特定情報の導入を自動的に行うことができるならば、モデムの導入は、ユーザに対してはるかに簡単になるであろう。
【0008】
モデム制御システムが存在することの制限および欠点を軽減するために、本発明は、デバイスに依存しないモデムインタフェースを提供する。本発明は、このモデムに対するデバイスに依存しないインタフェースを、コンピュータシステムにおいて動作しているアプリケーションに与える手段を含む。
【0009】
【課題を解決するための手段】
本発明の実施例によれば、本発明は、コンピュータオペレーティングシステムの一部として含まれるデバイスに依存しないモデムインタフェースを具える。このインタフェースは、呼制御コマンドを受ける呼制御モジュールと、アプリケーションからデータ伝送コマンドを受ける通信ドライバとを含む。アプリケーションは、呼制御コマンドおよびデータ伝送コマンドを、呼制御モジュールおよび通信ドライバに、各々、デバイスに依存しない方法で送る。汎用モデムドライバは、呼制御モジュールからの命令に応じて、デバイス特定コマンドをモデムに供給する。特定のモデムの特有の能力を理解するために、汎用モデムドライバは、レジストリ(registry)データ記憶装置からモデム特定情報を読み取る。この情報を使用すると、汎用モデムドライバは、多数のモデム形式のためのデバイス特定コマンドを使用することができる。
【0010】
汎用モデムドライバは、アプリケーションに対するモデム透過性をコマンドモードおよびデータモードに分離する。モデムがコマンドモードである場合、汎用モデムドライバは、呼制御コマンドをモデムに伝送する。モデムかデータモードである場合、汎用モデムドライバは、通信ドライバからデータI/Oコマンドをモデムに伝送する。
【0011】
本発明は、追加の導入の特徴を提供する。本発明のある実施例は、デバイス特定情報をレジストリデータストア中にロードするクラスインストーラ(class installer )モジュールを含む。いくつかのモデムデバイスは、コンピュータシステムにおけるバスに関してロードされたエニュメレータ(enumerator)検出モジュールに対して自分自身を識別させる。導入中、デバイス識別を、クラスインストーラモジュールに移し、適切なデバイス情報をロードできるようにする。
【0012】
モデムが自分自身を識別させられない場合、本発明の他の実施例は、モデム形式を識別する方法を提供する。この方法は、デバイス特定情報が得られるように、モデムに対して一連の質問をすることと、次にモデムの応答をきれいにすることとを含む。応答データを、デバイス特定情報をロードするのに使用されるデバイス識別に変換することができる。
【0013】
本発明の個々の実施例は、コンピュータ用通信システムが存在することに関して、幾つかの利点を提供する。本発明は、アプリケーション開発者の仕事を、はるかに簡単にする。開発者は、広範囲に多様なデバイスと通信するための簡単な共通インタフェースを使用することができる。本発明のある実施例において、モデムの制御を複数のレベルに分割することができ、最上位レベルにおいて、制御および通信アプリケーションインタフェースは、デバイスに依存しないインタフェースをモデムに提供し、より下位のレベルにおいて、汎用モデムドライバは、高レベルコマンドを、特定の形式のモデム用のコマンドに変換することができ、最後により下位のレベルにおいて、ポートドライバは、モデムデータと、特定の形式のポート用のコマンドとを変換することができる。
【0014】
モデム制御のタスクをアプリケーションから取り除いた後、モデム制御インタフェースは、資源コンテンションをより効果的に行うことができる。
【0015】
本発明は、モデムを導入し、設定するユーザの仕事を、はるかに簡単にする。ユーザは、モデムをただ単にプラグ接続することができ、システムが、残りの面倒をみる。
【0016】
汎用モデムドライバは、異なった形式のモデム用の個々のドライバを組み込む必要性を取り除く。汎用モデムドライバとともに、モデム特定情報のみをロードする必要がある。モデム情報の組み込みを、ユーザが、どんな形式のドライバを組み込む必要があるのか、またはどうやってそれを組み込むのかを知る必要なしに、行うことができる。
【0017】
【発明の実施の形態】
図1は、本発明の実施例を実行するコンピュータシステム20のブロック図である。コンピュータシステム20は、その基本的な要素として、コンピュータ22と、入力デバイス24と、出力デバイス26とを含む。
【0018】
一般にコンピュータ22は、バス構造体32を通じて連絡する、中央処理ユニット(CPU)28と、メモリシステム30とを含む。CPU28は、計算を行う演算器(ALU)33と、データおよび命令を一時的に記憶するレジスタ34と、アプリケーションまたはオペレーティングシステムのようなコンピュータプログラムからの命令に応じてコンピュータシステム20の動作を制御する制御ユニット36とを含む。
【0019】
一般にメモリシステム30は、ランダムアクセスメモリ(RAM)および読み出し専用メモリ(ROM)半導体装置のような媒体の形式の高速メインメモリ38と、フロッピーディスク、ハードディスク、テープ、CDROM等および光または磁気記録材料を使用する他の装置のような媒体の形式の2次記憶装置40とを含む。メインメモリ38は、コンピュータのオペレーティングシステムおよび現在動作しているアプリケーションプログラムのようなプログラムを記憶する。メインメモリ38は、ディスプレイデバイスによって画像を表示するためのビデオディスプレイメモリも含む。
【0020】
代表的に、入力デバイス24および出力デバイス26を、バス構造体32によってコンピュータ22に接続された周辺デバイスとする。入力デバイス24を、キーボード、モデム、ポインティングデバイス、ペンまたは入力データをコンピュータに供給する他のデバイスとしてもよい。出力デバイス26を、ディスプレイデバイス、プリンタ、サウンドデバイスまたはコンピュータからの出力データを供給する他のデバイスとしてもよい。
【0021】
モデム56は、入力および出力装置24、26の双方として機能することができる。出力デバイスとして、モデムは、プログラムされたCPUの制御に従って、メモリからコマンドおよびデータを受けることができる。入力デバイスとして、モデム56は、ファックスまたはコンピュータデータを受け、このデータをさらに処理または記憶するためにメモリに転送することができる。モデム56は、データ、ファックスまたは音声呼出し、または一回の呼出しにおけるこれらの形式の組み合わせをサポートできる。コンピュータシステムを電話機に結合すると、コンピュータは、電話番号をダイヤルすることによって、音声呼出しを始めることができる。呼出し者は、ひとたび通信が確立すると、電話機の送受話器を通じて音声通信を続ける。音声およびデータ通信を切り換えるために、モデム56は、音声通信を開始し、コンピュータ間の通信を確立することができる。モデムを通じた多くのモードの電話通信が可能であることを、当業者には理解されたい。
【0022】
モデムに対してコマンドおよびデータを物理的に転送する処理は、モデムの形式に依存して変化する。様々の標準モデム構成が存在し、本技術分野において良く知られている。これらの構成は、例えば、内蔵または外付けモデム、またはノートブック型コンピュータにおいて広く普及しているPCMCIA(パーソナルコンピュータメモリカードインターナショナルアソシエーション(Personal Computer Memory Card International Association ))カード接続を含む。″内蔵″モデムは、インダストリースタンダードアーキテクチャ(Industry Standard Architecture(ISA))バス、エキスパンデッドインダストリースタンダードアーキテクチャ(Expanded Industry Standard Architecture (EISA))バス、またはマイクロチャネルアーキテクチャ(Micro Channel Architecture(MCA))バスのようなバス構造体32を経てコンピュータに結合される。モデムを、PCMCIAポートを経てコンピュータのバス構造体32に結合することもできる。″外付け″モデムは、RS−232シリアルポートまたはパラレルポートを経てコンピュータのバス構造体32に結合する。追加の例としては、モデムを、PCI標準(Peripheral Component Interconnect 、Peripheral Component Interconnect Special Interest Groupによって支持されるローカルバス標準)に準拠したローカルバス構造体に結合してもよい。多くの他の変形例が可能であり、当業者にはよく知られている。
【0023】
図1は、いろいろな用途のあるコンピュータシステムの基本的な要素を説明するブロック図であり、本図は、コンピュータシステム20の特別なアーキテクチャを説明することを意図していないことを理解されたい。例えば、コンピュータ設計の分野において既知の種々のバス構造体を、多くの方法において、望んだようにコンピュータシステムの要素の相互接続に使用できるため、個々のバス構造体を示していない。CPU28を、別個のALU33、レジスタ34および制御ユニット36によって構成してもよいし、マイクロプロセッサにおけるように、これらのCPUの部品を一緒に集積した1つのデバイスとしてもよい。さらに、コンピュータシステムの要素の数および配置を、当技術分野において既知の方法(例えば、多数プロセッサ、クライアント−サーバシステム、コンピュータネットワーキング、等)において示され、記述されているものから変えてもよい。
【0024】
図2は、コンピュータシステム内の、本発明の実施例のアーキテクチャを説明するブロック図である。このアーキテクチャは、通信アプリケーションにコンピュータシステム20に導入されたモデムへのハードウェアに依存しないアクセスを与えるモデムサブシステムを示す。この図は、ワシントン州レッドモンド(Redmond, Washington )のマイクロソフト社(Microsoft Corporation )によって開発されたWindows 95オペレーティングシステムにおけるモデムサブシステムの特別なアーキテクチャを示す。Windows 95オペレーティングシステムのアーキテクチャにおいて、DOS アプリケーションのような仮想計算機が属するリング3(50)と仮想デバイスが属するリング0(52)とを含む多数のレベルが存在する。この図は、Windows 95環境におけるモデムサブシステムの特別な例を説明するが、本発明は、この特別な実現に限定されるものではないことを理解されたい。例えば、モデムサブシステムのアーキテクチャを、オペレーティングシステムが設計されているCPUの形式に依存して変えることができる。モデムサブシステムの構造に対する多くの変形例が、本発明の範囲から逸脱することなしに可能である。
【0025】
モデムサブシステムは、モデム56へのアクセスを必要とする1つまたはそれ以上の通信アプリケーション54に対するサポートを提供する。通信アプリケーション54は、リモートネットワークアクセス、ファックスアプリケーション、eメールアプリケーション、掲示板サービスアプリケーション、等を含む。これらおよび他の種々のアプリケーションは、モデムへのアクセスを必要とし、モデムを制御し、モデムを経てデータI/Oを行う。
【0026】
テレフォニアプリケーションプログラミングインタフェース(Telephony Application Programming Interface (TAPI))モジュール58(または、″呼コントローラ″)は、モデム56を制御するアプリケーションにデバイスに依存しないインタフェースを提供する。この実現において、TAPIモジュール58を、動的にリンクされたライブラリ(dynamic linked lilbrary (DLL))とする。TAPI60を経てアプリケーション54によって呼ばれると、TAPIモジュール58は、国際呼出しのダイアル、ある形式の国内呼出しに関する待機、国内呼出しの応答、現在の呼出しの停止、等のようなモデム制御機能をサポートする。
【0027】
TAPIモジュール58は、アプリケーション機能呼び出しを、デバイス特定制御を行うサービスプロバイダ62に送る。このモデムサブシステムにおいて、サービスプロバイダを、ユニモデムサービスプロバイダ(unimodem service provider )62とする。
【0028】
ユニモデムサービスプロバイダ(unimdm.tsp)62は、TAPIモジュール58によってテレフォニサービスプロバイダインタフェース64を経て呼び出された場合、モデムデバイスの制御を行うDLL実現機能でもある。これらのモデム制御機能は、ダイアル、応答、停止等を含む。ユニモデムサービスプロバイダ62に、アプリケーションによって呼び出し、ユーザがモデムパラメータを設定するのを許可するダイアログウィンドウを表示させてもよい。
【0029】
データI/Oを呼制御APIに組み込むことができたとしても、このモデムサブシステムは、この目的のために分離した通信インタフェースを提供する。Windows 95オペレーションシステムにおいて、アプリケーションは、通信アプリケーションプログラミングインタフェース66(COMM API)に対して機能呼び出しを行い、モデム56を設定し、このモデムを通じてのデータI/Oを行う。
【0030】
モデムサブシステムにおいてCOMM API66をサポートするモジュールは、通信ドライバ68および仮想通信ドライバ(VCOMM)70を含む。通信ドライバ68は、リング3レベルモジュールであり、アプリケーションが、通信デバイスをオープンし、通信デバイスから読み出し、通信デバイスに書き込むことを許可する機能を含む。通信ドライバ68は、COMM API66をサポートし、通信アプリケーションに装置に依存しない方法でモデムを使用することを許可する。Windows 95オペレーティングシステムにおいて、通信ドライバは、Win32 カーネルの部分である。しかしながら、これは、本発明の変形例の1つに過ぎず、通信ドライバを、当業者には既知の種々の慣例的な方法において実現することができることを理解されたい。
【0031】
VCOMM70は、リング0レベルの仮想デバイスであり、システムにおける通信資源へのすべてのアクセスを管理する。これらの″通信資源″は、1つの非同期データストリームを供給する物理的または論理的なデバイスを含む。通信資源の例としては、シリアルポート、パラレルポート、およびモデムがある。
【0032】
通信ドライバ68は、VCOMMによって供給される呼機能(72)によって、VCOMMと通信する。VCOMMは、コンピュータシステムにおける通信資源に対するポートに依存しないインタフェースとして機能する。
【0033】
COMM API66は、データI/O機能、ユーザインタフェース機能、およびコンフィギュレーション(configuration )機能を含む。アプリケーションは、データI/O機能を呼出し、モデムデバイス56を通じてデータを送り、かつ受ける。ユーザインタフェース機能を経て、ユーザは、モデムの好適な動作特性を選択することができる。ダイアログボックスは、スピーカのオン/オフ、ボーレート、圧縮およびエラー訂正プロトコル、等のモデムパラメータを含むことができる。アプリケーションは、コンフィギュレーション機能を呼出し、モデム56の好適な動作特性を決定または変更する。これらのコンフィギュレーション機能に応じて、通信ドライバ68は、VCOMMを経てコンフィギュレーション機能呼び出しを汎用モデムデバイスドライバ(ユニモデムデバイスドライバまたはunimodem.vxd)74に送る。
【0034】
VCOMMを、通信ドライバ68およびユニモデムデバイスドライバ74に対するポートに依存しないインタフェースとする。VCOMM70は、ポートドライバに対するアクセスを与え、通信資源におけるハードウェア動作を実行する。ポートドライバは、レジスタに対するVCOMM70サービスをそれら自身に使用し、通信ハードウェアに対するアクセスを制御する。これらのサービスに加えて、VCOMM70は、クライアント仮想デバイスサービスを提供し、仮想デバイスが、ポートドライバが組み込まれているどのような通信資源も使用できるようにする。特に、VCOMM70は、通信資源のオープンおよびクローズと、通信資源の設定と、通信資源からの読み出しおよび通信資源への書き込みと、通信イベントの処理と、ポートドライバの拡張機能の呼び出しとを行うサービスを提供する。
【0035】
ポートドライバは、デバイス特定コードを含み、アプリケーションが、ポートに装着された物理的または論理的な特定のデバイスと通信することを可能にする。ポートドライバの一例を、図2に示すシリアルポートドライバ(serial.vxd)とする。シリアルポートドライバは、モデムサブシステムが、シリアルポート71を経てモデム56のようなシリアル通信デバイスと通信することを可能にする。このシリアルポートドライバ76は、Windows オペレーティングシステムとともに設けられ、その動作は既知である。モデム56を、多くの異なる構成においてコンピュータに結合できることから、他のポートドライバを使用してもよいことを理解されたい。この実現において、ポートドライバを、ブートタイムにおいてまたは要求されたときにメモリ内にロードする。
【0036】
ポートドライバを要求されてロードする一例として、Windows 95オペレーティングシステムにおけるプラグアンドプレイアーキテクチャ(Plug and Play Architecture)に準拠するポートドライバを、ドライバがサポートするポートをVCOMMクライアントが開こうとする場合にロードする。プラグアンドプレイアーキテクチャは、マイクロソフト社によって開発されたWindows オペレーティングシステム環境のために設計された導入システムである。このアーキテクチャの関連した部分を、図3の導入サブシステムの参照とともに詳細に記述する。
【0037】
図2のモデム導入サブシステムにおいて、汎用モデムドライバは、TAPI60からの呼制御機能およびCOMM API66からのデータ伝送機能の両方のためのインタフェースを提供する。汎用モデムドライバは、ユニモデムサービスプロバイダ62と呼ばれるテレフォニサービスプロバイダと、ユニモデムデバイスドライバ(unimodem.vxd)74と呼ばれるVCOMMポートドライバとを含む。ユニモデムサービスプロバイダ62は、ユニモデムデバイスドライバの保護モードインタフェースにおいて実行される機能(78)に対する呼出しを行うことによって、ユニモデムデバイスドライバ74と通信する。ユニモデムサービスプロバイダ62とユニモデムデバイスドライバ74との間のインタフェースを、当業者に既知の慣例的な技術を使用する他の方法において実現してもよい。
【0038】
ユニモデムデバイスドライバは、モデム56に対する直接呼出しは行わないが、VCOMM70に戻って呼出しを行い、モデム56と通信する。ポートドライバに対するインタフェースとしてVCOMM70を使用することによって、ユニモデムデバイスドライバ70は、ポートに依存しなくなる。この実現において、示したポートは、シリアルポートドライバ(serial.vxd)76であるが、ユニモデムデバイスドライバ74は、いかなる形式のポートに結合されたモデム56も制御できる。
【0039】
ユニモデムデバイスドライバ74は、モデム56とのすべての通信を制御する。この制御を実行するために、設定およびデータI/Oに加えて呼制御は、ユニモデムデバイスドライバ74を通過する。呼制御のために、ユニモデムサービスプロバイダ62は、ユニモデムデバイスドライバを呼び出し、ダイアル、応答、停止、等のようなモデム制御コマンドを起動する。ユニモデムサービスプロバイダ62は、これらの制御呼出しを、インタフェース78を使用するVCOMMを経てユニモデムデバイスドライバ74に渡す。これに応じて、ユニモデムデバイスドライバ74は、これらの呼制御機能を、コンピュータシステム20に結合されたモデム56の形式に適合するフォーマットに変換する。VCOMM70に戻る呼びだし(80)を行うことによって、ユニモデムデバイスドライバ74は、モデムコマンドをシリアルポートドライバ76にVCOMM70を経てポートに依存しない方法において転送する。
【0040】
COMM APIからのデータ転送機能に関して、ユニモデムデバイスドライバ74は、データI/O呼出しを監視する。データI/O呼出しは、アプリケーション54がCOMM APIを呼出したときに発生する。通信ドライバ68は、VCOMM70を経てこれらの呼出しをユニモデムデバイスドライバ74に渡す。ユニモデムデバイスドライバ74は、VCOMM70を経てこれらのコマンドを、モデム56が装着されたポートドライバ76に渡す。
【0041】
ユニモデムデバイスドライバ74は、モデム56の透過性をコマンドモードとデータモードとに分離する。モデム56がコマンドモードにある場合、ユニモデムデバイスドライバ74は、ポートドライバ76を経てモデム制御コマンドをモデム56に渡す。反対に、モデム56がデータモードにある場合、ユニモデムデバイスドライバ74は、ポートドライバ76を経てデータI/Oコマンドをモデム56に渡す。ユニモデムデバイスドライバ74は、サービスプロバイダ62およびアプリケーション54に関連して、透過性をコマンドおよびデータモード間で切り換える。″透過″制御は、ユニモデムサービスプロバイダ62が、データモード中にモデム56にデータが送られているのを知らず、アプリケーション54が、コマンドモード中にモデム56に呼制御コマンドが送られているのを知らないことを意味する。
【0042】
モデムがコマンドモードの場合、設定および監視に関するCOMM API機能が処理される。例えば、アプリケーション56が、データの10バイトを受けた場合そのことを知らせるためにCOMM API66において呼出しを行った場合、コマンドモードにおいてモデム56から受けたバイトは、計数されない。モデム56がデータモードに切り換わり、10バイトが受けられるとすぐに、アプリケーション54は通知される。
【0043】
モデムがコマンドモードの場合、ユニモデムデバイスドライバは、アプリケーションからのデータI/Oコマンドを処理しない。しかしながら、ユニモデムデバイスドライバは、COMM APIからのモデム設定呼出しと、呼制御に関するいくつかの拡張機能を処理することができる。これらの拡張機能は、初期化、ダイアル、および傾聴のような機能を含む。初期化拡張は、モデムを適正設定に初期化する。ユニモデムデバイスドライバは、TAPIモジュールに通知することによって初期化が完了した場合、報告する。ダイアル拡張は、ユニモデムデバイスドライバに番号をダイアルすることを要求する。ユニモデムデバイスドライバは、モデムが接続した場合および接続に失敗した場合に報告する。傾聴拡張は、ユニモデムデバイスドライバに到来した呼出しに答えることを要求する。
【0044】
汎用モデムドライバ74は、多様なモデム形式をサポートすることができる。個々のモデム56をサポートするために、デバイス特定情報をレジストリにロードする導入サブシステムが存在する。一度この情報がロードされると、汎用モデムドライバは、デバイス特定コマンドを使用してモデムと通信できるようになる。この導入サブシステムについて、図3の参照とともに以下に記述する。
【0045】
図3は、本発明の実施例による導入サブシステムアーキテクチャを説明するブロック図である。導入サブシステムは、コンフィギュレーションマネージャ90、エニュメレータ92、クラスインストーラ94、デバイスローダ、およびレジストリデータ記憶96を含む。本サブシステムにおいては、上述した仮想デバイスVCOMM70を、デバイスローダとする。
【0046】
コンフィギュレーションマネージャモジュール90を使用し、モデムハードウェアのような物理的デバイスと、通信ポートのような論理的装置とを含む本システムにおける通信資源の管理を行う。Windows オペレーティングシステムにおいて、コンフィギュレーションマネージャ90は、リング0に属する仮想デバイスである。特定のローディングの位置および方法が本発明に不足しているとしても、この実現におけるコンフィギュレーションマネージャ90は、システム起動時にオペレーティングシステムによってロードされる。コンピュータシステム20をオンにした場合、CPUは、その起動ルーチンを実行する。この段階の間に、CPUは、コンフィギュレーションマネージャ90を含むオペレーティングシステムをロードする。コンフィギュレーションマネージャ90は、レジストリ96内の設定情報を含むデータ構造体の情報を読み取ることによって、システム構成について学ぶ。コンフィギュレーションマネージャ90は、エニュメレータをロードし、コンピュータシステム20に結合されたモデムデバイスの識別を助ける。コンフィギュレーションマネージャは90は、資源の競合の検査と、システムにおけるデバイスについての情報の、この場合にはVCOMM70であるデバイスローダへの報告も行う。コンフィギュレーションマネージャ90は、新たなデバイスがシステム構成に追加されたことを決定すると、クラスインストーラ94を呼出し、新たなデバイスについての情報をレジストリ96にロードする。
【0047】
エニュメレータ92は、コンピュータシステムに装着されたデバイスを識別するのに使用される検出モジュールである。Windows 95オペレーティングシステムにおいて、エニュメレータ92は、リング0に属する仮想デバイスである。起動時に、コンフィギュレーションマネージャ90は、各バスに対して1つのエニュメレータをコンピュータシステム20にロードする。コンピュータシステム構成に依存して、コンフィギュレーションマネージャは、例えば、ISA、PCMCIA、PCI(Peripheral Component Interconnect 、Peripheral Component Interconnect Special Interest Groupによって支持されるローカルバス標準)、シリアルCOM、等の、1つまたはそれ以上のエニュメレータをロードすることができる。エニュメレータ92を起動時に使用し、新たに導入された装置を検出する。PCMCIA互換デバイスのようないくつかのモデムは、起動後にロードできることから、エニュメレータ92を、ランタイムにおいて装着されたモデムデバイスの検出にも使用する。
【0048】
ランタイム前かランタイム中かに装着された、新たに導入されたモデムは、デバイス識別(ID)によってそれ自身を識別できる。デバイスIDを、モデム56の形式を識別する単一番号または文字列としてもよい。モデム56が自分自身を識別できる、多くの他の方法が存在する。例えは、モデムは、接続されていることを単に識別し、特別なデバイスIDを与えない。このようにした場合、エニュメレータを、デバイス特定情報を読み取り、制御および設定情報がコンピュータシステムに格納されているモデムデバイスを記述するデータを有するこの情報に適合させようとするように設計することができる。
【0049】
いくつかの場合において、導入サブシステムは、モデムに質問してモデム特定情報を発生させ、この情報からデバイスIDを得る必要があるかもしれない。この追加のモデム検出について、クラスインストーラ94と関連して以下に記述する。エニュメレータ92は、デバイスIDを成功裏に決定した場合、このデバイスIDをコンフィギュレーションマネージャ90に報告する。つぎにコンフィギュレーションマネージャ90は、このデバイスIDを有するクラスインストーラを呼出し、その結果、新たなデバイスのデバイス特定情報をレジストリ96にロードすることができる。
【0050】
レジストリ96は、コンピュータシステム20についての情報を保持するデータ構造体である。モデムを導入する状況において、レジストリ96は、コンピュータシステム20に結合された1つまたはそれ以上のモデムについての情報を保持する。このモデム情報を見失わないようにするために、レジストリ96は、ハードウェア接続情報とモデム制御および構成情報とを示す項目の列を含む。モデムがコンピュータシステムに導入されると、これらの項目は、レジストリ96に追加される。モデム情報を、ユーザがモデム情報を選択および/または入力することを可能にするユーザインタフェースの支援によってレジストリ96に追加することができる。モデム情報を、クラスインストーラ94によってレジストリに追加することもできる。
【0051】
本実施例において、導入サブシステムは、デバイスがWindows 95オペレーティングシステムのプラグアンドプレイアーキテクチャに準拠しているかどうかに依存して異なって動作する。非プラグアンドプレイデバイスの場合、ユーザは、導入過程の間、レジストリにロードすべき情報を指定する。これは、レジストリにロードすべきファイルにおけるユーザ指定情報を含んでもよい。ユーザは、ユーザインタフェースにおける制御パネルを通じて、情報を選択および/または入力することができる。ユーザがモデム情報を対話式に選択および入力できるのに加えて、プラグアンドプレイアーキテクチャは、ユーザの介在なしにモデムを導入することができる。プラグアンドプレイデバイスの場合、エニュメレータ92は、このデバイスがコンピュータシステムにおけるバスに結合されているかどうかを検出する。プラグアンドプレイデバイスを、コンピュータシステムをオンにする前にバスに装着することができ、いくつかの場合において、ランタンムにおいてバスに装着することができる。いずれの場合においても、エニュメレータ92は、デバイス特定情報をバスから読み出し、デバイスIDをコンフィギュレーションマネージャ90に報告する。コンフィギュレーションマネージャ90が、モデム56が新たなものであると決定した場合、クラスインストーラ94を呼出し、デバイス特定情報をINF(情報)ファイル98からレジストリにロードする。
【0052】
INFファイル98は、1つまたはそれ以上のモデムに関する特定および制御コマンドを記述する1つまたはそれ以上のスクリプトファイルを含む。INFファイルを、コンピュータシステムの補助記憶装置に記録し、必要な場合にアクセスすることができる。モデムスクリプトファイルは、モデムの機能と、モデムの制御に必要なATコマンドとについての記述を含む。クラスインストーラが、モデムに関するINFファイル98からの情報を追加した後、ユニモデムデバイスドライバ74は、レジストリ96におけるこの情報を、モデムの適切な制御に使用することができる。
【0053】
クラスインストーラ94は、動的にリンクされたライブラリであり、モデムを識別し、コンピュータシステム20に導入することに使用することができる。デバイスIDを受けるのに応じて、クラスインストーラ94は、スクリプトファイルから固有情報をレジストリ96にロードする。クラスインストーラは、ユーザの要求に応じて、モデムスクリプトをレジストリにロードすることができる。代わりに、クラスインストーラ94は、ユーザの介在なしに、デバイス特定情報をレジストリにロードすることもできる。エニュメレータ92がモデム56を認識した場合、コンフィギュレーションマネージャは、デバイスIDをクラスインストーラ94に渡す。次に、クラスインストーラは、固有モデムスクリプトをレジストリに自動的にロードする。
【0054】
エニュメレータがモデムの確認を決定できない場合、クラスインストーラを、モデムの形式の検出に使用することができる。クラスインストーラ94は、まだ未確認のモデムにコマンド列を発生することによって、モデムに質問する。質問に応じて、モデムは、自分自身についての情報を伝送することによって応答する。モデムを確認するためだけには、多くの情報は利用しないことから、モデムの応答をきれいにし、32ビット巡回冗長検査を最後に行い、32ビット数を発生させる。次にクラスインストーラ94は、この数を使用し、INFファイル98におけるモデムスクリプトに対応する適合するデバイスIDを見つける。
【0055】
図4および図5は、モデムの形式を検出する導入サブシステムにおいて実行されるステップを示す。検出方法は、モデムの存在に関して装着されているモデムを有する可能性がある各通信ポートの検査を含む。ポートにおいてモデムが存在しているかどうかを検査するために、クラスインストーラ94は、最初にVCOMM70を呼出し、このポートを開く。次にVCOMM70は、このポートに関するポートドライバ76をロードし、クラスインストーラ94とこのポートとの間の通信を確立する。VCOMM70を使用して、ポートを開くステップと通信を確立するステップとは、マイクロソフト社から入手できるVCOMM APIに記載されている。
【0056】
通信が一度確立すると、クラスインストーラ94は、質問を発生し、モデムが接続されている場合、これを決定する(100,102)。この質問は、ATE0Q0V1であり、ATコマンドセットからの標準的なコマンド列である。逐語的にこの質問は、エコーオフ(E0)、応答する(Q0)、詳しい形式で応答する(V1)を意味する。
【0057】
クラスインストーラ94は、標準ボーレートの各々において、初期質問を4回発生する(104,106)。これらのレートは、9600、2400、1200、および300を含む。あるボーレートにおいてモデムが検出された場合、クラスインストーラ94は、次のステップに進む。もしそうでなければ、クラスインストーラ94は、次の通信ポートに移り、初期質問を繰り返す。
【0058】
モデムが検出された場合、クラスインストーラは、デバイスIDを構築しようとする。図4および図5に示す次のステップは、巡回冗長検査プログラムを初期化するステップである(108)。このステップにおいて特別に行われる初期化は、決定的なものではない。しかしながら、デバイスIDを発生するCRC計算の前に行うべきである。この実施例において、CRC表を瞬時に構築する。この形式のCRCは、CRC表の静的なコピーを保持する必要性がなくなるため、性能が向上する。この形式のCRCプログラムの代わりに、種々のCRCプログラムを使用することができるが、この形式のCRCプログラムが好適である。CRC表は、瞬時に形成されることから、CRCプログラムは、この処理の初期に初期化される。CRC表を構築する次のステップを、次のステップ110として示すが、ステップ110は、実際には瞬時に生じることを理解されたい。
【0059】
図4および図5における次の2つのステップ112および114は、質問リストにおける質問を発生する処理を表す。表1は、リスト上の質問である。
【表1】
Figure 0004054390
【0060】
表1の各々のコマンドは、モデムに命令し、そのメモリに自分自身についての情報に関して質問させ、その情報を返させる。
【0061】
質問を発生した後、クラスインストーラは、応答を読み取る(116)。次にこの応答を、質問の形式に従ってきれいにする。質問がATI0の場合(118)、第1ラインの第1ワードのみを使用する(120)。
【0062】
質問がATI4であり、応答文字列が、ヘイズATコマンドセットにおいて示されるI4標準に適合する場合、第1ライン全体を使用する(124)。
【0063】
他のすべての質問に関して、第1ラインを以下のようにきれいにする。
【0064】
文字列が、以下の表2に示すベイル(bail)リストにある場合(126)、ベイルリスト中の文字列に格納されている部分のみを使用する(128)。
【表2】
Figure 0004054390
【0065】
文字列が、以下の表3に示す包含リストにあり、数字に囲まれていない場合(130)、文字列全体を使用する(132)。
【表3】
Figure 0004054390
【0066】
文字列が、以下の表4に示す排除リストにある場合、この文字列をスキップする(136)。
【表4】
Figure 0004054390
【0067】
上記のステップのいずれもが、第1ラインの文字列に対して満足されない場合、この文字列を次のようにきれいにする。
1) すべての数字を除去する(138)。
2) 非6文字に隣接していないすべての6文字を除去する(140)。
3) それら自身によってすべての文字を除去する(142)。
4) すべてのピリオド、カンマ、および間隔を除去する(144)。
【0068】
表1のリスト上のすべての質問を発生した後、巡回冗長検査を、きれいにした応答における各々の文字または数字に関して計算する(146)。CRCの結果は、32ビット数である。次に32ビットCRCを、″UNIMODEMxxxxxxxx″の形式のデバイスIDを表す文字列に変換する(148)。
【0069】
次にクラスインストーラ94は、デバイス情報がINFファイル98に含まれるデバイスIDのリストを探索する必要がある。適合するものが見つかった場合(150)、クラスインストーラは、適切なスクリプトをレジストリ96にロードすることができる。
【0070】
しかしながら適合するものが存在しない場合、汎用IDを使用する(152)。汎用IDを、モデムサブシステムがモデムが接続されていることを知っているが、モデムを明確に識別できない、および/または適合するデバイスIDを見つけられない場合に使用する。汎用IDは、INFファイルにおける汎用モデム制御情報に関連する。この汎用モデム制御情報は、広く多種のモデムに大部分適合すると思われるコマンドを基礎とする。汎用制御情報を、接続された特定のモデムに対して作り変えることができる。さらに、大体のDCEレートを、ATI0質問に対する応答に基づいて決定することができる。
【0071】
モデムサブシステムおよひ導入サブシステムの双方のアーキテクチャおよび動作を記述したので、例とともに実施例の動作を説明するのに好適になった。
【0072】
この処理の第1段階は、モデムのコンピュータシステムへの導入である。この導入段階は、モデムを認識することと、次にモデム特定情報をレジストリ96にロードすることとを含む。処理の第2段階は、モデムに依存しないインタフェースを使用し、モデムとのデータI/Oを制御しかつ行うことを含む。次の例は、PCMCIA互換モデムデバイスに関するものである。モデムの形式、すなわち、外付けであるか、内蔵であるかと、含まれる物理的および論理的通信ポートの形式とに依存して、他の導入構成が可能であることを理解されたい。
【0073】
代表的なPCMCIAデバイスに関して、ユーザが、コンピュータシステム20におけるPCMCIAバスに結合されたPCMCIAカードスロットにPCMCIAカードを挿入したときに、導入は開始する。ユーザは、コンピュータの起動前か、ランタイム中に、デバイスを挿入してもよい。
【0074】
ユーザが、起動前にPCMCIAを導入する場合、起動時にバスにロードされたエニュメレータ92が、デバイスを検出し、そのデバイスIDをコンフィギュレーションマネージャ90に報告しようとする。PCMCIAデバイスの場合、PCMCIAコネクタに装着されたPCMCIAデバイスを検出し、報告するエニュメレータ92が存在する。同様に、ユーザが、ランタイムにおいてデバイスを挿入する場合、エニュメレータ92は、同様の検出および報告ステップを行う。エニュメレータ92が、デバイスを認識できた場合、デバイスIDをコンフィギュレーションマネージャに渡す。
【0075】
次に、コンフィギュレーションマネージャ90は、デバイスIDを読み取り、モデムがシステムにおける新たなデバイスであることを認識する。コンフィギュレーションマネージャは、デバイスのリストを格納したレジストリ96を検査することによって、モデムが新たなデバイスかどうかを決定する。
【0076】
モデムが、エニュメレータ92に対して自分自身を認識させるようにプログラムされていない場合、クラスインストーラ94は、デバイスIDを発生しようとする。コンフィギュレーションマネージャ90は、クラスインストーラ94を呼出し、詳細に上述した検出プログラムを実行する。
【0077】
一度、デバイスIDが決定すると、コンフィギュレーションマネージャ90は、このデバイスIDを有するクラスインストーラ94を呼び出す。クラスインストーラ94は、このデバイスIDに基づく適切なINFファイル98を見つけ、INFファイル情報をレジストリ96にコピーする。さらにクラスインストーラ94は、PCMCIAモデムを、新たなラインデバイスとしてTAPIモジュール58に報告する。
【0078】
レジストリ96を更新した後、クラスインストーラ94は、新たなモデム56が導入されたことを、コンフィギュレーションマネージャ90に報告する。次に、コンフィギュレーションマネージャ90は、レジストリ96を読み取り、デバイスローダを決定する。この実現において、VCOMM70はデバイスローダであり、レジストリ96の入口として認識される(例えば、デバイスローダ=vcomm.vxd )。上述したように、デバイスローダとしてVCOMM70は、適切なドライバのローディングを行い、モデムとの通信を確立する。
【0079】
コンフィギュレーションマネージャ90は、モデムデバイスと、それに関連する通信資源とを認識するポインタを、デバイスローダ(VCOMM)70に与える。明確に、コンフィギュレーションマネージャ90は、ユニモデムデバイスドライバ74およびシリアルポートドライバ70のような、モデムに使用される1つまたはそれ以上のドライバについて、VCOMM70に知らせる。この時点で、モデム56は、導入され、アプリケーションによってアクセスされる準備ができる。
【0080】
アプリケーション54が、モデム56との通信を確立したい場合、TAPIモジュール58が、ラインデバイスに質問することによって開始する。TAPIモジュール58は、モデムの認識を、モデムを認識する番号に戻す。次にアプリケーション54は、″オープン″にすべきモデムのモデム認識を指定するTAPIモジュール58に対する呼出しを行うことによって、モデム56との通信を開く。
【0081】
アプリケーション54からのこの呼出しに応じて、TAPIモジュール68は、ユニモデムサービスプロバイダ62を呼出し、モデムデバイスを開く。次にユニモデムサービスプロバイダ62は、VCOMM70を呼出し、ポートを開く。
【0082】
VCOMM70が、その名前によってモデムを開く呼出しを受けた場合、ユニモデムデバイスドライバ74をロードする。VCOMM70は、デバイスの名前がレジストリ96におけるデバイスドライバと関係していることから、ユニモデムデバイスドライバ74をロードすることを知り、デバイスドライバは、ユニモデムデバイスドライバとして認識される。
【0083】
次に、ユニモデムデバイスドライバ74は、モデムと関連するポートを開くことを要求する。これに応じて、VCOMM70は、適切なポートドライバ(例えば、シリアルポートドライバ、serial.vxd)をロードする。
【0084】
この時点から、アプリケーションは、TAPIモジュール58を経て制御呼出しを行い、モデム56を制御する(すなわち、番号のダイアル、国内呼出しの待機、等)。TAPIモジュール58は、これらの制御呼出しをユニモデムサービスプロバイダ62に渡し、このユニモデムサービスプロバイダ62は、これらの呼出しを、ユニモデムデバイスドライバ74のより低いレベルの呼出しに変換する。レジストリ96における情報を使用して、ユニモデムデバイスドライバ74は、モデム56を呼出しに対して準備するために適切に初期化する。
【0085】
この時点で、アプリケーション54は、TAPIモジュール58を呼出し、モデムを介した電話接続を制御することができる。一度、他のモデムとの接続が確立すると、TAPIモジュール58は、この接続についてアプリケーションに通知する。
【0086】
本発明を、特定の実施例の参照とともに記述したが、本発明の範囲から逸脱することなしに、多くの変形例が可能であることを理解されたい。例えば、TAPIモジュールおよび通信ドライバの構成を変え、依然としてアプリケーションに対して同様のインタフェースを与えることができる。システムアーキテクチャの多くの特徴は、Windows 95システムの特定のアーキテクチャに基づくものであるが、この特定のアーキテクチャを変更することができることを理解されたい。例えば、他のシステムは、Windows オペレーティングシステムに関して既知の分離した″リング3″および″リング0″を持たなくてもよい。ユニモデムサービスプロバイダおよびユニモデムデバイスドライバを、いくつかのシステムにおいて、結合してもよい。より低いレベルにおいて、VCOMMのようなポートに依存しないインタフェースが存在することは必要なく、同様にユニモデムデバイスドライバを、VCOMMポートドライバとする必要はない。エニミュレータ、ユニモデムデバイスドライバ、およびクラスインストーラによって提供される機能を、異なるモジュールにおいて提供することができ、システムにおいて種々の方法においてロードすることができる。要するに、多くの変形例が可能である。
【図面の簡単な説明】
【図1】本発明の実施例を実現するコンピュータシステムのブロック図である。
【図2】コンピュータシステムにおける本発明の実施例のアーキテクチャを説明するブロック図である。
【図3】本発明の実施例の1つの特徴によるインストーラアーキテクチャを説明するブロック図である。
【図4】モデムの形式を検出する導入サブシステムにおいて実行されるステップを説明するフローチャートを図5とともに構成する一部である。
【図5】モデムの形式を検出する導入サブシステムにおいて実行されるステップを説明するフローチャートを図4とともに構成する一部である。
【符号の説明】
20 コンピュータシステム
22 コンピュータ
24 入力デバイス
26 出力デバイス
28 中央処理ユニット
30 メモリシステム
32 バス構造体
33 演算器
34 レジスタ
36 制御ユニット
38 メインメモリ
40 2次記憶装置
50 リング3
52 リング0
54 通信アプリケーション
56 モデム
58 TAPIモジュール
60 TAPI
62 ユニモデムサービスプロバイダ
64 テレフォニサービスプロバイダインタフェース
66 通信アプリケーションプログラミングインタフェース
68 通信ドライバ
70 仮想通信ドライバ
71 シリアルポート
74 汎用モデムデバイスドライバ
76 シリアルポートドライバ

Claims (17)

  1. コンピュータにおいて実行する1つ以上のアプリケーションプログラムに関するデバイスに依存しないモデムインタフェースにおいて、
    モデム特定制御情報を記憶するレジストリデータ記憶部と、
    モデムに依存しない制御コマンドを前記アプリケーションプログラムから受け、モデムを制御する呼コントローラと、
    データI/Oコマンドを前記アプリケーションプログラムから受け、前記モデムを経てデータを伝送する通信ドライバと、
    前記レジストリデータ記憶部との通信において前記モデムに関するモデム特定制御情報を読み出し、前記呼コントローラとの通信においてモデムに依存しない制御コマンドを受け、前記通信ドライバとの通信において前記データI/Oコマンドを受け、前記モデムとの通信において、前記レジストリデータ記憶部におけるモデム特定制御情報、および、前記モデムに依存しない制御コマンド、に基づきモデム特定制御コマンドを生成する汎用モデムドライバであって、前記モデム特定制御コマンドの生成が、前記モデムに依存しない制御コマンドをモデム特定制御コマンドに変換することを含む汎用モデムドライバであって、前記汎用ドライバが、前記通信ドライバを経て、および、前記モデムに接続されたポートドライバを経て、前記データI/Oコマンドを前記モデムに渡す、汎用モデムドライバと、
    を具えることを特徴とするデバイスに依存しないモデムインタフェース。
  2. 請求項1に記載のデバイスに依存しないモデムインタフェースにおいて、前記汎用モデムドライバが、前記モデムのコマンドモードおよびデータモードを識別し、前記モデムがコマンドモードにある場合、前記汎用モデムドライバがモデム特定制御コマンドを前記呼コントローラから前記モデムに伝送し、前記モデムがデータモードにある場合、前記汎用モデムドライバが、前記モデムに接続された前記ポートドライバを経て、データI/Oコマンドを前記モデムに伝送するようにし、前記汎用モデムドライバが、前記コマンドモードとデータモードとの間で切り替え、コマンドモードにある間、前記通信ドライバが前記アプリケーションからのデータI/Oコマンドを処理し続け、データモードにある間、前記呼コントローラが前記アプリケーションからのモデムに依存しない制御コマンドを処理し続けるようにすることを特徴とするデバイスに依存しないモデムインタフェース。
  3. 請求項1に記載のデバイスに依存しないモデムインタフェースにおいて、前記レジストリデータ記憶部が、クラスインストーラとの通信においてモデム形式を決定すると共に前記モデム形式に対応する情報ファイルを二次記憶部から前記コンピュータのメモリにおけるレジストリにロードし、前記情報ファイルが、前記汎用モデムドライバによって使用されて前記モデムを制御するモデム特定制御情報のすべてを含むことを特徴とするデバイスに依存しないモデムインタフェース。
  4. 請求項1に記載のデバイスに依存しないモデムインタフェースにおいて、前記ポートドライバとのデータ通信を行うポートドライバインタフェースをさらに具え、
    前記汎用モデムドライバが、前記ポートドライバと通信するポートドライバインタフェースとの通信においてポートドライバ形式に依存しないことを特徴とするデバイスに依存しないモデムインタフェース。
  5. 請求項1に記載のデバイスに依存しないモデムインタフェースにおいて、前記呼コントローラおよび通信ドライバを1つのモジュールに組み入れ、これらが前記コンピュータにおいて実行するアプリケーションプログラムにアクセス可能なアプリケーションプログラミングインタフェースを与えることを特徴とするデバイスに依存しないモデムインタフェース。
  6. 請求項1に記載のデバイスに依存しないモデムインタフェースにおいて、前記呼コントローラおよび通信ドライバが別個のモジュールであり、各々が前記コンピュータにおいて実行するアプリケーションプログラムにアクセス可能なアプリケーションプログラミングインタフェースを与えることを特徴とするデバイスに依存しないモデムインタフェース。
  7. 請求項6に記載のデバイスに依存しないモデムインタフェースにおいて、前記呼コントローラを、実行可能命令を具えるダイナミックリンクライブラリとしたことを特徴とするデバイスに依存しないモデムインタフェース。
  8. 請求項6に記載のデバイスに依存しないモデムインタフェースにおいて、前記通信ドライバを、実行可能命令を具えるダイナミックリンクライブラリとしたことを特徴とするデバイスに依存しないモデムインタフェース。
  9. 請求項1に記載のデバイスに依存しないモデムインタフェースにおいて、モデム検出コマンドを前記モデムに発し、モデム特定識別情報を前記モデムから受け、デバイスIDを前記モデム特定識別情報に基づいて発生するクラスインストーラをさらに含むことを特徴とするデバイスに依存しないモデムインタフェース。
  10. 呼コントローラと、1つ以上のアプリケーションプログラムにアクセス可能な通信ドライバと、モデム特定制御コマンドをモデムに伝送する汎用モデムドライバと、モデム特定制御情報を記憶するレジストリデータ記憶部とを具えるコンピュータシステムにおけるモデムを通じて通信する方法において、
    モデム特定制御情報を前記レジストリデータストアから前記汎用モデムドライバによって読み出し、前記汎用モデムドライバがモデム特定制御コマンドを前記コンピュータシステムにおけるモデムに発することができるようにするステップと、
    モデムに依存しない制御コマンドを前記呼コントローラにおける1つ以上のアプリケーションプログラムから受けるステップと、
    データI/Oコマンドを前記通信ドライバにおける1つ以上のアプリケーションプログラムから受けるステップと、
    前記呼コントローラにおける前記モデムに依存しない制御コマンドの受け取りに応じて、前記モデムに依存しない制御コマンドを前記汎用モデムドライバに発するステップと、
    前記通信ドライバにおける前記データI/Oの受け取りに応じて、前記データI/Oコマンドを前記汎用モデムドライバに発するステップと、
    前記汎用モデムドライバによって、前記汎用モデムドライバに発した前記モデムに依存しない制御コマンドの少なくとも幾つかを、モデム特定制御コマンドに変換するステップとを含み、
    前記モデムがコマンドモードにある場合、前記モデム特定制御コマンドを前記モデムに前記汎用モデムドライバによって伝送し、少なくとも第1のデータI/Oコマンドを前記通信ドライバから前記汎用モデムドライバに発し続け、前記汎用モデムドライバによって受けた少なくとも第1のデータI/Oコマンドの処理を、コマンドモードにある間、前記モデムがデータモードに切り替わるまで一時停止し、前記アプリケーションプログラムが、前記モデムがコマンドモードにあるのかまたはデータモードにあるのかを知っている必要がないようにするステップと、
    前記モデムがデータモードにある場合、前記汎用モデムドライバに発した前記データI/Oコマンドに応じて、データI/Oコマンドを前記モデムに前記汎用モデムドライバを経て伝送し、少なくとも第1のモデムに依存しない制御コマンドを前記呼コントローラから前記汎用モデムドライバに発し続け、前記汎用モデムドライバによって受けた少なくとも第1のモデムに依存しない制御コマンドの処理を、データモードにある間、前記モデムがコマンドモードに切り替わるまで一時停止し、前記呼コントローラが、前記モデムがコマンドモードにあるのかまたはデータモードにあるのかを知っている必要がないようにするステップとを含むことを特徴とする方法。
  11. 請求項10に記載の方法において、前記コンピュータシステムが、前記レジストリデータ記憶部との通信においてモデム特定制御情報をモデム情報ファイルから前記レジストリデータ記憶部に格納するクラスインストーラと、前記モデムとの通信においてモデム形式を検出するエニュメレータ検出モジュールとをさらに含み、
    モデムが前記コンピュータシステムのバスに接続されている場合、前記モデム形式を前記エニュメレータ検出モジュールによって検出するステップと、
    モデム形式の検出に応じて、前記モデム形式を前記クラスインストーラに指定するステップと、
    前記クラスインストーラにおける前記モデム形式の受け取りに応じて、モデム特定制御情報を前記レジストリデータ記憶部に前記クラスインストーラによってロードするステップとを含むことを特徴とする方法。
  12. 請求項11に記載の方法において、前記検出するステップがモデム識別情報を前記モデムから読み出すステップを含み、前記識別するステップが前記モデム識別情報に基づく装置IDを前記クラスインストーラに報告するステップを含むことを特徴とする方法。
  13. 請求項10に記載の方法において、前記コンピュータシステムが前記モデムとの通信においてモデム形式を検出するクラスインストーラを含み、
    一連の問合せを前記モデムに前記クラスインストーラによって発するステップと、
    前記一連の問合せに対するモデム応答を受けるステップと、
    前記モデム応答のどの部分を保存するかを、前記一連の問合せのモデム特定応答データを得るために発せられた問合せに応じて決定するステップと、
    前記モデム特定応答データをユニークデバイスIDに変換するステップと、
    前記ユニークデバイスIDに関する一致を見つけようとするステップと、
    前記ユニークデバイスIDに関する一致が見つかった場合、前記ユニークデバイスIDに対応するモデム特定制御情報を前記レジストリデータ記憶部にロードするステップとをさらに含むことを特徴とする方法。
  14. 請求項10に記載の方法において、前記コンピュータシステムが、前記レジストリデータ記憶部と通信するコンフィギュレーションマネージャと、前記汎用モデムドライバにロードするデバイスローダとを有し、
    前記レジストリデータ記憶部を前記コンフィギュレーションマネージャによって読み出し、前記デバイスローダを決定するステップと、
    アプリケーションプログラムがコマンドを前記呼制御モジュールに発し、前記モデムとの通信を確立する場合、前記汎用モデムドライバをメインメモリに二次記憶部から前記デバイスローダによってロードするステップとをさらに含むことを特徴とする方法。
  15. コンピュータにおいて実行する複数のアプリケーションプログラムからモデムに依存しない制御コマンドを受ける呼コントローラと、汎用モデムドライバとを含む前記コンピュータにおけるモデムを通じる通信を制御する方法において、
    前記モデムに問合せ、モデム形式を検出するステップと、
    前記モデム形式の検出に応じて、前記モデム形式に関係するモデム特定制御情報をロードするステップと、
    前記モデムに依存しない制御コマンドを前記複数のアプリケーションプログラムから前記呼コントローラにおいて受けるステップと、
    前記モデムに依存しない制御コマンドを前記汎用モデムドライバに発するステップと、
    前記モデムに依存しない制御コマンドを前記汎用モデムドライバにおいて前記モデム形式に関係するモデム特定制御情報を使用してモデム特定制御コマンドに変換するステップとを含むことを特徴とする方法。
  16. 請求項15に記載の方法において、前記コンピュータが、前記コンピュータにおいて実行するアプリケーションプログラムからデータI/Oコマンドを受ける通信ドライバを含み、
    データI/Oコマンドを前記アプリケーションプログラムから前記通信ドライバにおいて受けるステップと、
    前記データI/Oコマンドを前記汎用モデムドライバに発するステップと、
    前記モデムがデータモードにある間、前記データI/Oコマンドを前記モデムに前記汎用モデムドライバから発し、少なくとも1つの第1のモデムに依存しない制御コマンドを前記汎用モデムドライバに前記呼コントローラから発し続け、前記汎用モデムドライバによって受けた前記第1のモデムに依存しない制御コマンドの処理を前記モデムがコマンドモードになるまで一時停止するステップとをさらに含むことを特徴とする方法。
  17. 請求項15に記載の方法において、前記モデムがコマンドモードにある間、前記モデム特定制御コマンドを前記モデムに発し、少なくとも第1データI/Oコマンドを前記汎用モデムドライバに前記通信ドライバから発し続け、前記汎用モデムドライバによって受けた第1データI/Oコマンドの処理を前記モデムがデータモードになるまで一時停止するステップをさらに含むことを特徴とする方法。
JP32464795A 1994-12-13 1995-12-13 モデムインタフェース Expired - Fee Related JP4054390B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/356,059 US5815682A (en) 1994-12-13 1994-12-13 Device independent modem interface
US08/356059 1994-12-13

Publications (2)

Publication Number Publication Date
JPH08272717A JPH08272717A (ja) 1996-10-18
JP4054390B2 true JP4054390B2 (ja) 2008-02-27

Family

ID=23399935

Family Applications (1)

Application Number Title Priority Date Filing Date
JP32464795A Expired - Fee Related JP4054390B2 (ja) 1994-12-13 1995-12-13 モデムインタフェース

Country Status (3)

Country Link
US (2) US5815682A (ja)
EP (1) EP0717548A3 (ja)
JP (1) JP4054390B2 (ja)

Families Citing this family (75)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6083270A (en) * 1995-03-24 2000-07-04 The Board Of Trustees Of The Leland Stanford Junior University Devices and methods for interfacing human users with electronic devices
US6073183A (en) * 1995-03-31 2000-06-06 Intel Corporation Transparent communication with multiple devices over a single serial or parallel port of a computer
FI98028C (fi) * 1995-05-03 1997-03-25 Nokia Mobile Phones Ltd Datasovitin
US5794032A (en) * 1996-04-15 1998-08-11 Micron Electronics, Inc. System for the identification and configuration of computer hardware peripherals
JP2812307B2 (ja) * 1996-06-24 1998-10-22 日本電気株式会社 モデムコマンドから電話制御関数への変換方式
US5805636A (en) * 1996-10-01 1998-09-08 Intel Corporation Method and apparatus for simultaneous voice, data, and video communication in a computer system
US5898845A (en) * 1996-10-29 1999-04-27 Intervoice Limited Partnership Assigning and utilizing overlapping address space for multiple cards on a common computer bus
US5815731A (en) * 1996-10-31 1998-09-29 International Business Machines Corporation Method and system for providing device driver configurations on demand
US6041364A (en) * 1996-12-19 2000-03-21 Intel Corporation Method and system for adding a device entry to a device tree upon detecting the connection of a device
US5903778A (en) * 1997-06-16 1999-05-11 Behavior Tech Computer Corp. Method for enabling traditional SCSI peripheral equipments to be compatible with plug-and-play protocol
US5938745A (en) * 1997-06-25 1999-08-17 Intel Corporation Arbitrator for modem in a system without shared process space that passes a duplicate handle to a first listening application with matching identification string
JPH11102296A (ja) * 1997-07-29 1999-04-13 Casio Comput Co Ltd 制御装置及び制御方法
US6041075A (en) * 1997-09-29 2000-03-21 Intel Corporation Scheme for the detection of V.25 ter responses from modem, on a TAP1 voice call
US6370591B2 (en) * 1997-09-30 2002-04-09 Nokia Mobile Phones Ltd. Method and apparatus for running simultaneous applications through the same port using supplementary drivers through a main driver
GB2331666A (en) * 1997-11-20 1999-05-26 Dsc Telecom Lp Subscriber Terminal for a Wireless Telecommunications System
WO1999035815A1 (en) * 1998-01-06 1999-07-15 America Online, Inc. Automatic identification of modems
US6289464B1 (en) 1998-01-07 2001-09-11 Microsoft Corporation Receiving wireless information on a mobile device with reduced power consumption
US6449638B1 (en) * 1998-01-07 2002-09-10 Microsoft Corporation Channel definition architecture extension
US6507874B1 (en) 1998-01-07 2003-01-14 Microsoft Corporation System for efficient routing and translation of data
US7171677B1 (en) * 1998-02-25 2007-01-30 Nec Corporation Broadcast storing and displaying apparatus and video apparatus
US6161201A (en) * 1998-02-26 2000-12-12 3Com Corporation Method and apparatus for concurrent interaction with a modem having an open connection
JP4208328B2 (ja) * 1998-03-13 2009-01-14 キヤノン株式会社 ホストコンピュータ、接続状態表示方法、及び、記憶媒体
US6081855A (en) * 1998-04-15 2000-06-27 Oak Technology, Inc. Digital versatile disc playback system with flexible input interface
US6647099B1 (en) * 1998-06-08 2003-11-11 Hewlett-Packard Development Company, L.P. Administrative control and security of modems
US6988274B2 (en) * 1998-06-12 2006-01-17 Microsoft Corporation Method, system, and computer program product for representing and connecting an underlying connection-oriented device in a known format
US6374312B1 (en) * 1998-09-25 2002-04-16 Intel Corporation System for dedicating a host processor to running one of a plurality of modem programs and dedicating a DSP to running another one of the modem programs
US6262726B1 (en) 1998-10-09 2001-07-17 Dell U.S.A., L.P. Factory installing desktop components for an active desktop
US6282586B1 (en) * 1998-10-28 2001-08-28 3Com Corporation Method in an operating system, a method and system for supporting multiple hardware devices from a single communications port
US6735766B1 (en) * 1999-03-03 2004-05-11 Microsoft Corporation Method and computer-readable medium for installing an upgrade to an application program
US20050149921A1 (en) * 1999-03-19 2005-07-07 Rollins Douglas L. Software module update
US6546434B1 (en) 1999-04-12 2003-04-08 Eaton Corporation Virtual device driver
US6598095B2 (en) * 1999-04-14 2003-07-22 Micron Technology, Inc. Method and system for identifying and configuring peripheral devices
US8212893B2 (en) 1999-06-08 2012-07-03 Verisign, Inc. Digital camera device and methodology for distributed processing and wireless transmission of digital images
US6757716B1 (en) * 1999-07-09 2004-06-29 Microsoft Corporation Method and system for modifying host application functionality based upon downloaded content
US6473854B1 (en) 1999-10-07 2002-10-29 Micron Technology, Inc. Method for automatically retrieving and installing device drivers across a network
US6442683B1 (en) 1999-10-07 2002-08-27 Micron Technology, Inc. Apparatus for automatically retrieving and installing device drivers across a network
US6687342B1 (en) * 2000-01-18 2004-02-03 Siemens Information & Communication Networks, Inc. System and method for retaining client configuration information across the re-installation of any tapi service provider in a tapi 2.1 environment
US6427198B1 (en) * 2000-02-15 2002-07-30 International Business Machines Corporation Method, system, and program for determining system configuration
US7389334B2 (en) * 2000-04-24 2008-06-17 Microsoft Corporation Exposing bluetooth compliant wireless device connection as modems or sockets
US7114020B1 (en) * 2000-04-28 2006-09-26 Hewlett-Packard Development Company, L.P. Software mechanism for unique identification of SCSI device
US7610349B1 (en) * 2000-10-31 2009-10-27 Lightsurf Technologies, Inc. Photo-serving communication protocols and methodology for providing disparate host devices with FTP-like access to digital images residing on a digital camera device
US7203954B1 (en) * 2000-10-11 2007-04-10 Sony Corporation IP address discovery for cable modem in set-top box
US6956823B1 (en) 2000-10-11 2005-10-18 Qwest Communications International Inc. Apparatus and method for classifying terminating numbers
US6976217B1 (en) * 2000-10-13 2005-12-13 Palmsource, Inc. Method and apparatus for integrating phone and PDA user interface on a single processor
US6961942B1 (en) 2000-11-06 2005-11-01 Microsoft Corporation Bluetooth TDI and winsock interface
US6725290B1 (en) * 2000-11-08 2004-04-20 Enfora, Inc. Persistent modem connection
US20020069353A1 (en) * 2000-12-01 2002-06-06 Smith R. Doug Automated device driver installation
JP3816748B2 (ja) * 2000-12-27 2006-08-30 富士通株式会社 情報処理装置
FR2822627B1 (fr) * 2001-03-22 2003-06-20 Wavecom Sa Module de radiocommunication hebergeant et executant un logiciel client, et procede correspondant de mise en oeuvre d'un logiciel client de pilotage
US7127209B2 (en) * 2001-04-27 2006-10-24 Agere Systems Inc. Method and system for providing accurate service record using phone line detector
US7162543B2 (en) * 2001-06-06 2007-01-09 Sap Ag Process for synchronizing data between remotely located devices and a central computer system
US7248570B2 (en) * 2001-09-17 2007-07-24 Microsoft Corporation System and method for coordinating bandwidth usage of a communication channel by wireless network nodes
US7194263B2 (en) * 2001-09-17 2007-03-20 Microsoft Corporation System and method for concurrent operation of a wireless device in two disjoint wireless networks
US7724281B2 (en) * 2002-02-04 2010-05-25 Syniverse Icx Corporation Device facilitating efficient transfer of digital content from media capture device
US6901464B2 (en) * 2002-04-05 2005-05-31 Monterey Bay Aquarium Research Institute Puck interface adapter including drivers for interfacing serial device to host wherein puck implements command mode and pass through mode
US20040078708A1 (en) * 2002-05-17 2004-04-22 Chuang Li Methods for facilitating the installation of computer devices
US20040003135A1 (en) * 2002-06-27 2004-01-01 Moore Terrill M. Technique for driver installation
KR100472459B1 (ko) * 2002-07-03 2005-03-10 삼성전자주식회사 기능용 드라이버 설치 방법 및 장치
KR100464349B1 (ko) 2002-08-08 2005-01-03 삼성전자주식회사 디바이스 드라이버 제어 공통화 방법
TW200410140A (en) * 2002-12-03 2004-06-16 Via Tech Inc An initialization process in a device driver
US20050114549A1 (en) * 2003-11-26 2005-05-26 Durham David M. Mechanism for extensible binary mappings for adaptable hardware/software interfaces
US7546357B2 (en) 2004-01-07 2009-06-09 Microsoft Corporation Configuring network settings using portable storage media
US20050180406A1 (en) * 2004-02-18 2005-08-18 Ovadia Sagiv Internet VoIP chat cord apparatus
CN1313941C (zh) * 2004-03-10 2007-05-02 台均科技(深圳)有限公司 数据处理装置与操作系统进行数据交换的方法
JP2005338940A (ja) * 2004-05-24 2005-12-08 Canon Inc インストール方法、情報処理装置、及びデバイスドライバ
US7634764B2 (en) * 2004-06-04 2009-12-15 Broadcom Corporation Method and system for flexible/extendable at command interpreter
JP4929808B2 (ja) * 2006-04-13 2012-05-09 富士通株式会社 ネットワーク機器接続装置およびネットワーク機器接続方法
CN101114229A (zh) * 2006-07-25 2008-01-30 国际商业机器公司 辅助安装软件的系统和方法
US7958450B1 (en) * 2006-12-18 2011-06-07 Emc Corporation Matching user interface
US7673031B1 (en) * 2006-12-18 2010-03-02 Emc Corporation Resource mapping in a network environment
WO2008077989A1 (en) * 2006-12-22 2008-07-03 Elektrobit Wireless Communications Oy Electronic device and computer program
US8321538B2 (en) * 2007-09-24 2012-11-27 Hewlett-Packard Development Company, L.P. Autonomous network device configuration method
US9268741B1 (en) * 2013-06-07 2016-02-23 Lytx, Inc. Deleting unnecessary map data
CN104239241B (zh) * 2013-06-20 2018-09-11 华为终端有限公司 数据卡、数据卡切换方法及装置
WO2015135820A1 (en) * 2014-03-10 2015-09-17 Thomson Licensing Automatically connecting a mobile data modem to a cpe device

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3754217A (en) * 1971-12-20 1973-08-21 Ibm Synchronous line control discriminator
US4292669A (en) * 1978-02-28 1981-09-29 Burroughs Corporation Autonomous data communications subsystem
US4293928A (en) * 1979-12-14 1981-10-06 Burroughs Corporation Peripheral dependent circuit for peripheral controller
US5038320A (en) * 1987-03-13 1991-08-06 International Business Machines Corp. Computer system with automatic initialization of pluggable option cards
US5170470A (en) * 1988-05-02 1992-12-08 National Semiconductor Corp. Integrated modem which employs a host processor as its controller
CA2010591C (en) * 1989-10-20 1999-01-26 Phillip M. Adams Kernels, description tables and device drivers
US5202963A (en) * 1990-12-18 1993-04-13 Bull Hn Information Systems Inc. Method and apparatus for adapting a remote communications controller to a variety of types of communications modems
JPH0823856B2 (ja) * 1991-02-22 1996-03-06 インターナショナル・ビジネス・マシーンズ・コーポレイション コンピュータシステムおよびその動作方法
US5202899A (en) * 1991-08-16 1993-04-13 Rockwell International Corporation Apparatus for providing dynamic selection of modem protocol to support multiple modem types
US5530895A (en) * 1993-02-25 1996-06-25 Microsoft Corporation System and method for computer interface board identification by serially comparing identification address bits and asserting complementary logic patterns for each match
US5450530A (en) * 1993-11-03 1995-09-12 Rockwell International Corporation High speed receiver/transmitter interface
US5574888A (en) * 1993-12-28 1996-11-12 Intel Corporation A method and apparatus for establishing compatibility between communication applications producing at commands and a telephony application programming interface
US5517646A (en) * 1994-04-25 1996-05-14 Compaq Computer Corp. Expansion device configuration system having two configuration modes which uses automatic expansion configuration sequence during first mode and configures the device individually during second mode
US5548759A (en) * 1994-07-05 1996-08-20 Microsoft Corporation System for storing executable code within a resource data section of an executable file
US5594873A (en) * 1994-12-08 1997-01-14 Dell Usa, L.P. System and method for identifying expansion devices in a computer system

Also Published As

Publication number Publication date
US5815682A (en) 1998-09-29
US5675831A (en) 1997-10-07
EP0717548A2 (en) 1996-06-19
JPH08272717A (ja) 1996-10-18
EP0717548A3 (en) 1996-10-02

Similar Documents

Publication Publication Date Title
JP4054390B2 (ja) モデムインタフェース
US10445258B1 (en) Method for creation of device drivers and device objects for peripheral devices
US5574888A (en) A method and apparatus for establishing compatibility between communication applications producing at commands and a telephony application programming interface
US6799225B2 (en) Controllerless modem
US8341621B2 (en) Automatic detection and installation of client peripheral devices by a server
US8448165B1 (en) System and method for logging operations of virtual machines
US6370606B1 (en) System and method for simulating hardware interrupts in a multiprocessor computer system
US5638517A (en) Method and apparatus for transmitting a message from a computer system over a network adapter to the network by performing format conversion and memory verification
US6081856A (en) Adapter and method for emulating the operation of a peripheral device of a computer
KR101086085B1 (ko) 네트워크 가능 장치를 지원하기 위하여 컴퓨터로 구현되는 시스템 및 컴퓨터 판독가능 저장 매체
JP2005505047A (ja) ブラウザを介して実行されるアプリケーションにおいてキーボードアクセラレータを利用可能にする方法及び装置
JPH07117931B2 (ja) コンピュータ・ネットワーク
US7143277B2 (en) Methods and apparatus for event based console variable coherence maintenance in a pre-boot environment
US20050021876A1 (en) Terminal device
US5864710A (en) Controllerless modem
US6366297B1 (en) System and method for displaying modem information on a graphical user interface display
US7043726B2 (en) Binding of processes in network systems
US7401113B1 (en) Printer driver identification for a remote printer
US6917958B1 (en) Method and apparatus for dynamic distribution of system file and system registry changes in a distributed data processing system
JP2001519060A (ja) コントローラレスモデム
US7996524B2 (en) Controlling external communication of embedded device using proxy server
US9026701B2 (en) Implementing device support in a web-based enterprise application
US5729601A (en) Electronic exchange apparatus having separated exchange unit and general-purpose control unit
WO2001079999A2 (en) Method and system for accepting precompiled information
US20090271518A1 (en) Ethernet extensibility

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050726

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20051026

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20051031

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060126

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20060905

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20061204

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070104

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20070305

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070502

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20070511

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20071113

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20071210

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101214

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101214

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111214

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111214

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121214

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees