【手続補正書】
【提出日】平成20年9月12日(2008.9.12)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
アプリケーションが第１のコンポーネントからバッファを要求するステップと、
第１のコンポーネントがバッファを割り振るステップと、
第１のコンポーネントがアプリケーション・データに関するバッファの第１のオフセットと、第１のヘッダに関するバッファの第２のオフセットとをアプリケーションに返すステップであって、前記第１のオフセットと前記第２のオフセットは、それ以前に書き込まれたデータの前に書き込むのに十分な量のスペースが設けられるように計算される、前記返すステップと、
アプリケーションがアプリケーション・データをバッファの第１のオフセットに書き込むステップと、
アプリケーションが第１のヘッダをバッファ内の第２のオフセットに書き込むステップと、
第２のヘッダをバッファの第３のオフセットに書き込むステップと、
第２のヘッダを指すポインタを第２のコンポーネントに受け渡すステップと、
第２のコンポーネントがポインタを受け取ることに応答して、バッファ内容をどう処理するかを決定するよう、前記バッファ内の第２のヘッダを処理するステップと、
を有する方法。
【請求項２】
第１のオフセットは第２のオフセットよりも大きく、第２のオフセットは第３のオフセットよりも大きい、請求項１に記載の方法。
【請求項３】
コンポーネントは第２のヘッダをバッファに書き込み、
第３のヘッダをバッファの第４のオフセットに書き込むステップを更に有し、第１のオフセットは第２のオフセットよりも大きく、第２のオフセットは第３のオフセットよりも大きく、第３のオフセットは第４のオフセットよりも大きい、
請求項１に記載の方法。
【請求項４】
第２のコンポーネントが第２のヘッダをバッファ内容をストレージ・デバイスに転送するのに使用される情報に置き換えるステップ、
を更に有する請求項１に記載の方法。
【請求項５】
第３のオフセットにおける第２のヘッダはアプリケーション・データ及びヘッダを有するバッファ内容を第１のデバイス又は第２のデバイスに転送するよう指示し、
第１のコンポーネントが第２のヘッダを指すポインタを第２のコンポーネントに受け渡すステップと、
第２のコンポーネントが、バッファ内容を第１のデバイスと第２のデバイスのどちらに送信すべきか判定するために第２のヘッダを処理するステップと、
前記第２のヘッダが前記バッファ内容を前記第１のデバイスに送信するよう指示していることが判定されたことに応じて、前記バッファ内容を前記第１のデバイスに転送するのに使用されるデバイス情報を第２のヘッダに書き込むステップであって、デバイス情報が第１のコンポーネントによって書き込まれた第２のヘッダ情報と置き換えられるようにしたステップと、
を更に有する請求項１に記載の方法。
【請求項６】
第１のデバイスはストレージ・デバイスからなり、
バッファ内容をストレージ・デバイスに送信すべきことが判定されたことに応じて、ストレージ・デバイス用のストレージ・デバイス・ドライバが第２のヘッダのデバイス情報を使用してバッファ内容をバッファからストレージ・デバイスに転送するステップ、
を更に有する請求項５に記載の方法。
【請求項７】
前記第１のコンポーネントから受け渡される前記ポインタは第１のポインタからなり、
バッファ内容をストレージ・デバイスに送信すべきことが判定されたことに応じて、第２のコンポーネントがバッファを指す第２のポインタを第３のコンポーネントに送り、第３のコンポーネントがデバイス情報を前記第２のヘッダに書き込むステップと、
第３のコンポーネントがバッファを指す第３のポインタをストレージ・デバイス・ドライバに送り、ストレージ・デバイス・ドライバが第３のポインタを使用してバッファの内容をストレージ・デバイスのストレージ・メディアに書き込むステップと、
を更に有する請求項６に記載の方法。
【請求項８】
前記第１のコンポーネントは、ストレージ・マネージャのアプリケーション・プログラム・インターフェイス（ＡＰＩ）からなり、第３のコンポーネントはストレージ・エージェントからなる、請求項７に記載の方法。
【請求項９】
前記第２のデバイスはストレージ・サーバからなり、
第２のヘッダがバッファ内容をストレージ・サーバに送信するよう指示していることが判定されたことに応じて、第２のコンポーネントがバッファ内容をストレージ・サーバに送信するステップ、
を更に有する請求項５に記載の方法。
【請求項１０】
前記第１のコンポーネントが、第１のオフセットを、アプリケーション・データを第１のオフセットから書き込んだ後に第１及び第２のヘッダを書き込むのに十分な量のスペースがバッファの第１のオフセットの前に設けられるように、計算するステップと、
前記第１のコンポーネントが、第２のオフセットを、アプリケーション・データ及び第１のヘッダを書き込んだ後に第２のヘッダを書き込むのに十分な量のスペースがバッファの第２のオフセットの前に設けられるように、計算するステップと、
を更に有する請求項１に記載の方法。
【請求項１１】
前記第１のコンポーネントが、第３のオフセットを、アプリケーション・データ及び第１のヘッダを書き込んだ後に第２のヘッダを書き込むのに十分な量のスペースがバッファの第３のオフセットの前に設けられるように、計算するステップ、
を更に有する請求項１０に記載の方法。
【請求項１２】
アプリケーション・データが固定の数の倍数であるかどうかを判定するステップを更に含み、第１及び第２のオフセットは、アプリケーション・データが固定の数の倍数でないことが判定されたことに応じて、空きスペース及びアプリケーション・データが固定の数の倍数を占有するように、第１のオフセットに書き込まれたアプリケーション・データの前に空きスペースを確保するように計算され、第１のヘッダは第２のオフセットから空きスペースの開始位置まで延びる、
請求項１に記載の方法。
【請求項１３】
第１のヘッダが固定の数の倍数であるかどうかを判定するステップを更に含み、第３のオフセットは、第１のヘッダが固定の数の倍数でないことが判定されたことに応じて、第１のヘッダ及び空きスペースが固定の数の倍数を占有するように、第１のヘッダの前に空きスペースを確保するように選択され、第２のヘッダは、第３のオフセットから第１のヘッダの前の空きスペースの開始位置まで延びる、
請求項１２に記載の方法。
【請求項１４】
前記固定の数は４キロバイトを有し、アプリケーション・データが固定の数の倍数でなくなるのは、バッファの第１のオフセットに書き込まれたアプリケーション・データがバッファの４キロバイト境界上に位置合わせされない場合である、請求項１２に記載の方法。
【請求項１５】
アプリケーションが複数のバッファを要求するステップと、
第１のコンポーネントが複数のバッファをアプリケーションに返すステップと、
アプリケーションがアプリケーション・データと第１のヘッダとを複数のバッファに同時に書き込むステップと、
を更に有する請求項１に記載の方法。
【請求項１６】
第１のコンポーネントが第２のコンポーネントからバッファを要求するステップと、
第２のコンポーネントがバッファを割り振るステップと、
第２のコンポーネントがアプリケーション・データに関するバッファの第１のオフセットと、第１のヘッダに関するバッファの第２のオフセットとを第１のコンポーネントに返すステップであって、前記第１のオフセットと前記第２のオフセットは、それ以前に書き込まれたデータの前に書き込むのに十分な量のスペースが設けられるように計算される、前記返すステップと、
第２のコンポーネントがアプリケーション・データをバッファの第１のオフセットに書き込むステップと、
第２のコンポーネントが第１のヘッダをバッファ内の第２のオフセットに書き込むステップと、
第３のコンポーネントが第２のヘッダをバッファ内の第３のオフセットに書き込むステップと、
を有する方法。
【請求項１７】
第１のオフセットは第２のオフセットよりも大きく、第２のオフセットは第３のオフセットよりも大きい、
請求項１６に記載の方法。
【請求項１８】
第１のコンポーネントがストレージ・デバイスから得られたアプリケーション・データをバッファに書き込むステップと、
第２のコンポーネントが、バッファへのポインタを、前記アプリケーション・データについての要求を開始したアプリケーションへ受け渡すステップと、
を更に有する請求項１６に記載の方法。
【請求項１９】
プロセッサと、
プロセッサからアクセス可能であり、複数のバッファを有するメモリと、
アプリケーション及びコンポーネントを含むコンピュータに読み込み可能なコードと、を備えるシステムであって、
前記プロセッサは、前記コードを実行して請求項１乃至１８のいずれかの請求項に記載の各方法のステップを実施するものである、
システム。
【請求項２０】
それぞれ複数のバッファを含むメモリと通信し、請求項１乃至１８のいずれかの請求項に記載の各方法のステップを実施するように実行可能である、
コンピュータ・プログラム。