(57)【特許請求の範囲】
【請求項１】
光メディアにデータを記録するための方法であって、
前記光メディアに記録するデータをクライアントアプリケーションで選択し、
イメージマスタリングアプリケーションプログラミングインターフェース（IMAPI）と接続し、
前記イメージマスタリングアプリケーションプログラミングインターフェース（IMAPI）によってサポートされる複数の光メディアフォーマットの中から１つを選択し、
前記イメージマスタリングアプリケーションプログラミングインターフェース（IMAPI）によってサポートされる複数の光メディア記録デバイスの中から１つを選択し、
前記選択されたデータを、前記複数のメディアフォーマットのなかから選択された１つのメディアフォーマットに関連付けられたアプリケーションフォーマットインターフェースを介して前記イメージマスタリングアプリケーションプログラミングインターフェース（IMAPI）の一部をなすスタッシュファイルへと送信し、
前記選択されたデータを前記光メディアデバイスに記録するために実行する動作のタスクリストを作成し、
オペレーティングシステムのカーネルモードから直接前記タスクリストを実行することによって、前記スタッシュファイルに格納された前記選択されたデータを記録すること
を備える方法。
【請求項２】
請求項１記載の、光メディアにデータを記録するための方法であって、
前記イメージマスタリングアプリケーションプログラミングインターフェース（IMAPI）は、コム（COM）オブジェクトの集合であり、前記オペレーティングシステムに統合されている、方法。
【請求項３】
請求項１記載の、光メディアにデータを記録するための方法であって、
前記サポートされた複数のメディアフォーマットは、レッドブック（Redbook）、ジュリエット（Joliet）、イソ（ISO 9660）、ユーディーエフ（UDF）、エッチエフエス（HFS）、ビデオシーディー（VideoCD）、フォトシーディー（PhotoCD）、シーディーエクストラ（CDExtra）、ミックスモード（Mixed Mode）、ローモード（Raw Mode）、キューシート（Cue Sheet）、アンフォーマット、およびシーディー（CD）3のうちの１つを含む、方法。
【請求項４】
請求項１記載の、光メディアにデータを記録するための方法であって、
前記スタッシュファイルは、イメージマスタリングアプリケーションプログラミングインターフェース（IMAPI）のコム（COM）オブジェクト内で作成される、方法。
【請求項５】
請求項１記載の、光メディアにデータを記録するための方法であって、
前記イメージマスタリングアプリケーションプログラミングインターフェース（IMAPI）は、前記選択されたメディアフォーマットに従って前記スタッシュファイルをデータ構造で満たす、方法。
【請求項６】
請求項１記載の、光メディアにデータを記録するための方法であって、
前記イメージマスタリングアプリケーションプログラミングインターフェース（IMAPI）は、焼き付けエンジンが、前記選択されたデータを前記選択された光メディア記録デバイスに記録するために、前記タスクリストを作成する、方法。
【請求項７】
請求項６記載の、光メディアにデータを記録するための方法であって、
前記焼き付けエンジンは、前記イメージマスタリングアプリケーションプログラミングインターフェース（IMAPI）内のコム（COM）オブジェクトであり、前記オペレーティングシステムのカーネルモード内からのドライバによって制御される、方法。
【請求項８】
請求項７記載の、光メディアにデータを記録するための方法であって、
前記スタッシュファイルは、前記焼き付けエンジンによって読み出されて、前記焼き付けエンジンによって前記選択された光メディア記録デバイスに送信される、方法。
【請求項９】
コンパクトディスクにデータを記録するための方法であって、
前記コンパクトディスクに記録するデータをクライアントアプリケーションによって選択し、
前記選択されたデータを、アプリケーションフォーマットインタフェースを介してイメージマスタリングアプリケーションプログラミングインターフェイスに備えられているスタッシュファイルに送信し、
前記選択されたコンパクトディスクに記録するデータを含む前記スタッシュファイルを、光メディアデータ構造で満たし、
前記選択されたデータをコンパクトディスク記録デバイスに記録する際に実行される処理からなるタスクリストを作成し、
前記選択されたデータを、前記イメージマスタリングアプリケーションプログラミングインターフェースの前記焼き付けエンジンを使用し、前記タスクリストに従って前記スタッシュファイルから読み出し、
オペレーティングシステムのカーネルモードから直接前記タスクリストを実行することによって、前記選択されたデータを記録すること
を備える方法。
【請求項１０】
請求項９記載の、コンパクトディスクにデータを記録するための方法であって、
前記選択されたデータは、音声データ、データファイル、ビデオデータ、写真データ、テキスト、およびイメージよりなる群から選択された、方法。
【請求項１１】
請求項９記載の、コンパクトディスクにデータを記録するための方法であって、
前記イメージマスタリングアプリケーションプログラミングインターフェースは前記オペレーティングシステムに統合されている、方法。
【請求項１２】
請求項９記載の、コンパクトディスクにデータを記録するための方法であって、
前記スタッシュファイルは、前記イメージマスタリングアプリケーションプログラミングインターフェース内のコム（COM）オブジェクト内に作成される、方法。
【請求項１３】
請求項９記載の、コンパクトディスクにデータを記録するための方法であって、
前記焼き付けエンジンは、前記イメージマスタリングアプリケーションプログラミングインターフェース内のコム（COM）オブジェクトである、方法。
【請求項１４】
請求項９記載の、コンパクトディスクにデータを記録するための方法であって、
前記イメージマスタリングアプリケーションプログラミングインターフェースは、前記オペレーティングシステムのカーネルモード内からのドライバによって制御される、方法。
【請求項１５】
光メディアにデータを記録するためのプログラム命令を有するコンピュータ読み取り可能メディアであって、
前記光メディアに記録するデータを、クライアントアプリケーションを使用して選択するための、プログラム命令と、
前記選択されたデータを、アプリケーションフォーマットインターフェースを介してイメージマスタリングアプリケーションプログラミングインターフェイスに備えられているスタッシュファイルに送信するための、プログラム命令と、
前記選択された光メディアに記録するデータを含む前記スタッシュファイルを、光メディアデータ構造で満たすための、プログラム命令と、
前記選択されたデータを光メディア記録デバイスに記録するために実行する処理からなるタスクリストを作成するための、プログラム命令と、
前記選択されたデータを、前記イメージマスタリングアプリケーションプログラミングインターフェースの焼き付けエンジンにより、前記タスクリストに従って前記スタッシュファイルから読み出すための、プログラム命令と、
オペレーティングシステムのカーネルモードから直接前記タスクリストを実行することによって、前記選択されたデータを記録するための、プログラム命令と
を備えるコンピュータ読み取り可能メディア。
【請求項１６】
請求項１５記載の、光メディアにデータを記録するためのプログラム命令を有したコンピュータ読み取り可能メディアであって、
前記イメージマスタリングアプリケーションプログラミングインターフェースは、コム（COM）オブジェクトの集合であり、前記オペレーティングシステムに統合されている、コンピュータ読み取り可能メディア。
【請求項１７】
請求項１５記載の、光メディアにデータを記録するためのプログラム命令を有したコンピュータ読み取り可能メディアであって、
前記焼き付けエンジンは、前記イメージマスタリングアプリケーションプログラミングインターフェース内のコム（COM）オブジェクトであり、前記オペレーティングシステムのカーネルモード内からのドライバによって制御される、コンピュータ読み取り可能メディア。
【請求項１８】
請求項１５記載の、光メディアにデータを記録するためのプログラム命令を有したコンピュータ読み取り可能メディアであって、
前記イメージマスタリングアプリケーションプログラミングインターフェースは、前記オペレーティングシステムのカーネルモード内からのドライバによって制御される、コンピュータ読み取り可能メディア。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、概して光メディアへのデータの記録に関し、特に、記録動作中にソースから宛先へとデータを転送する、記録エンジンおよびシステムに関する。
【０００２】
【従来の技術】
光ディスクのデータストレージでは、比較的小型且つ安価な光ディスクで比較的大容量（例えば約６４０メガバイト）のデータストレージを提供することができる。光メディアにデータを記録する場合は、通常は１〜９９トラックを保持することができる光ディスク上の１つまたはそれ以上のトラックに、音声トラックまたはデータファイルを記録すること（「焼き付け」と呼ばれることもある）を含むのが通例である。データストレージとして光ディスクの容量の大きさは、容量が約１．４メガバイトのフロッピィディスクといった従来のデータストレージに対して圧倒的な進歩を示す。今後もこの傾向が続き、さらに大記憶容量の光ディスクやより小型の光ディスクが出現すると考えられる。
【０００３】
光ディスクにデータの焼き付けすなわち記録を行うプロセスでは、記録するデータまたは音声ファイルの選択と、これらファイルの光ディスクへの記録の間に、いくつかのデータ処理動作が含まれるのが通常である。光メディアにデータを記録するためのクライアントアプリケーションまたはソフトウェアは、記録プロセスを達成するために使用される。選択されたデータまたは音声ファイルは、位置決めおよび検証をなされた後に、記録される順番に順序付けられる。通例は、選択されたデータファイルのデータベースが生成される。このデータベースには、データファイルをそのソースにおいて識別および位置決めすること、宛先位置を指定すること、ファイルが宛先の光デバイス上に記録される順序を指定すること、に必要なデータ構造が含まれる。
【０００４】
生成されたデータベースは、クライアントアプリケーションで処理される。このクライアントアプリケーションは、１つまたはそれ以上の指定ファイルシステム仕様に従ってフォーマットされた選択ソースの内容を記述する構造か、またはその選択ソースファイルからのデータかの、いずれかを含むメモリデータバッファを形成し、これらのデータバッファを記録エンジンに引き渡す。記録エンジンは、これらのデータバッファを受け取ると、特定の光記録デバイスとの通信に必要なコマンドセットを使用して、必要なコマンドを発行し、適切なデータを記録デバイスに引き渡すことにより、光ディスクを作成する。
【０００５】
図１は、従来技術による代表的な記録プロセスを示したブロック図１００である。この記録プロセスは、光メディアに記録するためにデータを選択および処理するようにプログラムされた、クライアントアプリケーション１１０から開始する。クライアントアプリケーション１１０は、光メディアにデータを記録したい旨を、記録エンジン１４０に伝達する。記録エンジン１４０が、自身が記録用に構成されている旨を応答すると、クライアントアプリケーション１１０は、ファイルシステムデータベース１２０のアセンブルを開始する。クライアントアプリケーション１１０は、ファイルシステムデータベース１２０を介してデータベース１３０を識別し、ファイルシステムデータベース１２０に作成するデータ構造を指定する。記録されることを識別されたデータは、ファイルシステムデータベース１２０内で書き込み順に順序付けられ、記録プロセスのためにキャッシュされるデータファイルが識別されて、必要なデータ構造が形成される。ファイルシステムデータベース１２０の部分部分（例えば、書き込み順や記録したいデータへのポインタ等）は、焼き付け動作に備えてさらに情報を処理するＣＤ記録エンジン１４０に引き渡される。
【０００６】
実際のまたは模擬の焼き付けが実行されると、ＣＤ記録エンジン１４０は、選択されたデータをシステムメモリ１５０のバッファに読み込む。ＣＤ記録エンジン１４０は、システムメモリ１５０のバッファから光ＣＤ記録回路を経て宛先の光デバイス１７０へとデータフローを送信する。選択データが全て読み出され記録されて焼き付け動作が完了するまでは、データがシステムメモリ１５０のバッファから読み出されて宛先の光デバイス１７０に記録される度に、さらなるデータがバッファ１５０に読み込まれる。
【０００７】
従来技術による記録動作では、選択されたデータおよび関連のデータ構造を繰り返し処理する必要があるため、ホストシステムで実行される全アプリケーションが共有するシステムリソースが、かなりの大量に消費される。光メディア記録デバイスの高速化に伴って、ハードディスクデータソースがバッファメモリにデータを補充できる速度を、光ディスクへの記録速度が超えることが、頻繁に生じるようになる。バッファメモリが、光ディスクの所定のトラックにファイルを中断なく記録できるように、連続してデータを供給することができないと、バッファアンダーランが生じてしまう。バッファアンダーランが生じると、最終的には焼き付けが停止する。
【０００８】
以上から、より密接にホストオペレーティングシステムと統合された、光メディアにデータを記録するための方法、装置、およびシステムが必要とされていることがわかる。この方法およびシステムは、記録するように選択されたデータの処理を最小化することができ、光メディアへのデータの焼き付けを、バッファアンダーランおよびデータの中断を回避する方法で行い得るべきである。この方法およびシステムは、従来技術の問題点を回避するように構成されている。
【０００９】
【発明の概要】
概して本発明は、光メディアにデータを記録するためのイメージマスタリングアプリケーションプログラミングインターフェースを提供することによって、これらのニーズを満たすものである。本発明による方法、システム、および装置は、記録動作に使用されるコンピュータのオペレーティングシステムと統合されて良く、選択データの記録のプロセスを、ホストコンピュータオぺレーティングシステムのカーネルモードから達成する。本発明は、プロセス、装置、システム、デバイス、方法、またはコンピュータ読み取り可能メディア等を含む、種々の方法で実現することができる。以下では、本発明の実施形態を幾つか取り上げる。
【００１０】
１つの実施形態では、光メディアにデータを記録するための方法を開示する。この方法は、クライアントアプリケーションによる記録したいデータの選択と、その後に続く、イメージマスタリングアプリケーションプログラミングインターフェースとの接続とを含む。データフォーマットと記録デバイスとが選択されると、その選択されたデータが、イメージマスタリングアプリケーションプログラミングインターフェースのスタッシュファイルに送られる。次に、選択データを記録するのに必要な動作のタスクリストが形成され、オペレーティングシステムのカーネルモードからそのタスクリストを実行することによって、データが記録される。
【００１１】
別の１つの実施形態では、光メディアにデータを記録するためのイメージマスタリングアプリケーションプログラミングインターフェースを開示する。このイメージマスタリングアプリケーションプログラミングインターフェースは、ディスクマスタと、スタッシュファイルと、ディスクレコーダと、焼き付けエンジンとを含む、複数のＣＯＭオブジェクトを備える。このイメージマスタリングアプリケーションプログラミングインターフェースは、光メディアにデータを記録する際に達成されるタスクのリストを作成し、このタスクリストは、カーネルモード動作として実行される。
【００１２】
さらに別の実施形態では、コンパクトディスクにデータを記録する方法を開示する。この方法は、記録したいデータをクライアントアプリケーションによって選択することと、イメージマスタリングアプリケーションプログラミングインターフェイスのアプリケーションフォーマットインタフェースを経てスタッシュファイルへとデータを送信することとを含む。スタッシュファイルは、光メディアデータ構造およびデータで満たされており、タスクリストは、選択データをコンパクトディスク記録デバイスに記録する際に実行される動作で形成されている。選択データは、タスクリストをオペレーティングシステムのカーネルモードから実行することによって、コンパクトディスクに記録される。
【００１３】
さらにまた別の実施形態では、光メディアにデータを記録するためのプログラム命令を有したコンピュータ読み取り可能メディアを開示する。コンピュータ読み取り可能メディアは、（ａ）光メディアに記録されるデータを選択するためのプログラム命令と、（ｂ）イメージマスタリングアプリケーションプログラミングインターフェイスのアプリケーションフォーマットインターフェースを介してスタッシュファイルへと選択データを送信するためのプログラム命令と、（ｃ）スタッシュファイルを光メディアデータ構造およびデータで満たすためのプログラム命令と、（ｄ）選択データを記録する際に実行される動作のタスクリストを作成するためのプログラム命令と、（ｅ）スタッシュファイルから選択データを読み出すためのプログラム命令と、（ｆ）オペレーティングシステムのカーネルモードからタスクリストを実行することによって選択データを記録するためのプログラム命令と、を備える。
【００１４】
本発明から得られる利点および効果は、記録されることを選択されたデータが光メディアへの記録に備えて書き込まれるスタッシュファイルを、イメージマスタリングアプリケーションプログラミングインターフェイスが備えている点にある。スタッシュファイルを使用することによって、イメージマスタリングアプリケーションプログラミングインターフェイスは、選択データをキャッシュおよびバッファリングする必要を回避することができる。データがバッファリングされないため、バッファアンダーランのリスクが小さくなる。もう１つの恩典は、イメージマスタリングアプリケーションプログラミングインターフェイスが、光メディアに選択データの記録する際に実行される動作のタスクリストを作成する点にある。タスクリストは、記録されるデータのタイプおよびフォーマットの種類、ならびにターゲットとなる記録デバイスの種類に応じて作成される。タスクリストはメモリ構造として形成されて、焼き付けの実行時にイメージマスタリングアプリケーションプログラミングインターフェイスドライバによって読み出されることができる。さらにもう１つの利点は、オペレーティングシステムのカーネルモードから焼き付けを実行するイメージマスタリングアプリケーションプログラミングインターフェイスドライバである。イメージマスタリングアプリケーションプログラミングインターフェイスは、ホストシステムと統合されており、焼き付けの実行時には、そのプロセスがカーネルモード動作として実行される。これによって、記録動作がシステム優先順位の動作となるため、システムリソースを争ったり共有したりすることがなくなる。システム優先順位の動作として実行されると、非常に大きく複雑な音声ファイルやビデオファイルを扱う場合ですら、データが中断されるリスクが小さくなる。
【００１５】
本発明の原理を例示した添付図面と関連させて、以下で行う詳細な説明から、本発明のその他の利点がいっそう明らかになる。
【００１６】
同一の参照番号が同一の構造要素を意味する添付図面と関連させて行う以下の詳細な説明から、本発明を容易に理解することが可能となる。
【００１７】
【発明の実施の形態】
光メディアに情報を記録する発明を開示する。以下の説明では、本発明の完全な理解を促すために、多くの詳細について項目を特定している。しかしながら、当業者には理解できるように、本発明は、これらの項目の一部または全てを特定しなくても実施することが可能である。そのほか、本発明を不必要に不明瞭化するのを避けるため、周知のプロセス動作および／または構造の説明は省略した。
【００１８】
図２は、発明の１つの実施形態に従って示したIMAPIのシステム図２００である。システム２００は、IMAPI.EXE記録エンジン２０１と、クライアントアプリケーション２０２と、構成アプリケーション２０６と、Imapi.sys ２６０と、CD-ROMクラス２７０と、光メディア記録デバイス２８０とを備える。
【００１９】
記録エンジンIMAPI.EXE２０１は、光メディアに焼き付けられることを選択されたデータを読み出し、収集し、適合化する関連のインターフェースと、オブジェクトとの、集合として示されている。記録エンジン２０１は、システムに設定された光デバイスユニット２８０の管理およびモニタを行って、記録されることを選択されたデータを記録デバイス２８０へと送信する。
【００２０】
ディスクマスタ２２０は、記録エンジン２０１へのアクセスを提供する。アクセスは、ディスクマスタインターフェースであるIDiscMaster ２２２を介して記録エンジン２０１に付与される。アクセスが得られると、クライアントアプリケーション２０２は、特定のシステムに設定されてIMAPI.EXE ２０１によって実現される全てのインターフェースおよび方法に対し、完全なアクセスおよび使用を得ることができる。
【００２１】
ディスクマスタインターフェース２２２だけでなく、ディスクマスタ２２０内の他のインタフェースもまた、アプリケーションフォーマットインタフェースを備える。例えば、図２に示された実施形態は、IRedbookDiscMaster ２２４とIJolietDiscMaster ２２６とを備える。これらのインタフェースは、光メディアを読み出し、アクセスし、実装し、再生するのに必要とされる、あるいは、無数の光メディアが特定の規格に従うデバイスを読み出し、記録し、再生するのに利用される、論理的および物理的なデータ構造を組織および形成するために、データの操作を行う。このようなデバイスの例として、CD-ROM、CD-R/W、DVD等が挙げられる。IRedbookDiscMasterインターフェース２２４は音声データのためのRedbook規格に従っており、記録したいデータが音声データである場合、クライアントアプリケーション２０２は、記録動作でIRedbookDiscMasterインターフェース２２４を使用する。IJolietDiscMasterインターフェース２２６は、データファイルのためのJoliet規格に従っており、記録したいデータが音声ファイル以外のデータファイルである場合、クライアントアプリケーション２０２は、記録動作でIJolietDiscMasterインターフェース２２６を使用する。
【００２２】
ディスクマスタ２２０は、システムによりサポートされる全てのアプリケーションフォーマットインタフェースを含んでいる。サポートされたフォーマットを利用する実際の記録デバイス２８０は、システムに接続されていてもされていなくても良いし、システム上に存在してもしなくても良いが、システムが特定のアプリケーションフォーマットをサポートするように構成されている場合は、ディスクマスタ２２０に、フォーマットのためのアプリケーションフォーマットインタフェースが存在する。例えば図３は、本発明の１つの実施形態に従って示したディスクマスタ２２０ａである。図３において、ディスクマスタ２２０ａは、ディスクマスタインタフェース２２２と、いくつかのアプリケーションフォーマットインタフェースとを備える。上述したように、ディスクマスタ２２０ａには、システムによりサポートされた個々のフォーマットに対するアプリケーションフォーマットインタフェースが存在する。図３では、上述したIRedbookDiscMaster２２４およびIJolietDiscMaster ２２６以外にも、いくつかの付加的なアプリケーションフォーマットインタフェースが代表的なシステムに設定されている。図中に示されたアプリケーションフォーマットインタフェースは、ISO9660フォーマットデータのためのIISO9660DiscMaster ２２７ａと、UDFフォーマットデータのためのIUDFDiscMaster ２２７ｂと、CDエクストラフォーマットデータのためのICDExtraDiscMaster ２２７ｃと、写真データのためのIPhotoCDDiscMaster ２２７ｄと、音声データのためのICD3DiscMaster ２２７ｅと、ビデオデータのためのIVideoCDDiscMaster ２２７ｆと、I...DiscMaster ２２７ｇとを備える。I...DiscMaster２２７ｇインターフェースは、示されている実施形態が包括的または限定的ではなく、IMAPI ２０１によってサポートされる多種類のフォーマットを表し得ることを示すために、列挙されている。
【００２３】
再び図２を見ると、クライアントアプリケーション２０２は、複数本の破線でIMAPI ２０１に接続されているように示されている。破線は、クライアントアプリケーション２０２と記録エンジン２０１の間の概念的な接続を表しており、実際の配線上の接続を表しているのではない。クライアントアプリケーション２０２は、光メディアに記録されるデータを作成または選択できる任意のアプリケーションで良い。代表なクライアントアプリケーション２０２は、Word、Excel、Windows Explorerや、Real Jukebox、Media Player、Photoアプリケーション、Movieアプリケーション、Backup等のAudio Recorderを含む。記録エンジン２０１の任意部分へのアクセスを得るためには、クライアントアプリケーション２０２は、ディスクマスタインターフェース２２２にアクセスしなければならない。これは、図２において、クライアントアプリケーション２０２からディスクマスタインターフェース２２２のインターフェースノードへと至る破線２１０によって表されている。クライアントアプリケーション２０２はディスクマスタインターフェース２２２を読み出して、記録エンジン２０１が存在するかどうか、どんなドライブが提供されるか、そしてどんなアプリケーションフォーマットインタフェースが存在するかを決定する。ディスクマスタインターフェース２２２は、破線２１０を介して表されているように、サポートされたフォーマットを列挙し且つ存在するアプリケーションフォーマットインタフェースの識別を提供する列挙子を、クライアントアプリケーション２０２に提供する。図２では、図示された実施形態の列挙子がRedbookおよびJolietフォーマットを列挙し、ディスクマスタがIRedbookDiscMaster ２２４およびIJolietDiscMaster ２２６の識別を提供する。ディスクマスタインターフェース２２２はまた、あるフォーマットが現在アクティブとして選択されているかを決定し、そのアクティブフォーマットの選択をクライアントアプリケーション２０２に提供する。デフォルトフォーマットは存在しない。アプリケーションは、あるフォーマットをアクティブとして選択しなければならない。アクティブなフォーマットがまた選択されていない場合は、クライアントアプリケーション２０２はフォーマットを１つ選択しなければならない。例えば、クライアントアプリケーション２０２が音声データを焼き付ける必要がある場合は、クライアントアプリケーション２０２は、アクティブなフォーマットとしてRedbookを選択する。同様に、クライアントアプリケーション２０２がデータファイルを記録する必要がある場合は、クライアントアプリケーション２０２は、アクティブなフォーマットとしてJolietを選択する。
【００２４】
列挙されたフォーマットがクライアントアプリケーション２０２に提供されて、あるフォーマットがアクティブとして選択されて、アプリケーションフォーマットインターフェースの識別がクライアントアプリケーション２０２に提供されたら、ディスクマスタインターフェース２２２は、システムによりサポートされ、やがてシステムに接続される記録デバイス２８０を列挙する列挙子を、クライアントアプリケーション２０２に提供する。システムに存在する記録デバイス２８０の列挙子は、焼き付けエンジン２３２のIEnumDiscRecordersインターフェース２３４内に属している。IEnumDiscRecordersインターフェース２３４は、存在する且つ設定された記録デバイス２８０の完全なリストを、２３３として示された接続を通じてディスクマスタ２２０に提供する。ディスクマスタインターフェース２２２は、選択されたフォーマットと互換性のある列挙されたレコーダをクライアントアプリケーション２０２に提供し、アクティブとして選択された記録デバイス２８０が存在する場合は、その旨をクライアントアプリケーション２０２に通知する。アクティブとして選択された記録デバイス２８０が存在しない場合は、クライアントアプリケーションは、記録デバイス２８０を１つアクティブとして選択しなければならない。
【００２５】
記録エンジン２０１は、ディスクレコーダ２４０のシステムに設定された様々な記録デバイス２８０を維持およびモニタする。サポートされた代表的な記録デバイスドライバ２５０ａ、２５０ｂ、および２５０ｃが、設定された任意の記録デバイスドライバを表すように示されたワイルドカード２５０ｃと共に示されている。記録デバイスドライバ２５０ａ、２５０ｂ、および２５０ｃは、接続２４３によって示されているように、ディスクレコーダ２４０との間で通信を行う。この方法では、ディスクレコーダ２４０が、システムに設定され得る個々のレコーダのためにパラメータを維持する。ディスクレコーダ２４０は、２５５からImapi.sys ２６０までで示された接続を介して書き込み層を横切って接続される。以下で詳述するように、Imapi.sys ２６０はIMAPI ２０１を、ホストコンピュータのオペレーティングシステムだけでなく実際のデバイス２８０にもリンクさせる。この接続は、他の機能の中でも特に、ディスクレコーダ２４０が記録デバイス２８０の実際の存在をモニタすることを可能とする。例えば、プラグアンドプレイ記録デバイス２８０がシステムに追加されたまたはシステムから除去されたことを、オペレーティングシステムが感知すると、その状況情報がディスクレコーダ２４０に伝達される。ディスクレコーダ２４０は、システム内に実在しているサポートされたデバイスから焼き付けエンジン２３２への通信を、IDiscRecorderインターフェース２４２と、２４１で示された接続とを介して行う。従って、IEnumDiscRecorderインターフェース２３４によって列挙されるのは、システム内でサポートされて存在するデバイスのみであり、アプリケーションフォーマットインターフェース２２４，２２６が、その範囲をアクティブフォーマットと互換性のあるもののみに絞っている。
【００２６】
１つの実施形態において、クライアントアプリケーション２０２は、焼き付け動作中に進行通知を受信するか否かを選択しなければならない。すなわち、そのように構成されている場合、クライアントアプリケーション２０２は、焼き付け動作の進行をアドバイスする状況更新を、ディスクマスタ２２０から受信することができる。クライアントアプリケーション２０２が進行通知を受信することを選択する場合は、クライアントアプリケーション２０２は、専用のインターフェース、すなわちディスクマスタ２２０が、進行通知を通過させて提供するインターフェースであるIDiscMasterProgressEventsインターフェース２０４を提供する。図２では、インターフェースノード２１２を介して通知が提供される。１つの実施形態１つの実施形態において、そのような通知は、光メディアに転送されたデータの割合を示しているゲージまたは読み出しをグラフィカルユーザインタフェース上に表示するオペレータによってモニタされる。別の実施形態において、ゲージまたは読み出しは転送されるデータの残りの量を示す。
【００２７】
焼き付け動作中、記録エンジンは、アクティブフォーマットで必要とされるあらゆる論理的および物理的データ構造はもちろん、光メディアに転送されるように選択されたデータをも含む、スタッシュファイル２２８を作成する。クライアントアプリケーション２０２は、アプリケーションフォーマットインターフェース２２４，２２６に対して、選択データをスタッシュファイル２２８に追加するよう指示する。ここで使用されているように、IMAPI ２０１の１オブジェクトとして示されたスタッシュファイル２２８は、クライアントアプリケーション２０２によって選択されたデータと、アクティブフォーマットが必要とする論理的および物理的なデータ構造とを、アプリケーションフォーマットインターフェース２２４，２２６によって満たされたメモリ構造である。１つの実施形態において、スタッシュファイル２２８は８００ＭＢファイルであり、IDiscStashインターフェース２３０を介してアプリケーションフォーマットインターフェース２２４，２２６によるアクセスを受ける。アプリケーションフォーマットインターフェース２２４，２２６は、接続２３５からIDiscStashインターフェース２３０のインターフェースノードを介してスタッシュファイル２２８を満たす。
【００２８】
スタッシュファイル２２８が充分に満たされると、記録エンジン２０１は、タスクリストを作成することにより、スタッシュファイル２２８の内容を記述し、スタッシュファイル２２８の特定のレイアウトを識別する。すると焼き付けエンジン２３２は、タスクリストを検証することにより、スタッシュデータが書き込まれる具体的な記録デバイス２８０の特定のタスクを決定する。
【００２９】
実際のまたは模擬の焼き付けが実行される際に、焼き付けエンジン２３２は、タスクリストに従ってスタッシュファイル２２８からデータを検索し、そのデータをImapi.sys ２６０に引き渡す。焼き付けエンジン２３２は、接続２３７からIDiscStashインターフェース２３０のインターフェースノードを介してスタッシュファイル２２８にアクセスする。図２に示されるように、焼き付けエンジン２３２は、コネクタ２４５を介して書き込み層に接続されており、書き込み層は、コネクタ２５５，２５５ａを介しユーザモード／カーネルモード境界（図２においてRing3/Ring0境界として示される）越しにImapi.sys ２６０に接続されている。Imapi.sys ２６０は、イメージマスタリングアプリケーションプログラミングインターフェイスドライバとして広義に定義されている。  Imapi.sys ２６０は、上述した様々なCOMオブジェクトのためのドライバを含み、IMAPI ２０１をホストオペレーティングシステムに統合させる。
【００３０】
図中に示された実施形態において、Imapi.sys ２６０はカーネルモード動作である。従って、カーネルモード動作としてのImapi.sys ２６０は、スタッシュファイルからデータを直接読み出し、そのデータをアクティブな記録デバイス２８０に引き渡す。CDROMクラス２７０は、ほとんどの光学式のディスクメディアを含む一般のコンパクトディスクデバイスに対するシステムインターフェースであり、IMAPIに、基本的な読み出し機能はもちろん一般のデバイスパラメータをも提供するものである。実際のまたは模擬の焼き付け動作中に、データがシステムを介してバッファリングまたはキャッシュされることはなく、焼き付け動作がその他のアプリケーションと共有されるまたは競合することもない。また、CDROMクラス２７０は、コマンドを記録デバイス２８０に送信するのを妨害される。焼き付け動作は、システム優先順位の動作として実行される。こうして、致命的なデータの中断およびバッファアンダーランが回避される結果、光メディアに効率的且つ正確にデータが記録される。
【００３１】
そのほか図２のシステム図２００に示されているのは、構成アプリケーション２０６である。構成アプリケーション２０６は、ホストシステムを、IMAPI ２０１の特定の動作に対応するように構成する。例えば構成アプリケーション２０６は、IMAPI ２０１によりサポートされた記録デバイス２８０のためのホストシステムを設定し、さらにそのホストシステムを、クライアントアプリケーション２０２による記録動作の開始時にIMAPI ２０１にアクセスするように設定する。従って、構成アプリケーション２０６は、IMAPI ２０１およびその関連機能をホストシステム動作に組み込む機能を果たす。
【００３２】
図４は、データを光メディアに記録する際に実行される方法動作を、本発明の１つの実施形態に従って示したフローチャート４００である。この方法は、クライアントアプリケーションが記録エンジンのディスクマスタインタフェースと通信する動作４１０から開始する。記録エンジンは、クライアントアプリケーションが記録エンジンをコールするためのインターフェースを、上述したように提供する。この初期の通信４１０において、クライアントアプリケーションは、ディスクマスタインターフェースを介して記録エンジンすなわちIMAPIへのアクセスを獲得する。アプリケーションは、アクセスを獲得すると、特定のシステムに実装された全てのインタフェースおよび方法にフルにアクセスすることができる。
【００３３】
動作４２０において、アプリケーションは、列挙子を検索することにより、フォーマットを列挙してアプリケーションにインターフェース識別を提供する。１つの実施形態において、フォーマットはRedbook音声フォーマットとJolietデータフォーマットとを含む。他の実施形態において、フォーマットは、Redbook音声フォーマット、Jolietデータフォーマット、ISO9660データフォーマット、UDFデータフォーマット、CDエクストラ音声およびデータフォーマット、ビデオCDビデオデータフォーマット、フォトCDフォトデータフォーマット、ならびにCD３音声フォーマット等を、特定のシステム構成によって決定された任意のサポートフォーマットの組み合わせによって含む。
【００３４】
動作４２０において、アプリケーションは、ディスクマスタフォーマット列挙子を検索することにより、システムがサポートするフォーマットの集合を検証し、アクティブフォーマットとなるフォーマットを選択する。例えば列挙子は、システムがサポートするフォーマットとして、Redbook音声フォーマットおよびJolietデータフォーマットを列挙する。例えばWord等のアプリケーションは、Word文書をCDに焼き付けるためのアクティブフォーマットとしてJolietデータを選択する。１つの実施形態において、列挙子はシステムによってサポートされたフォーマットを列挙し、フォーマットが１つ選択された場合は、ディスクマスタをコールして現在アクティブなフォーマットを識別する。上述したように、デフォルトフォーマットは存在しない。この実施形態において、アプリケーションは、アクティブなフォーマットがクライアントアプリケーションで必要とされるフォーマットでない場合、またはディスクマスタによってアクティブなフォーマットが識別されなかった場合に、新しいアクティブなフォーマットを選択するものである。現在アクティブなフォーマットがアプリケーションで必要とされるフォーマットと同一である場合は、そのフォーマットは受諾されて、方法は次の動作に進む。
【００３５】
動作４３０において、列挙子は、記録エンジンによってサポートされている記録デバイス、動作４２０において選択または受諾されたアクティブフォーマットを利用する記録デバイス、およびシステム内に存在している記録デバイスを、全てリストに列挙する。選択されているアクティブなレコーダが存在しない場合、アプリケーションはアクティブな記録デバイスを選択しなければならない。サポートされた記録デバイスが全てリストに列挙されたら、アプリケーションは、アクティブな記録デバイスを１つ選択するか、または現在アクティブな記録デバイスを受諾する。
【００３６】
動作４２０，４３０に共通の１つの実施形態において、デフォルトフォーマットまたは記録デバイスは存在しない。 光ディスクメディアにデータを書き込むためにディスクマスタを開く初期のコールを発するに当たり、アプリケーションは、先ずサポートフォーマットのリストからフォーマットを１つ選択し（動作４２０）、次いで、選択されたフォーマットを利用する記録デバイスのリストから記録デバイスを１つ選択し（動作４３０）なければならない。
【００３７】
方法は、１つの実施形態において、ディスクマスタがアプリケーションに対して進行通知を受信するか否かを選択するように要請する、決定ブロック４４０に進む。進行通知は例えば、焼き付け動作において記録されたデータの割合や、まだ焼き付ける必要がある残りのデータの割合、焼き付け動作に残された時間、そして動作進行に関するその他の情報等を、アプリケーションに通知することを含む。アプリケーションが進行通知を受信する、すなわち「Ｙｅｓ」を選択する場合、方法は動作４５０に進み、アプリケーションは記録エンジンに進行通知インタフェースを提供する。１つの実施形態において、進行通知インターフェースは、記録エンジンがアプリケーションに定期的な進行情報を提供する際に通過する特定のインターフェースノードである。
【００３８】
アプリケーションが進行通知をサポートまたは受信しない、すなわち決定ブロック４４０で「Ｎｏ」を選択する場合、方法は迂回動作４５０に進み、進行インターフェースは提供されない。すると、方法は決定ブロック４６０に進み、記録されるデータが音声ファイルかデータファイルかによって２集合の方法動作に分岐する。方法は、音声データの場合はコネクタＡに進み、データファイルの場合はコネクタＢに進む。
【００３９】
図５は、データを光ディスクに記録する際に実行される方法動作を本発明の１つの実施形態に従って示したフローチャート４００の、続きを示したものである。図５には、音声データを記録する場合の方法が示されている。方法は、音声データの記録のためにトラックを確保するようにアプリケーションがコールする、動作４７０から続きを開始する。１つの実施形態において、システムは、音声ギャップが固定サイズのTrack-at-Onceモードを利用して記録を行う。この方法は、一度に１トラックが記録のために開いているような、マルチトラック音声ディスクの作成を可能とする。動作４７０において、アプリケーションは、音声トラックを確保するようにアプリケーションフォーマットディスクマスタ（例えばIRedbookDiscMaster）にコールする。このコールは、音声データが記録される光メディアをアプリケーションフォーマットディスクマスタで分析し、選択されたメディアにトラック何本分が記録されるか、記録に利用可能である音声ブロックはいくつあるか、音声ブロックがどのサイズを有するかを評価することによって、プロセスを開始するものである。１つの実施形態において、音声ブロックのサイズは２３５２バイトでハードコーディングされる。
【００４０】
方法は次に、クライアントアプリケーションが、アプリケーションフォーマットディスクマスタに音声データを提供し、その音声データをスタッシュファイルに読み込むようにアプリケーションフォーマットディスクマスタに指示する、動作４８０に進む。例えば、クライアントアプリケーションが、リモートサーバに格納された音声データのプレイリストを選択したとする。するとアプリケーションフォーマットディスクマスタが、クライアントアプリケーションによってスタッシュファイルへと誘導された音声データを読み出す。
【００４１】
図５に示された実施形態において、方法は、音声トラックのサイズを継続的にモニタする。１つの実施形態において、音声トラックのサイズは、固定されているかまたはセクタの最大数であるかのどちらかである。決定ブロック４９０では、トラックが終了したか否かをアプリケーションフォーマットディスクマスタが決定し、アプリケーションはスペースが残っている限り、スタッシュファイルに音声データを読み込むアプリケーションフォーマットディスクマスタに音声データを提供し続ける。使用可能なトラックのサイズには、使用されるフォーマットに依存して、フォーマット構造で必要とされるセクタやギャップ等が含まれる。あるトラックが一杯であることをアプリケーションフォーマットディスクマスタが決定すると、方法は決定ブロック５００に進み、記録する音声データが残っているか否か、例えば別のトラックが必要か否かを決定する。別のトラックが必要な場合、方法は、アプリケーションが別のトラックの確保をコールする動作４７０に戻る。方法は、これ以上のトラックが不要となるまで上述した動作を繰り返す。
【００４２】
クライアントアプリケーションが、アプリケーションフォーマットディスクマスタによってスタッシュファイルに読み込まれるように選択された音声データを全て提供し終わり、且つこれ以上のトラックが不要である場合、方法は、アプリケーションが音声データの記録をディスクマスタにコールする動作５１０に進む。すると方法は、図６に示される音声データの記録のためのコネクタｘに進む。
【００４３】
図６は、データが光ディスクに記録される際に実行される方法動作を発明の１つの実施形態に従って示したフローチャート４００の、続きを示したものである。コネクタｘは、音声データを記録するための方法動作の続きを表している。動作５２０において、クライアントアプリケーションは、スタッシュファイルのデータをメディアに記録するように、IMAPIすなわち記録エンジンに指示する。この時では、IMAPIが記録動作を管理している。
【００４４】
動作５３０において、記録エンジンは、記録される音声データに関連付けられた情報でスタッシュファイルを充分に満たす。この情報は、音声データを記録する際に使用されるフォーマットに特有なものである。
【００４５】
すると方法は、記録エンジンがタスクリストを作成してスタッシュファイルの内容を記述する、動作５４０に進む。タスクリストは、種々のセクタ、ファイル、トラック、ファイルシステム等などの位置を含むように、スタッシュファイルの特定のレイアウトを識別する。タスクリストを作成するに当たり、記録エンジンは、データが記録されるメディアの論理的および物理的構造をマップする。記録エンジンは、前の動作において選択された論理的なフォーマットと、すでに選択されていた記録デバイスとを使用することにより、音声データの模擬または実際の焼き付けをターゲットメディアに対して実行する際に、焼き付けエンジンにより実行されるタスクリストを構築する。
【００４６】
タスクリストが作成されると、方法は動作５５０に進み、タスクリストを焼き付けエンジンに引き渡す。１つの実施形態において、タスクリストは１メモリ構造として作成されており、記録エンジンによる焼き付けエンジンへのタスクリストの引き渡しは、タスクリストメモリ構造のメモリからの読み出しを、焼き付けエンジンに対してコールすることである。タスクリストを実行し、ターゲットメディアへの音声データの記録を達成するのは、焼き付けエンジンである。
【００４７】
ここで注意が必要なのは、この時点における本発明の１つの実施形態では、データの模擬または実際の焼き付けを実行する焼き付けエンジンのドライバが、imapi.sys構造（図２を参照のこと）内に配置されており、カーネルモードで動作することである。焼き付けエンジンとimapi.sysに関しては、以下でより詳しく議論することにする。
【００４８】
次に、方法は動作５６０に進み、焼き付けエンジンがタスクリストを検証する。焼き付けエンジンは、完了しなければならないタスクと、書き込みを行う特定のドライブおよびデバイスのために達成されなければならない任意のデータ操作とを、決定する。
【００４９】
方法は、動作５７０において終了する。焼き付けを実行するに当たり、焼き付けエンジンは、スタッシュファイルの音声データをタスクリストに従って検索する。音声データは、光メディアへの書き込みのために、imapi.sysを経て選択ドライブへと引き渡される。実際または模擬の焼き付け動作の間、焼き付けエンジンは、カーネルモードで動作を実行しているimapi.sysのドライバに制御される。図２との関連で上述したように、imapi.sysは一般に、IMAPIの様々なオブジェクトに対するドライバの集合であり、IMAPIをホストオペレーティングシステムに統合させるように機能する。１つの実施形態において、imapi.sysは、それが実行される個々のオペレーティングシステムに対して具体的にコード化される。例えば、Windows95/98オペレーティングシステムのためのimapi.sysがあり、WindowsNTオペレーティングシステムのためのimapi.sysがあり、それが実行されるあらゆる特定のオペレーティングシステムのためのimapi.sysがある。上でより詳しく議論したように、本発明の特徴は、タスクリストを実行し、スタッシュファイルからスタッシュ音声データを読み出して、それをカーネルモードの選択記録デバイスに焼き付けることにある。従って、模擬または実際の焼き付けの最中に、音声データがシステムメモリ内でキャッシュおよびバッファリングされることはなく、このためバッファアンダーランを回避することが可能となる。さらに、カーネルモードのプロセスとしては、タスクリストの実行と、完全にイメージ化されたスタッシュファイルからの音声データの読み出しとにおけるimapi.sysの動作が、システム優先順位の動作となる。従って、他のアプリケーションとの間によく見られるプロセッサの共有や、致命的な音声データの中断等の他のリスクも、やはり回避することができる。
【００５０】
選択デバイスにデータファイルを記録するための方法動作は、音声データの記録のそれと類似している。図４との関連で議論されるように、データを記録するための方法動作は、決定ブロック４６０において分岐する。記録されるデータが音声データ以外のデータである場合、方法はコネクタＢに進み、図７に示された動作を継続する。
【００５１】
図７は、データが光ディスクに記録される際に実行される方法動作を本発明の１つの実施形態に従って示したフローチャート４００の、続きを示したものである。コネクタＢは、音声データ以外のデータを記録するための方法動作の続きを表している。方法は、IStorageと呼ばれるCOMストレージ構造をクライアントアプリケーション（例えばWord、Excel、Access等）が作成する、動作６００から続きを開始する。IStorageは、COMアプリケーションのための１データ構造であり、IMAPIを備えたデータファイルのビークルとして機能する。IStorageは、ファイルおよびフォルダの両方と、それらに関連付けられた名前および属性とを含んだ内部構造を有しており、IMAPIを備えたデータファイルアプリケーションのために使用される。
【００５２】
クライアントアプリケーションが、光メディアに書き込まれる全データでIStorageを満たしたら、方法は動作６２０に進む。動作６２０において、クライアントアプリケーションは、格納されたデータをスタッシュファイルに追加するように、アプリケーションインターフェースディスクマスタ（例えばIJolietDiscMaster）にコールする。方法は、データをスタッシュファイルに追加するコールに続いて動作６３０に進み、記録エンジンは、IStorageからスタッシュファイルにデータを読み込む。１つの実施形態において、この動作は、イメージに構造を追加する動作と呼ばれる。アプリケーションフォーマットディスクマスタ、例えばIJolietDiscMasterは、イメージまたはスタッシュファイルに追加するためにデータを操作する。
【００５３】
次に、方法は決定ブロック６４０を評価する。決定ブロック６４０において、方法は、スタッシュファイルに追加するデータがまだあるか否かを見るためにチェックを行う。スタッシュファイルに追加するデータがまだある場合、方法は、追加するデータのためにクライアントアプリケーションがCOMストレージ構造を作成する動作６００にループバックし、次いで、上述したような方法動作に進む。スタッシュファイルに追加するデータがもうない場合、方法は、図６で示された方法動作の続きであるコネクタｙに進む。
【００５４】
図６は、データが光ディスクに記録される際に実行される方法動作を本発明の１つの実施形態に従って示したフローチャート４００の、続きを示したものである。コネクタｙは、音声データ以外のデータを記録するための方法動作の続きを表している。ここで、この先の方法動作が音声データの記録において実行される動作と同一であり、上で充分に説明されていることに、注意する必要がある。方法は、クライアントアプリケーションが記録エンジンに対し、スタッシュファイルに配置されたデータを選択記録デバイスに記録することをコールする、動作５２０から続きを開始する。
【００５５】
すると、方法は動作５３０に進み、記録エンジンは、スタッシュファイルのデータと関連付けられた情報でスタッシュファイルを充分に満たす。情報は、アクティブなフォーマットによって決定されて、ボリューム記述子およびファイルシステムのような構造を含むことができる。例えばIJolietDiscMasterは、主要なボリューム記述子、補足的なボリューム記述子、ボリューム記述子の集合終止符、パステーブル、ディレクトリレコード等などで、スタッシュを満たす。このような構造およびその他の情報は、記録デバイスにデータを書き込むために選択された特定のフォーマットに関連付けられたエレメントである。
【００５６】
次に方法は、音声データの記録との関連で上述したように記録エンジンがタスクリストを作成する、動作５４０を実行する。動作５５０において、記録エンジンはタスクリストを焼き付けエンジンに引き渡し、動作５６０において、焼き付けエンジンはタスクリストを検証する。動作５７０において、焼き付けエンジンはタスクリストに従ってスタッシュファイルからデータを検索し、データをimapi.sysを介して選択記録デバイスに引き渡し、方法を終了させる。上で詳しく述べているように、動作５７０におけるスタッシュファイルからのデータの読み出しがカーネルモードで達成されるため、バッファアンダーランおよびデータの中断のリスクが回避される。
【００５７】
本発明は、コンピュータシステムに格納されたデータを使用する、コンピュータに実装された種々の動作を利用しても良い。これらの動作は、物理量の物理的操作を必要とするものである。これらの物理量は、必然ではないものの、格納、転送、結合、比較、およびその他の操作が可能な電気信号または磁気信号の形を採る。さらに、実行される操作は、生成する、識別する、決定する、または比較する等の用語で呼ばれることが多い。
【００５８】
本明細書で記述した、本発明の一部をなす任意の動作は、有用なマシン動作である。本発明はまた、これらの動作を実行するためのデバイスまたは装置に関する。装置は、必要とされる目的のために特別に構築されても良いし、あるいは、コンピュータに格納されたコンピュータプログラムによって選択的にアクティベイトまたは構成される汎用コンピュータであっても良い。特に、ここで教示される内容に従って記述されたコンピュータプログラムと共に、種々の汎用マシンを使用して良い場合もあるし、あるいは、必要とされる動作を実行するために、より専用化された装置を構築する方が便利な場合もある。
【００５９】
本発明はまた、コンピュータ読み取り可能メディア上のコンピュータ読み取り可能コードとして具体化することもできる。コンピュータ読み取り可能メディアは、データを格納し、格納したデータをコンピュータシステムに読み取らせることができる、任意のデータストレージデバイスである。コンピュータ読み取り可能メディアは、例えば、読み取り専用メモリ、ランダムアクセスメモリ、CD-ROM、CD-R、CD-RW、磁気テープ、およびその他の光データストレージデバイスを含む。コンピュータ読み取り可能メディアが、ネットワークで接続されたコンピュータシステム間で分散できるため、コンピュータ読み取り可能コードは、分散方式によって格納および実行される。
【００６０】
以上では、明瞭な理解を目的として本発明を詳しく説明したが、添付した請求の範囲の範囲内で、一定の変更および修正を実施できることは明らかである。したがって、以上で取り上げた実施形態は、例示を目的としたものであって、本発明の内容を限定するものではく、このため本発明は、本明細書で特定した詳細に限定されることなく、添付した特許請求の範囲および等価物の範囲内で、種々の変更を加えることが可能である。
【図面の簡単な説明】
【図１】従来技術による代表的な記録プロセスを示したブロック図である。
【図２】本発明の１つの実施形態に従って示したIMAPIのシステム図である。
【図３】本発明の１つの実施形態に従って示したディスクマスタである。
【図４】データが光ディスクに記録される際に実行される方法動作を、本発明の１つの実施形態に従って示したフローチャートである。
【図５】データが光ディスクに記録される際に実行される方法動作を本発明の１つの実施形態に従って示したフローチャートの、続きを示したものである。
【図６】データが光ディスクに記録される際に実行される方法動作を本発明の１つの実施形態に従って示したフローチャートの、さらなる続きを示したものである。
【図７】データが光ディスクに記録される際に実行される方法動作を本発明の１つの実施形態に従って示したフローチャートの、さらなる続きを示したものである。
【符号の説明】
１１０…クライアントアプリケーション
１２０…データベース
１３０…ソース
１４０…記録エンジン
１５０…システムメモリバッファ
１６０…光デバイス
２０１…記録エンジンIMAPI.EXE
２０２…クライアントアプリケーション
２０４…IDiscMasterProgressEventsインターフェース
２０６…構成アプリケーション
２１２…インターフェースノード
２２０…ディスクマスタ
２２０ａ…ディスクマスタの１つの実施形態
２２２…ディスクマスタインターフェースIDiscMaster
２２４…IRedbookDiscMaster
２２６…IJolietDiscMaster
２２７ａ…IISO9660DiscMaster
２２７ｂ…IUDFDiscMaster
２２７ｃ…ICDExtraDiscMaster
２２７ｄ…IPhotoCDDiscMaster
２２７ｅ…ICD3DiscMaster
２２７ｆ…IVideoCDDiscMaster
２２７ｇ…I...DiscMaster
２２８…スタッシュファイル
２３０…IDiscStashインターフェース
２３２…焼き付けエンジン
２３４…IEnumDiscRecordersインターフェース
２４０…ディスクレコーダ
２４２…IDiscRecorderインターフェース
２５０ａ…記録デバイスドライバ
２５０ｂ…記録デバイスドライバ
２５０ｃ…ワイルドカード
２６０…Imapi.sys
２７０…CD-ROMクラス
２８０…光メディア記録デバイス
２１０，２１４，２１６…概念的な接続
２３３，２３５，２３７，２３９，２４１、２４３，２４５，２５５，２５５ａ…配線上の接続、コネクタ
【図１】
0003857039.tif 000002
【図２】
0003857039.tif 000003
【図３】
0003857039.tif 000004
【図４】
0003857039.tif 000005
【図５】
0003857039.tif 000006
【図６】
0003857039.tif 000007
【図７】
0003857039.tif 000008