(57)【要約】  記憶装置上に存在するボリューム及び当該ボリューム内にネストされた仮想記憶装置上に存在するゲスト・ボリュームに関してファイル・システム依存関係を追跡する処理装置及び機械により実施される方法が提供され得る。シム・ドライバーは、浮上させられている仮想記憶装置についての指示を受信し、仮想記憶装置内に含まれるパーティション及びボリュームをシステムへ浮上させるために内容を解析してもよい。シム・ドライバーは、ホスト・ボリューム内にネストされたゲスト・ボリュームを開き、ゲスト・ボリュームに関して、ホスト・ボリュームに関連付けられた仮想ディスクのミニフィルターへ、登録要求を送信してもよい。仮想ディスクのミニフィルターは、ホスト・ボリュームとゲスト・ボリュームとの関係に関する情報を保存してもよい。保存された情報は、ホスト・ボリュームが取り外されるか又は不意に除去される場合に、ファイル・システムの破損を防ぐために使用されてもよい。
2012504281.tif 000002
【特許請求の範囲】
【請求項１】
ネストされたファイル・システムのサポートを提供する、機械により実施される方法であって、
第１のコンポーネントにおいて、第１のファイル・システムに関連付けられる第１のボリュームに存在する仮想ディスクとしてのディスク・コンテナ・フォーマット・ファイルの浮上に関する指示を受信するステップ（５０６）と、
前記第１のコンポーネントが、前記ディスク・コンテナ・フォーマット・ファイル中に含まれるパーティション及びボリュームを見えるようにするために、前記ディスク・コンテナ・フォーマット・ファイルを解析するステップ（５０７）と、
前記第１のコンポーネントが、第２のファイル・システムに関連付けられ且つ前記第１のボリューム内にネストされる、前記ディスク・コンテナ・フォーマット・ファイル内に含まれる第２のボリュームを開くステップ（５０８）と、
前記第１のコンポーネントから第２のコンポーネントへ、前記第２のボリュームに関する登録要求を送信するステップ（５０８）と、
前記第１のボリュームと前記第２のボリュームとの間の関係に関する情報を保存することにより、前記第２のコンポーネントが、ファイル・システム依存関係を追跡するステップ（５１４）と
を含む方法。
【請求項２】
前記第１のコンポーネントが前記第１のボリューム内にネストされた新たなボリュームを登録する場合に限り、前記第１のボリュームのファイル・システム・スタックに前記第２のコンポーネントをロードするステップ
をさらに含む請求項１に記載の機械により実施される方法。
【請求項３】
前記第２のボリュームが取り外される場合に、前記第１のコンポーネントが、前記第１のボリュームと前記第２のボリュームとの間の関係に関する情報を削除することによって前記第１のボリュームと前記第２のボリュームとの間の関係を解体するために、前記第２のコンポーネントへ、登録取り消し要求を送信するステップ
をさらに含む請求項１に記載の機械により実施される方法。
【請求項４】
ボリュームに関して、シャットダウン要求を登録取り消し要求へと同期して翻訳するステップ
をさらに含む請求項１に記載の機械により実施される方法。
【請求項５】
前記第１のボリュームが取り外し要求に応答して解体されている場合に、前記第２のコンポーネントが、前記第１のボリューム内にネストされるすべてのボリュームに関して取り外し要求を同期して伝えるステップ
をさらに含む請求項１に記載の機械により実施される方法。
【請求項６】
前記第１のボリュームが前記第１のボリュームの予期しない除去の結果として解体されている場合に、前記第２のコンポーネントが、前記第１のボリューム内にネストされた各ボリュームについて前記第１のボリュームが利用不能であることに関するそれぞれの指示を同期して伝えるステップ
をさらに含む請求項１に記載の機械により実施される方法。
【請求項７】
前記第２のコンポーネントが、ボリュームとディスクの関係に関する質問に対する応答に対して、依存するボリュームのリストを付加するステップ
をさらに含む請求項１に記載の機械により実施される方法。
【請求項８】
請求項１−７のいずれかに記載の機械により実施される方法を少なくとも１つのプロセッサーが実行するための命令が記録された有形の機械可読媒体。
【請求項９】
ボリュームの取り付けについての指示及び前記ボリューム内のネストされたボリュームに関する情報を受信する（４２２、５０６、５０７）第１のコンポーネントと、
前記第１のコンポーネントから前記ネストされたボリュームの登録を受信し、前記ボリューム内のボリュームとすべてのネストされたボリュームとの間の関係に関して情報を保存することによってファイル・システム依存関係を追跡する（４１６、５０８、５１４）第２のコンポーネントと
を具備する処理装置。
【請求項１０】
前記第２のコンポーネントは、さらに、前記ボリュームの取り外しを前記第１のコンポーネントに知らせることに応答して、前記ネストされたボリュームに関する登録取り消し要求を前記第１のコンポーネントから受信し、前記ボリュームと前記ネストされたボリュームとの間の関係に関する情報を削除する請求項９に記載の処理装置。
【請求項１１】
前記ボリュームが解体されている場合に、前記第２のコンポーネントは、前記ボリューム内のすべてのネストされたボリュームに関する指示を、前記第１のコンポーネントに伝える請求項９に記載の処理装置。
【請求項１２】
前記ボリュームの予期しない除去に応答して、前記第２のコンポーネントは、前記ボリューム内の前記ネストされたボリュームの各々について前記ボリュームが利用不能であることに関する指示を同期して伝える請求項９に記載の処理装置。
【請求項１３】
前記ボリュームに関連付けられるホスト・ファイル・システムと、
前記ホスト・ファイル・システムに取り付けられるホスト・ファイル・システム・フィルター・スタックと
をさらに具備し、前記ホスト・ファイル・システム・フィルター・スタックは前記ホスト・ファイル・システムから前記第２のコンポーネントに情報を提供する請求項９に記載の処理装置。
【請求項１４】
前記第２のコンポーネントは、前記ボリューム内の最後のネストされたボリュームに関する登録取り消し要求を前記第１のコンポーネントから受信して、前記ボリュームと前記最後のネストされたボリュームとの間の関係に関する情報を削除した後に、前記ホスト・ファイル・システムから切断され、アンロードされる請求項１３に記載の処理装置。
【請求項１５】
前記ホスト・ファイル・システム・スタックが、前記第２のコンポーネントに対して、ボリュームとディスクの関係に関する質問に対する応答を提供する場合に、前記第２のコンポーネントは、依存するボリュームのリストを前記応答に付加する請求項１３に記載の処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネストされたファイル・システムのサポートに関する。
【背景技術】
【０００２】
[0001]一般に、ウィンドウズ（登録商標）・オペレーティング・システムは、ネストされたファイル・システム・ボリューム（file system volume）の実装（マウント、mounting）をサポートしてこなかった。そのようなオペレーティング・システムにおいて、各ファイル・システム・ボリュームは他のファイル・システム・ボリュームに対する依存なしに動作し得る。ファイル・システムが、例えば、データのフラッシュ（掃き出し、flushing）、ボリューム（volume）のロック、ボリュームの取り外し（dismounting）又はシステム全体を含む他の動作を行った場合、１つのボリュームに対する動作が他のボリュームに対する動作に影響するであろうという懸念はなかった。
【０００３】
[0002]仮想ハードディスク（ＶＨＤ）のほか他のディスク・コンテナ・フォーマットは、全仮想ディスクを見えるようにする新たな技術であり、１つ以上のファイルとしてカプセル化されてもよい。実ディスク（real disk）のように、仮想ディスクは、パーティション、ボリューム、ディレクトリー及びファイルを有してもよい。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
[0003]実ディスクのボリューム内にネストされた仮想ディスクがオペレーティング・システムに対して浮上させられる（surfaced）場合、仮想ディスク内に含まれるボリュームはマウントされてもよい。仮想ディスクのボリュームに対する動作が実際には実ディスクのボリュームに対する動作であるので、仮想ディスクのボリュームと実ディスクのボリュームとの間には依存関係が存在する。多くの種類の動作は、それらの種類の動作がファイル・システムの依存関係に関係なく行われる場合に仮想ディスクのボリューム上のファイル・システムを破損させることになり得る。このような種類の動作の例は以下を含み得るが、これらに限定されない：
１．実ディスクのボリュームの取り外し−すべての依存する（又はネストされた）ボリュームの取り外しの前に取り外される実ディスクのボリュームは、依存するボリュームのファイル・システムを破損し得る；
２．システムのシャットダウン‐依存する（又はネストされた）ボリュームすべてのシャットダウンの前に実ディスクのボリュームをシャットダウンすると、依存するボリュームのファイル・システムを破損し得る；
３．ボリューム・スナップショット動作（ボリュームのコピーを作る）−ボリューム・スナップショット動作が実ディスクのボリューム内にネストされた（又は依存する）ボリュームを有する仮想ディスクに関連付けられたキャッシュからデータをフラッシュする前に実ディスクのボリュームに対して実行される場合、ボリューム・スナップショット動作は、ネストされた（又は依存する）ボリュームへの書き込みが実ディスクの基本ボリューム（underlying volume）上で完了するのを待つことが時間切れとなった後に失敗してもよい；及び
４．プラグアンドプレイ（ＰｎＰ）・ユーザー・インターフェースは、実ディスクが取り外される場合、取り除かれるすべてのボリューム（実ディスクのボリューム及び仮想ディスク上の任意のネストされたボリューム）を示すわけではない。
【課題を解決するための手段】
【０００５】
[0004]この概要は詳細な説明においてさらに以下に述べられる概念の選択されたものを単純化された形式で紹介するために提供される。この概要は、特許請求された主題の重要な特徴又は不可欠な特徴を識別するようには意図されず、特許請求された主題の範囲を限定するために使用されるようにも意図されない。
【０００６】
[0005]実ディスク及び仮想ディスク上のボリューム間のファイル・システム依存関係を追跡（トラッキング）し、ファイル・システムの破損を回避するためにボリューム間の依
存関係を追跡する、処理装置及び機械により実施される方法が提供される。シム・ドライバー（shim driver）は、仮想ディスクのボリュームのコンテナ・フォーマットに特有であってもよいし、コンテナ・フォーマットを解析するためにパーサー（parser）を含んでもよい。シム・ドライバーは、仮想ディスクのサーフェシング（浮上、surfacing）に関する指示を受信してもよい。シム・ドライバーは、仮想ディスクに含まれるパーティション及びボリュームを見えるようにするために仮想ディスクを解析してもよい。シム・ドライバーがネストされたボリュームを開く場合はいつでも、シム・ドライバーは仮想ディスクのミニフィルターへ登録要求を送信してもよい。シム・ドライバーから登録要求を受信すると、仮想ディスクのミニフィルターは、関係に関する情報を保存することにより、ボリュームとネストされたボリュームとの間の関係を記録（追跡）してもよい。
【０００７】
[0006]ネストされたボリュームの取り外しに関して情報が受信される場合、ボリュームとネストされたボリュームとの関係に関する情報を削除するために、シム・ドライバーは仮想ディスクのミニフィルターへ登録取り消し要求（unregister request）を送信してもよい。ホスト・ボリュームとすべての依存するネストされたボリュームとの間の関係に関するすべての情報が削除された後、仮想ディスクのミニフィルターはホスト・ボリュームから切断されてアンロードされてもよい。
【０００８】
[0007]仮想ディスクのミニフィルターが、ボリュームに関して、取り外し要求の指示を受信する場合、仮想ディスクのミニフィルターは、ボリュームに依存するすべてのネストされたボリュームに関して、取り外し要求を、シム・ドライバーに、ネスト・レベル（nesting level）順に同期して伝えてもよい。
【０００９】
[0008]仮想ディスクのミニフィルターが装置の関係に関する要求を受信する場合、仮想ディスクのミニフィルターは、依存するネストされたボリュームのリストを対応する応答に付加してもよい。
【００１０】
[0009]上述の並びに他の利点及び特徴を得ることができる方法について記述するために、より具体的な説明が以下に述べられ、添付の図面に示されるその特定の実施例を参照することによって与えられる。これらの図面が典型的な実施例を描くにすぎず、したがって、その範囲に限定していると考えられるべきでないと理解され、実施例は添付の図面の使用を通じて追加の特異性及び詳細をもって記載され説明される。
【図面の簡単な説明】
【００１１】
【図１】[0010]本開示の主題と一致する実施例を実施するために使用され得る例示的な処理装置の機能ブロック図である。
【図２】[0011]それぞれの仮想ディスクに存在するホスト・ボリューム及び依存するネストされたボリュームを格納した例示的な実ディスクを示す。
【図３】[0012]図２のボリューム、実ディスク及び仮想ディスクの間の関係を示す図である。
【図４】[0013]ホスト・ボリュームに供給されたり逆に戻されたりする、ゲスト・ボリュームに関して、例示的な動作を示す高レベルのフロー図である。
【図５】[0014]本開示の主題と一致する実施例を実施する処理装置によって行われ得る例示的な処理を示すフローチャートである。
【図６】本開示の主題と一致する実施例を実施する処理装置によって行われ得る例示的な処理を示すフローチャートである。
【図７】本開示の主題と一致する実施例を実施する処理装置によって行われ得る例示的な処理を示すフローチャートである。
【図８】本開示の主題と一致する実施例を実施する処理装置によって行われ得る例示的な処理を示すフローチャートである。
【図９】本開示の主題と一致する実施例を実施する処理装置によって行われ得る例示的な処理を示すフローチャートである。
【図１０】本開示の主題と一致する実施例を実施する処理装置によって行われ得る例示的な処理を示すフローチャートである。
【発明を実施するための形態】
【００１２】
[0015]実施例が以下に詳細に議論される。特定の実施例が議論されているが、これが例示の目的のみのためになされていることが理解されるべきである。当業者であれば、本開示の主題の趣旨及び範囲から逸脱することなく他の構成要素及び構成を使用し得ることを認識するであろう。
概観
[0016]依存するボリューム及びファイル・システムを破損させることを回避するために、実ディスク及び仮想ディスク上のボリューム内のファイル・システム並びに当該ボリューム間の依存関係を記録（追跡、トラッキング）するための、機械により実施される方法及び処理装置が提供される。
【００１３】
[0017]本開示の主題と一致する実施例において、入出力（Ｉ／Ｏ）マネージャーは、システム内で、システムの実施例を実施する処理装置に新たに取り付けられる記憶装置の追加によってハードウェア・バスが構成の変化を報告する場合、装置発見機構を介して通知されてもよい。新たに発見された記憶装置を発見した後に、Ｉ／Ｏマネージャーは、記憶装置上の１つ以上のパーティションを発見し、任意の適切なドライバー及びファイル・システムをロードさせてもよい。例えば、Ｉ／Ｏマネージャー・モジュールは、実ディスクのボリューム（ホスト・ボリューム）に関連付けられるホスト・ファイル・システムをロードしてもよい。
【００１４】
[0018]Ｉ／Ｏマネージャーが仮想装置として仮想ディスク・コンテナ・フォーマットを見えるようにするための要求を出す場合、当該要求は、仮想ディスク・コンテナをその後に開いて検査し得るシム・ドライバーに対してなされてもよい。ゲスト・ボリュームとして見えるようにされるファイルをシム・ドライバーが開くたびに、シム・ドライバーは仮想ディスクのミニフィルターに登録してもよい。仮想ディスクのミニフィルターはシム・ドライバーから登録要求を受信し、ホスト・ボリュームとすべての関連する依存するゲスト・ボリュームとの間の関係を保存し、経過を追ってもよい。仮想ディスクのミニフィルターは、利用可能とされていてもよい新たなボリュームの通知を受信してもよい。仮想ディスクのミニフィルターが通知を受信すると、仮想ディスクのミニフィルターは、新たなディスクが仮想的か物理的かを決定するために、記憶インターフェースを下って質問をシム・ドライバーへ送信してもよい。その後仮想ディスクのミニフィルターは関係情報（relationship information）を持続的に記録してもよい。
【００１５】
[0019]ゲスト・ボリュームが取り外されている場合、シム・ドライバーは登録取り消し要求を仮想ディスクのミニフィルターへ送信してもよく、いかなる書き込み消失やデータ破損も引き起こすことなくすべてのデータ構造が完全に解体されるような方法で、ゲスト・ディスク上のすべてのゲスト・ファイル・システム・ボリュームを取り外すことができる。その後、仮想ディスクのミニフィルターは、ゲスト・ボリュームとホスト・ボリュームとの関係に関する情報を削除してもよい。特定のホスト・ボリュームとすべての依存するゲスト・ボリュームとの間の関係に関するすべての情報が削除された場合、仮想ディスクのミニフィルターは特定のホスト・ボリュームから切断されアンロードされてもよい。
【００１６】
[0020]ファイル・システム・スタックに取り付けられた仮想ディスクのミニフィルターは、ホスト・ボリューム及び依存するゲスト・ボリュームの関係に関する情報を保存してもよい。ホスト・ボリュームが取り外し要求により解体される場合、仮想ディスクのミニフィルターはすべてのマウントされた依存するゲスト・ボリュームについての取り外し要求（dismount request）を伝えてもよい。さらに仮想ディスクのミニフィルターは、装置の関係についての要求に対する応答を受信し、依存するゲスト・ボリュームのリストを対応する応答に付加してもよい。
【００１７】
[0021]ホスト・ボリュームが存在するホスト・ディスクが利用不能になる場合、仮想ディスクのミニフィルターはすべての依存するゲスト・ボリュームに対して、ホスト・ディスクが利用不能であることに関する情報を伝えてもよく、その結果、ホスト・ボリューム及び依存するボリュームに対する更新が直ちに失敗し、ホスト・ディスクの状態情報が廃棄されてもよい。
例示的な処理装置
[0022]図１は、本開示の主題と一致するシステムの実施例を実施するために使用され得る例示的な処理装置１００の機能ブロック図である。処理装置１００は、デスクトップパソコン（ＰＣ）、ノートもしくはラップトップＰＣ、サーバー、又は他の処理装置であってもよい。処理装置１００は、バス１１０、メモリー１３０、読み取り専用メモリー（ＲＯＭ）１４０、プロセッサー１２０及び記憶装置１５０を含んでもよい。バス１１０は、処理装置１００のコンポーネント間の通信を許容してもよい。
【００１８】
[0023]プロセッサー１２０は、命令を解釈し実行する少なくとも１つの従来のプロセッサー又はマイクロプロセッサーを含んでもよい。メモリー１３０は、プロセッサー１２０による実行のために情報及び命令を格納するランダム・アクセス・メモリー（ＲＡＭ）又は別の種類の動的記憶装置であってもよい。メモリー１３０は、プロセッサー１２０による命令の実行中に使用される一時的な変数又は他の中間情報を格納してもよい。ＲＯＭ１４０は、プロセッサー１２０のために静的な情報及び命令を格納する、従来のＲＯＭ装置又は別の種類の静的記憶装置を含んでもよい。記憶装置１５０は、ハードディスク及び対応するドライブ、フラッシュベースの記憶装置、又は、プロセッサー１２０のためにデータ及び／もしくは命令を格納する他の種類のデータ記憶装置もしくは媒体を含んでもよい。
【００１９】
[0024]処理装置１００は、例えば、メモリー１３０、ＲＯＭ１４０、記憶装置１５０又は他の媒体などの有形の機械可読媒体に含まれる命令のシーケンスを実行するプロセッサー１２０に応答して、機能を行ってもよい。そのような命令は、通信インターフェース（図示せず）を介して別の機械可読媒体又は別個の装置からメモリー１３０に読み込まれてもよい。
ファイル・システム依存関係
[0025]図２は、本開示の主題と一致する実施例を実施する処理装置に接続され得る実ディスク、又はホスト・ディスク２００などの、例示的な取り外し可能な装置を示す。ホスト・ディスク２００は、その上に存在するホスト・ボリューム２０２を有してもよい。第１のネストされた（又はゲスト）ボリューム２０４は、仮想ディスク２０６上に存在してもよく、ホスト・ボリューム２０２内にネストされてもよい。第２のネストされた（又はゲスト）ボリューム２０８は、仮想ディスク２１０上に存在してもよく、ホスト・ボリューム２０２内にネストされてもよい。第３のネストされた（又はゲスト）ボリューム２１２は、仮想ディスク２１４上に存在してもよく、ホスト・ボリューム２０２内にさらにネストされる第１のネストされたボリューム２０４内にネストされてもよい。ホスト・ボリューム２０２はそれに関連付けられるホスト・ファイル・システムを有してもよい。第１のネストされたボリューム２０４、第２のネストされたボリューム２０８及び第３のネストされたボリューム２１２は各々、それらに関連付けられるそれぞれのゲスト・ファイル・システムを有してもよい。
【００２０】
[0026]図３は、図２に示されるホスト・ディスク、仮想ディスク、ホスト・ボリューム、及びネストされたゲスト・ボリューム間の依存関係を示す。ホスト・ボリューム２０２がホスト・ディスク２００上に存在するので、ホスト・ボリューム２０２はホスト・ディスク２００と関係がある。第１のネストされたボリューム２０４は仮想ディスク２０６上に存在し、ホスト・ボリューム２０２及びホスト・ディスク２００に依存する。第２のネストされたボリューム２０８は仮想ディスク２１０上に存在し、ホスト・ボリューム２０２及びホスト・ディスク２００に依存する。第３のネストされたボリューム２１２は仮想ディスク２１４上に存在し、第１のネストされたボリューム２０４及び仮想ディスク２０６のほか、ホスト・ボリューム２０２及びホスト・ディスク２００に依存する。前述の依存関係に基づいて、ホスト・ボリューム２０２が取り外されるか又は不意に取り除かれる場合、第１のネストされたボリューム２０４、第２のネストされたボリューム２０８及び第３のネストされたボリューム２１２が影響を受けることが容易に分かる。同様に、第１のネストされたボリューム２０４が取り外される場合、第３のネストされたボリューム２１２が影響を受ける。
【００２１】
[0027]図４は、ホスト・ボリューム４３２に供給されたり逆に戻されたりする、仮想的
なボリューム又はゲスト・ボリューム４００からの例示的な動作を示す高レベルのフロー図である。物理ディスク４３０上のホスト・ボリューム４３２に格納された仮想ディスク（図示せず）が浮上される（surfaced）場合、Ｉ／Ｏマネージャー４０６はシム・ドライバー４１６をロードしてもよい。シム・ドライバー４１６は、浮上された仮想ディスク上のパーティションを解析し、Ｉ／Ｏマネージャー４０６は適切なゲスト・ファイル・システム４１０をロードしてもよい。
【００２２】
[0028]仮想ディスク上に存在するゲスト・ボリューム４００を登録するために、シム・ドライバー４１６は仮想ディスクのミニフィルター４２２へ登録要求を送信してもよい。シム・ドライバー４１６が以前に仮想ディスクのミニフィルター４２２へ登録要求を送らなかったために仮想ディスクのミニフィルター４２２がまだロードされない場合、付加される依存するボリュームに関して、仮想ディスクのミニフィルター４２２は次に、ファイル・システム・スタック上へロードされ、それはホスト・ファイル・システム４２４及びストレージ・フィルター・ドライバー４２６を含んでもよい。ゲスト・ボリューム４００がその上に存在する仮想ディスクと、仮想ディスク及びゲスト・ボリューム４００がその上に存在するホスト・ボリューム４３２との関係に関する情報を含み得る登録要求を仮想ディスクのミニフィルター４２２が受信する場合、仮想ディスクのミニフィルター４２２は当該情報を保存してもよい。
【００２３】
[0029]ホスト・ボリューム４３２がボリュームとディスクとの関係に関する質問（クエリー）を受信する場合、応答がストレージ・フィルター・ドライバー４２６、ホスト・ファイル・システム４２４及びファイル・システム・フィルター・スタック４２０を通過した後、仮想ディスクのミニフィルター４２２は、装置の関係についての質問に対する応答に、依存するボリュームのリストを付加してもよい。
【００２４】
[0030]ゲスト・ボリューム４００が取り外されている場合、シム・ドライバー４１６は仮想ディスクのミニフィルター４２２へ登録取り消し要求を送信してもよく、それは、まず、ゲスト・ボリューム４００にまだロードされている任意のゲスト・ファイル・システム４１０を取り外してもよく、次に、ゲスト・ボリューム４００がその上に存在する仮想ディスクとホスト・ボリューム４３２と間の関連付けられた関係に関する情報を解体又は削除してもよい。ホスト・ボリューム４３２と、ホスト・ボリュームの最後のゲスト・ボリュームが存在する最後の仮想ディスクとの間の最後の関係に関する情報が解体又は削除される場合、仮想ディスクのミニフィルター４２２はホスト・ボリューム４３２から任意に切断され、アンロードされてもよい。
【００２５】
[0031]ホスト・ボリューム４３２が物理ディスク４３０の予期しない除去のために解体される場合、仮想ディスクのミニフィルター４２２は、Ｉ／Ｏマネージャー４０６を介して予期しない除去の指示を受信し、取り除かれた物理ディスク４３０に関連付けられる各ネストされたシム・ドライバーについて、シム・ドライバー４１６に対して、予期しない除去の通知（unexpected removal notification）を送信してもよい。その結果、シム・ドライバー４１６は、仮想ディスクのミニフィルター４２２へ、各々の依存するネストされたボリュームについて、それぞれの登録取り消し要求を送信してもよい。仮想ディスクのミニフィルター４２２は、それぞれの登録取り消し要求の各々を受信してもよく、任意のそれぞれのゲスト・ファイル・システム４１０にそれぞれの取り外し要求を送信してもよく、ホスト・ボリューム４３２と、それぞれのゲスト・ボリュームが存在する仮想ディスクとの間の関係に関する対応する情報を解体又は削除してもよい。
【００２６】
[0032]ディスク・ドライバー４１４は仮想ディスクのためのドライバーであってもよく、ディスク・ドライバー４２８は物理ディスク４３０のためのディスク・ドライバーであってもよい。
【００２７】
[0033]仮想ディスクのミニフィルター４０９は、ゲスト・ボリューム４００が依存するか、又はゲスト・ボリューム４００に依存する、ボリューム及び装置を追跡してもよい。例示的な処理
[0034]図５は、図４に関して、処理装置に新たに取り付けられる取り外し可能な記憶装置に関して、例示的な処理を示すフローチャートである。その処理は、新たに付加された記
憶装置に関して通知される、Ｉ／Ｏマネージャー４０６から開始してもよい（ステップ５０２）。Ｉ／Ｏマネージャー４０６は、記憶装置を読み取ることを試みてもよく、記憶装置の媒体上の１つ以上のパーティションを発見してもよく、適切なシム・ドライバー４１６、ディスク・ドライバー４１４、ストレージ・フィルター・ドライバー４１２、ファイル・システム４１０及びファイル・システム・フィルター・スタック４０８をロードしてもよい（ステップ５０４）。例えば、Ｉ／Ｏマネージャー４０６は、ホスト・ファイル・システム４２４、ストレージ・フィルター・ドライバー４２６及びファイル・システム・フィルター・スタック４２０を、媒体上のホスト・ボリューム４３２に関してロードしてもよく、ストレージ・フィルター・ドライバー４１２、ゲスト・ファイル・システム４１０、ファイル・システム・フィルター４０８、ディスク・ドライバー４１４及びシム・ドライバー４１６をロードしてもよい。
【００２８】
[0035]ホスト・ボリューム４３２上のディスク・コンテナ・フォーマット・ファイルが仮想ディスクとして浮上させられる場合、シム・ドライバー４１６は、ディスク・コンテナ・フォーマット・ファイルのサーフェシング（浮上）に関する指示を受信してもよく（ステップ５０６）、仮想ディスク・パーティション及びその中のボリュームを見えるようにするためにディスク・コンテナ・フォーマット・ファイルを解析してもよく（ステップ５０７）、仮想ディスク・パーティション内の１つ以上のゲスト・ボリューム又はネストされたボリュームを開くことを試みてもよく、シム・ドライバー４１６が開くことを試みるゲスト・ボリュームの各々について、ネストされたシム・ドライバー・ワーカー・スレッド４１８へ登録要求を送信してもよい（ステップ５０８）。ホスト・ボリューム４３２に関連付けられた仮想ディスクのミニフィルター４２２がロードされるか否かを決定するためにチェックがなされてもよい（ステップ５１０）。仮想ディスクのミニフィルター４２２がロードされない場合（シム・ドライバー４１６がホスト・ボリューム内の新たな又は第１のネストされたボリュームについて登録要求を送信する場合に限り、これが生じ得る）、その後、仮想ディスクのミニフィルター４２２は、ロードされて、ホスト・ボリューム４３２のファイル・システム・フィルター・スタックに接続されてもよい（ステップ５１２）。仮想ディスクのミニフィルター４２２をロードした後、又は仮想ディスクのミニフィルター４２２が既にロードされていることを決定した後、仮想ディスクのミニフィルター４２２は、シム・ドライバー４１６からゲスト・ボリューム４００についてのそれぞれの登録要求を受信してもよく、受信されたそれぞれの登録要求に基づいてファイル・システムの依存関係を追跡してもよい（ステップ５１４）。例えば、仮想ディスクのミニフィルター４２２がホスト・ボリューム４３２内にネストされたゲスト・ボリューム４００についての登録要求を受信する場合、その後、登録要求は、ゲスト・ボリューム４００、ホスト・ボリューム４３２及びホスト・ボリューム４３２がその上に存在する記憶装置に関する情報を含んでもよい。仮想ディスクのミニフィルター４２２は、記憶装置、その上に格納されたホスト・ボリューム４３２、及びホスト・ボリューム４３２に依存するゲスト・ボリューム４００を追跡するために当該情報を格納してもよい。
【００２９】
[0036]図６及び図７は、１つ以上のネストされたボリューム又はゲスト・ボリュームを有するホスト・ボリュームの取り外しに関して例示的な処理を示すフローチャートである。処理は、ホスト・ボリューム４３２についての取り外し要求を仮想ディスクのミニフィルター４２２へ知らせる指示を受信する、仮想ディスクのミニフィルター４２２から開始してもよい（ステップ６０２）。その後、仮想ディスクのミニフィルター４２２は、ホスト・ボリュームのすべての依存するネストされたボリューム又はゲスト・ボリュームを決定してもよく、ホスト・ボリュームの依存するネストされたボリューム又はゲスト・ボリュームの各々についてそれぞれの取り外し要求を同期して伝えてもよい（ステップ６０４）。
【００３０】
[0037]シム・ドライバー４１６は伝えられた取り外し要求の各々に関するそれぞれの指示を受信してもよく（ステップ６０６）、依存するネストされたボリューム又はゲスト・ボリュームの各々についてのそれぞれの登録取り消し要求を、仮想ディスクのミニフィルター４２２へ送信してもよい（ステップ６０８）。仮想ディスクのミニフィルター４２２
は、登録取り消し要求の各々を受信してもよく、ホスト・ボリューム及びそれぞれのゲスト・ボリュームに関して、以前に仮想ディスクのミニフィルター４２２によって保存された、対応する依存データを削除してもよい（ステップ６１０）。
【００３１】
[0038]依存するネストされたボリューム又はゲスト・ボリュームが存在したホスト・ボリュームが、残された任意の依存するネストされたボリューム又はゲスト・ボリュームを有するか否かに関して決定がなされてもよい（ステップ７０２；図７）。依存するゲスト・ボリュームが残っているホスト・ボリュームがない場合、仮想ディスクのミニフィルター４２２は、フィルター・スタック４２０及びホスト・ファイル・システム４２４から切断されてもよく（ステップ７０６）、仮想ディスクのミニフィルター４２２はアンロードされてもよい（ステップ７０８）。
【００３２】
[0039]図８は、システムのシャットダウンの一部としてシャットダウンされる記憶装置上でのホスト・ボリューム（４３２）に関する例示的な処理を示すフローチャートである。処理は、ホスト・ボリュームがシャットダウンされていることを知らされる仮想ディスクのミニフィルター４２２から開始してもよい（ステップ８０２）。例えば、ホスト・ボリュームについてのシャットダウン要求が受信されてもよい。ホスト・ボリューム４３２が依存する（ネストされた）ボリュームを有しているか否かに関して決定がなされてもよい（ステップ８０４）。依存するボリュームがない場合、処理は終了してもよい。
【００３３】
[0040]そうでなければ、シャットダウン要求は、登録取り消し要求へと、同期して翻訳されてもよい。これは、ネスト・レベルの順にゲスト・ファイル・システム４１０に対して取り外し要求を同期して送信する仮想ディスクのミニフィルター４２２によって遂行されてもよく（ステップ８０６）、ホスト・ボリューム４３２内にネストされた、依存するボリューム（ゲスト・ボリューム４００）についての登録取り消し要求を送信するシム・ドライバー４１６によって遂行されてもよい（ステップ８０８）。
【００３４】
[0041]仮想ディスクのミニフィルター４２２は、依存するボリューム（ゲスト・ボリューム４００）についての登録取り消し要求を受信し、それに関連付けられる依存データを削除してもよい（ステップ８１０）。その後、ホスト・ボリューム４３２が他の依存するゲスト（ネストされた）ボリュームを有しているか否かに関して決定がなされてもよい（ステップ８１２）。依存するゲスト・ボリュームが残っていない場合、処理は終了してもよい。そうでなければ、ステップ８０６−８１２は、次のゲスト・ボリュームに対して再び実行されてもよい。
【００３５】
[0042]図９は、処理装置から予想外に分離又は取り除かれている記憶装置に関して例示的な処理を示すフローチャートである。処理は、ホスト・ボリューム４３２がもはや利用可能ではないと知らされる仮想ディスクのミニフィルター４２２から開始してもよい（ステップ９０２）。その後、仮想ディスクのミニフィルター４２２は、シム・ドライバー４１６に、ホスト・ボリューム４３２がもはや利用可能ではないという指示を同期して送信してもよい（ステップ９０４）。いくつかの実施例において、ホスト・ボリューム４３２がもはや利用可能ではないという指示は、ホスト・ボリュームに依存するゲスト・ボリュームのリストを含んでもよい。
【００３６】
[0043]シム・ドライバー４１６は、ホスト・ボリューム４３２に依存する、各々のネストされたボリューム、又はゲスト・ボリュームについての登録取り消し要求を送信してもよい（ステップ９０６）。仮想ディスクのミニフィルター４２２は、登録取り消し要求のそれぞれの１つを受信してもよく、それに関連付けられる依存データを削除する前にゲスト・ボリューム上のネストされたファイル・システムを取り外してもよい（ステップ９０８）。依存するゲスト・ボリュームが残っていない場合、その後、仮想ディスクのミニフィルター４２２は、ホスト・ファイル・システム４２４及びファイル・システム・フィルター・スタック４２０から切断されてもよく（ステップ９１２）、仮想ディスクのミニフィルター４２２はアンロードされてもよい（ステップ９１４）。
【００３７】
[0044]図１０は、例えば、ボリュームとディスクとの関係などの、装置の関係についての質問の処理に関して例示的な処理を示すフローチャートである。処理は、ボリュームとディスクとの関係についての質問を受信するホスト・ボリューム４３２から開始してもよ
い（ステップ１００２）。質問に対する応答は、ストレージ・フィルター・ドライバー４２６、ホスト・ファイル・システム４２４及びファイル・システム・フィルター・スタック４２０を通過させられた後に、仮想ディスクのミニフィルター４２２によって受信されてもよい（ステップ９０４）。その後、仮想ディスクのミニフィルター４２２は、保存された依存情報に基づいて、依存するボリュームのリストを応答に付加してもよい（ステップ１００６）。このように、正しいゲスト・ボリュームが依存するボリュームとして報告されてもよい。
【００３８】
[0045]上述の実施例は、ディスク上に存在するボリューム、及びネストされたゲスト・ボリュームを有するボリュームに言及している。本開示の主題と一致する他の実施例において、ボリュームは、フラッシュＲＡＭ装置、ＣＤＲＯＭ、ＤＶＤ又は任意の種類のブロック記憶装置上に存在してもよい。
結論
[0046]主題は構造的特徴及び／又は方法論のステップに特有の言葉で記載されてきたが、添付の特許請求の範囲における主題が上述の特定の特徴又はステップに必ずしも限定されないことが理解されるべきである。より正確に言えば、上述の特定の特徴及びステップは、特許請求の範囲の実施のための例示的な形式として開示されるものである。
【００３９】
[0047]上記の記載は具体的な詳細を含み得るが、それらは特許請求の範囲を如何なるようにも限定するものとして解釈するべきではない。記載された実施例の他の構成は本開示の範囲の一部である。さらに、本開示の主題と一致する実施例は、図５−１０に関して記載されたものより多い又は少ないステップを有していてもよく、示された順序とは異なる順にステップを実施してもよい。したがって、添付の特許請求の範囲及びその法的な均等物は、所与の任意の特定の例ではなく、本発明を規定するものである。
【図１】
2012504281.tif 000003
【図２】
2012504281.tif 000004
【図３】
2012504281.tif 000005
【図４】
2012504281.tif 000006
【図５】
2012504281.tif 000007
【図６】
2012504281.tif 000008
【図７】
2012504281.tif 000009
【図８】
2012504281.tif 000010
【図９】
2012504281.tif 000011
【図１０】
2012504281.tif 000012
【国際調査報告】
2012504281.tif 000013
2012504281.tif 000014