【手続補正書】
【提出日】平成18年11月8日(2006.11.8)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
コンピュータ環境において、
最初のフィルタドライバからフィルタドライバ登録要求を受け取ることと、
プリコールバック順序内の各他のフィルタドライバに関して前記プリコールバック順序内に前記最初のフィルタドライバを順序付けることを含む、前記要求に応答して前記最初のフィルタドライバを登録することと、
ファイルシステムに向けられたファイルシステム入出力要求を受け取ることと、
前記入出力要求に対応するデータを最初のフィルタドライバに渡すことを含む、プリコールバック順序に基づいて前記プリコールバックを用いて前記最初のフィルタドライバを呼び出すことと、
前記プリコールバック順序に基づく最後のフィルタドライバを呼び出すことを含み、前記入出力要求に対応するデータを前記最後のフィルタドライバに渡すことを含む、別のプリコールバックを用いて少なくとも１つの他のフィルタドライバを呼び出すことと、
前記ファイルシステム入出力要求を前記ファイルシステムに渡すことであって、前記ファイルシステム入出力要求は、前記フィルタドライバの少なくとも１つによって処理された前記入出力要求に対応するデータを含む、ことと
を含むことを特徴とする方法。
【請求項２】
前記ファイルシステム入出力要求内のデータを、前記最初のフィルタドライバに渡すためにコールバックデータに変換することをさらに含むことを特徴とする請求項１に記載の方法。
【請求項３】
前記最後のフィルタドライバから受け取られるコールバックデータを、前記ファイルシステムに渡される前記ファイルシステム入出力要求に再変換することをさらに含むことを特徴とする請求項２に記載の方法。
【請求項４】
前記入出力要求に対応するデータを前記最初のフィルタドライバに渡すことは、前記入出力要求内の暗黙の情報に基づいて前記最初のフィルタドライバに明示的コンテキストを渡すことを含むことを特徴とする請求項１に記載の方法。
【請求項５】
前記最初のフィルタドライバを登録することは、特定のファイルシステムボリュームに関して前記フィルタドライバのインスタンスを登録することを含むことを特徴とする請求項１に記載の方法。
【請求項６】
特定のファイルシステムボリュームに関して登録される前記フィルタドライバの前記インスタンスは、そのボリュームに関して登録される前記フィルタドライバの別のインスタンスと同一のタイプのフィルタドライバを含むことを特徴とする請求項５に記載の方法。
【請求項７】
前記最初のフィルタドライバは、前記最初のフィルタドライバが関係するファイル入出力要求の少なくとも１つのタイプの組を示すことを特徴とする請求項１に記載の方法。
【請求項８】
ファイル入出力要求のタイプのそれぞれについて順序付きリストを構成することをさらに含み、前記順序付きリストは、入出力要求のそのタイプに関係する各フィルタドライバの順序を示すことを特徴とする請求項７に記載の方法。
【請求項９】
第２ファイルシステム入出力要求を前記ファイルシステムに渡した後に、前記最初のまたは最後のファイルシステムフィルタドライバの少なくとも１つでのポストコールバックオペレーションをコールバックすることをさらに含むことを特徴とする請求項１に記載の方法。
【請求項１０】
前記コールバックに応答して、前記最初のフィルタドライバからステータス値を受け取ることをさらに含むことを特徴とする請求項１に記載の方法。
【請求項１１】
前記プリコールバックに応答して、前記最初のフィルタドライバからステータス値を受け取ることをさらに含むことを特徴とする請求項１に記載の方法。
【請求項１２】
前記ステータス値は、成功およびポストコールバックを用いてコールバックされないことの要求を示し、さらに、前記最初のフィルタドライバをポストコールバックを用いて呼び出さずに前記最初のファイルシステム入出力要求のオリジネータに前記最初のファイルシステム入出力要求に対応するデータを返すことを含むことを特徴とする請求項１１に記載の方法。
【請求項１３】
前記ステータス値は、成功およびポストコールバックを用いて呼び出されることの要求を示し、さらに、前記最初のフィルタドライバに前記入出力要求に対応するデータを渡すことを含めて、ポストコールバック順序に基づいてポストコールバックを用いて最初のフィルタドライバを呼び出すことを含むことを特徴とする請求項１１に記載の方法。
【請求項１４】
前記最初のフィルタドライバへの前記ポストコールバックに応答して、終了ステータスを示すステータス値を受け取ることをさらに含むことを特徴とする請求項１３に記載の方法。
【請求項１５】
前記最初のフィルタドライバへの前記ポストコールバックに応答して、追加処理が要求されることを示すステータス値を受け取ることと、前記追加処理が完了したことを示す前記最初のフィルタドライバからの呼出しを受け取ることとをさらに含むことを特徴とする請求項１３に記載の方法。
【請求項１６】
前記ステータス値は、保留ステータスを示し、前記保留ステータスが完了したことを示す前記最初のフィルタドライバからの呼び出しを受け取ることをさらに含むことを特徴とする請求項１１に記載の方法。
【請求項１７】
前記ステータス値は、同期ステータスを示すことを特徴とする請求項１１に記載の方法。
【請求項１８】
前記ステータス値は、高速入出力が却下されたことを示すことを特徴とする請求項１１に記載の方法。
【請求項１９】
前記プリコールバック順序は、各フィルタドライバの高度に基づき、さらに、前記最初のフィルタドライバによって提供される情報に基づいて前記最初のフィルタドライバの高度を導出することを含むことを特徴とする請求項１に記載の方法。
【請求項２０】
さらに、前記最初のフィルタドライバから登録要求を受け取ることを含み、前記要求は、前記高度がそこから導出される前記最初のフィルタドライバによって提供される前記情報を含むことを特徴とする請求項１９に記載の方法。
【請求項２１】
ポストコールバック順序に基づいて、ポストコールバックを用いて前記最初のフィルタドライバを呼び出すことをさらに含むことを特徴とする請求項１に記載の方法。
【請求項２２】
前記最初のフィルタドライバへの前記プリコールバックに関する前記最初のフィルタドライバのデータを保存することと、前記保存されたデータの少なくとも一部を検索し、前記ポストコールバックに関して前記最初のフィルタドライバに供給することをさらに含むことを特徴とする請求項２１に記載の方法。
【請求項２３】
前記最初のフィルタドライバのデータを保存することは、データを完了ノードスタックにプッシュすることを含むことを特徴とする請求項２１に記載の方法。
【請求項２４】
前記最後のフィルタドライバがポストコールバックを要求したかどうかを判定することと、そうである場合（要求した場合）に、ａ）前記最後のドライバへの前記プリコールバックに関する前記最後のフィルタドライバのデータを保存することと、ｂ）前記保存されたデータの少なくとも一部を検索し、前記最後のフィルタドライバに提供することを含めて、ポストコールバックを用いて前記最後のフィルタドライバを呼び出すこととをさらに含むことを特徴とする請求項１に記載の方法。
【請求項２５】
前記最後のフィルタドライバのデータを保存することは、前記最後のフィルタが別のフィルタドライバへのポストコールバックに関して保存された他のデータを修正したかどうかを判定することと、そうでない場合に、前記最後のフィルタドライバおよび前記別のフィルタドライバの保存されたデータとして前記他のデータを使用することとを含むことを特徴とする請求項２４に記載の方法。
【請求項２６】
前記最初のフィルタドライバにコンテキストを返す要求を受け取ることと、前記要求に応答して前記コンテキストに対応するデータを返すこととをさらに含むことを特徴とする請求項１に記載の方法。
【請求項２７】
コンテキストデータを前記最初のフィルタドライバに返すことをさらに含むことを特徴とする請求項１に記載の方法。
【請求項２８】
前記コンテキストデータが、要求に応答して返されることを特徴とする請求項２７に記載の方法。
【請求項２９】
前記コンテキストデータが、通知の一部として返されることを特徴とする請求項２７に記載の方法。
【請求項３０】
前記コンテキストデータは、ストリームハンドルに対応することを特徴とする請求項２７に記載の方法。
【請求項３１】
前記コンテキストデータは、ストリームに対応することを特徴とする請求項２７に記載の方法。
【請求項３２】
前記コンテキストデータは、ファイルに対応することを特徴とする請求項２７に記載の方法。
【請求項３３】
前記コンテキストデータは、ボリュームに対応することを特徴とする請求項２７に記載の方法。
【請求項３４】
前記コンテキストデータは、インスタンスに対応することを特徴とする請求項２７に記載の方法。
【請求項３５】
ツリーを維持することと、前記コンテキストデータについて前記ツリーを検索することとをさらに含むことを特徴とする請求項２７に記載の方法。
【請求項３６】
キーを受け取ることと、前記キーに基づいて前記ツリーを検索することとをさらに含むことを特徴とする請求項２７に記載の方法。
【請求項３７】
前記キーは、ファイルオブジェクト識別子およびインスタンス識別子を含むことを特徴とする請求項３６に記載の方法。
【請求項３８】
前記キーは、インスタンス識別子を含むことを特徴とする請求項３６に記載の方法。
【請求項３９】
前記ツリーは、ノードを含み、各ノードは、インスタンスに対応することを特徴とする請求項３５に記載の方法。
【請求項４０】
前記ツリーは、ストリームに対応することを特徴とする請求項３５に記載の方法。
【請求項４１】
前記ツリーが、前記ファイルシステムによって維持される他のストリームデータに論理的にアタッチされることを特徴とする請求項４０に記載の方法。
【請求項４２】
前記ファイルシステムに向けられた最初のファイルシステム入出力要求を受け取ることは、レガシフィルタから入出力要求パケットを受け取ることを含むことを特徴とする請求項１に記載の方法。
【請求項４３】
前記ファイルシステムに向けられた前記ファイルシステム入出力要求は、エンティティから受け取られる入出力要求パケットを含み、さらに、対応する入出力要求パケットを前記エンティティに返すことを含むことを特徴とする請求項１に記載の方法。
【請求項４４】
前記最初のフィルタドライバから受け取られるコールバックデータを前記エンティティに返される入出力要求パケットに再変換することをさらに含むことを特徴とする請求項４３に記載の方法。
【請求項４５】
前記ファイルシステムに向けられた前記最初のファイルシステム入出力要求を受け取ることは、レガシフィルタから入出力要求パケットを受け取ることを含むことを特徴とする請求項１に記載の方法。
【請求項４６】
前記レガシフィルタに入出力要求パケットを返すことをさらに含むことを特徴とする請求項４５に記載の方法。
【請求項４７】
前記最初のフィルタドライバで開始される別の入出力要求を受け取ることと、前記入出力要求に対応するコールバックデータを用いて少なくとも１つの他のフィルタドライバをプリコールすることを含めて、前記ファイルシステムに向けて前記別の入出力要求を送ることとをさらに含むことを特徴とする請求項１に記載の方法。
【請求項４８】
前記別の入出力要求は、ファイルを作成する要求を含み、前記要求を開始したものとして前記最初のフィルタドライバを識別するヒントを用いてファイルを作成することをさらに含むことを特徴とする請求項４７に記載の方法。
【請求項４９】
コンピュータ環境において、
ファイル入出力要求のタイプのそれぞれについて、入出力要求のそのタイプに関係する各フィルタドライバの順序を示す順序付きリストを構成することと、
ファイルシステムに向けられたファイルシステム入出力要求を受け取ることと、
前記入出力要求に対応するデータを最初のフィルタドライバに渡すことを含む、プリコールバック順序に基づいてプリコールバックを用いて前記最初のフィルタドライバを呼び出すことであって、前記最初のフィルタドライバが、前記最初のフィルタドライバが関係するファイル入出力要求の少なくとも１つのタイプの組を示すことと、
前記プリコールバック順序に基づく最後のフィルタドライバを呼び出すことを含み、前記入出力要求に対応するデータを前記最後のフィルタドライバに渡すことを含む、別のプリコールバックを用いて少なくとも１つの他のフィルタドライバを呼び出すことと、
前記ファイルシステム入出力要求を前記ファイルシステムに渡すことであって、前記ファイルシステム入出力要求は、前記フィルタドライバの少なくとも１つによって処理された前記入出力要求に対応するデータを含むことと、
を含むことを特徴とする方法。
【請求項５０】
前記プリコールバックに応答して、前記最初のフィルタドライバからステータス値を受け取ることをさらに含むことを特徴とする請求項４９に記載の方法。
【請求項５１】
ポストコールバック順序に基づいて、ポストコールバックを用いて前記最初のフィルタドライバを呼び出すことをさらに含むことを特徴とする請求項４９に記載の方法。
【請求項５２】
コンテキストデータを前記最初のフィルタドライバに返すことをさらに含むことを特徴とする請求項４９に記載の方法。
【請求項５３】
コンピュータ環境において、
ファイルシステムに向けられたファイルシステム入出力要求を受け取ることと、
前記入出力要求に対応するデータを最初のフィルタドライバに渡すことを含む、プリコールバック順序に基づいてプリコールバックを用いて前記最初のフィルタドライバを呼び出すことと、
前記プリコールバック順序に基づく最後のフィルタドライバを呼び出すことを含み、前記入出力要求に対応するデータを前記最後のフィルタドライバに渡すことを含む、別のプリコールバックを用いて少なくとも１つの他のフィルタドライバを呼び出すことと、
前記ファイルシステム入出力要求を前記ファイルシステムに渡すことであって、前記ファイルシステム入出力要求は、前記フィルタドライバの少なくとも１つによって処理された前記入出力要求に対応するデータを含むことと、
前記プリコールバックに応答して、前記最初のフィルタドライバから、成功およびポストコールバックを用いてコールバックされないことの要求を示すステータス値を受け取ることと、
前記最初のフィルタドライバをポストコールバックを用いて呼び出さずに前記最初のファイルシステム入出力要求のオリジネータに前記最初のファイルシステム入出力要求に対応するデータを返すことと、
を含むことを特徴とする方法。
【請求項５４】
コンテキストデータを前記最初のフィルタドライバに返すことをさらに含むことを特徴とする請求項５３に記載の方法。
【請求項５５】
コンピュータ環境において、
ファイルシステムに向けられたファイルシステム入出力要求を受け取ることと、
前記入出力要求に対応するデータを最初のフィルタドライバに渡すことを含む、プリコールバック順序に基づいてプリコールバックを用いて前記最初のフィルタドライバを呼び出すことと、
前記プリコールバック順序に基づく最後のフィルタドライバを呼び出すことを含み、前記入出力要求に対応するデータを前記最後のフィルタドライバに渡すことを含む、別のプリコールバックを用いて少なくとも１つの他のフィルタドライバを呼び出すことと、
前記ファイルシステム入出力要求を前記ファイルシステムに渡すことであって、前記ファイルシステム入出力要求は、前記フィルタドライバの少なくとも１つによって処理された前記入出力要求に対応するデータを含むことと、
前記プリコールバックに応答して、前記最初のフィルタドライバから、成功およびポストコールバックを用いて呼び出されることの要求を示すステータス値を受け取ることと、
前記最初のフィルタドライバに前記入出力要求に対応するデータを渡すことを含めて、ポストコールバック順序に基づいてポストコールバックを用いて前記最初のフィルタドライバを呼び出すことと、
を含むことを特徴とする方法。
【請求項５６】
前記最初のフィルタドライバへの前記ポストコールバックに応答して、追加処理が要求されることを示すステータス値を受け取ることと、前記追加処理が完了したことを示す前記最初のフィルタドライバからの呼出しを受け取ることとをさらに含むことを特徴とする請求項５５に記載の方法。
【請求項５７】
コンピュータ環境において、
ファイルシステムに向けられたファイルシステム入出力要求を受け取ることと、
前記入出力要求に対応するデータを最初のフィルタドライバに渡すことを含む、プリコールバック順序に基づいてプリコールバックを用いて前記最初のフィルタドライバを呼び出すことと、
前記プリコールバック順序に基づく最後のフィルタドライバを呼び出すことを含み、前記入出力要求に対応するデータを前記最後のフィルタドライバに渡すことを含む、別のプリコールバックを用いて少なくとも１つの他のフィルタドライバを呼び出すことと、
前記ファイルシステム入出力要求を前記ファイルシステムに渡すことであって、前記ファイルシステム入出力要求は、前記フィルタドライバの少なくとも１つによって処理された前記入出力要求に対応するデータを含むことと、
前記プリコールバックに応答して、前記最初のフィルタドライバから、保留ステータスを示すステータス値を受け取ることと、
前記保留ステータスが完了したことを示す前記最初のフィルタドライバからの呼び出しを受け取ることと、
を含むことを特徴とする方法。
【請求項５８】
ポストコールバック順序に基づいて、ポストコールバックを用いて前記最初のフィルタドライバを呼び出すことをさらに含むことを特徴とする請求項５７に記載の方法。
【請求項５９】
コンテキストデータを前記最初のフィルタドライバに返すことをさらに含むことを特徴とする請求項５７に記載の方法。