2009年05月19日

FBWFノウハウ集

さて、今日の Windows XP Embedded / Windows Embedded Standard の話題は、FBWF(File-Based Write Filter)に関するノウハウです。

FBWFに関する情報は下記が一番かと思います。
●Windows Embedded Developer Center


それと下記も外せないサイトっすね。
●Windows XP Embedded開発入門 第2回
速報! Feature Pack 2007の新機能
奥村 正明(Microsoft MVP - Windows Embedded)
監修:杉本 拓也(Microsoft MVP - Windows Embedded)
株式会社富士通ソフトウェアテクノロジーズ 2007/1/10


しかし、XP Embeddedの話題でEWFはそれこそ情報が沢山ありますが、FBWFに関してはあまり情報がないようです。

なぜでしょうか?

FBWFの導入がFP2007(Feature Pack 2007)からというのもあるし、それにEWFで間に合うってのが一番の理由でしょうかね?

EWFの導入目的がいわゆる電源強制断(電源ブチ切り)と考えると、ドライブ(パーティション)単位で保護できれば充分ってのもあるんでしょうね(^^;

それにFBWFだと扱えるファイルに制約があります。
NTFSの全ての機能をサポートしているのはEWFですし、下記NTFSの機能はFBWFでは扱えないそうです。
・ファイルのロックとロック解除
・NTFS のファイル ID
・再解析ポイント
・クォータ
・ハード リンク
・便宜的ロック (oplock)
・ファイル暗号化
まぁ、どれも普通に使う分にはなくても不便はなさそうですが(^^;
しかし、いずれにしても、あえて使用するメリットを見出せないのかもしれません。

しかし、EWFよりFBWFのほうがメリットが大きい点があります。

1.メモリの消費量がEWFに比べて改善されている。

EWFではメディアへのライトアクセスが発生する都度、メモリが消費されます。
セクタ単位でマッピング管理されている(ように思われる)ので、セクタサイズの単位で減っていく感じですね。
しかし、FBWFではファイルレベルで管理されているので、私が使用した経験上からもメモリの使用効率が良いようです。
実際、私は24時間連続稼動の環境で電源強制断の目的であれば、EWFよりFBWFのほうが実は適しているのではないか?と考えたこともあります。

2.ファイル単位でライトスルーができる。

まぁ、これはFBWFなので出来て当然かもしれません。
ファイル単位で管理されているので、ファイル単位でフィルタできます。
特定のファイルのみ書き込みを有効にするってことが可能ですよね。

じゃぁ、デメリットは?
ですが、やはり大きなデメリットはHORM(Hibernate Once Resume Many)が使えないことでしょうか?
しかし、HORMを使わないという方であれば、FBWFのほうがいいかも…なんて思ったりもします。

さてEWFとFBWFの両方を導入できないか?
と思われた方…残念ながら一つのドライブ(ボリュームという言葉で表現されているようです)でEWFとFBWFを共存させることは出来ません。

まぁ異なるドライブ(ボリューム)であれば、EWFとFBWFの共存も可能なんですよね…。

実際、私は誤って同じドライブで共存させたことがありますが、EWFでcommitできなくなったり、EWFかFBWFかどちらか、または両方のフィルタ動作を無効にできなくなったりなど挙動がおかしくなった記憶があります。

ですが、実はEWFとFBWF、同時に共存はできませんが、同じボリュームに対して片方だけを有効にすることは可能です。

つまり、FBWFとEWFの両方のコンポーネントを組み込んでおき、1つのボリュームに対してFBWFとEWFを切替えて使うことができます。

ポイントですが、FBWFとEWFの両方の設定で必ず起動時はDisable(無効)にしておくことです。

起動直後からどちらかをEnableにせず、FBA(First Boot Agent)中はFBWFとEWFの双方の機能はDisableにしておき、FBAが完了したら、どちらか片方だけを手動でEnableにしてしまうのです。
たとえば、FBWFをEnableにしておけば、OS起動時はFBWFが有効状態になります。

これにより、単一のボリュームに対して、XP Embeddedの初期起動時はFBWFがEnableになっているが、EWFのコンポーネントも含まれているので、FBWFをDisableに変更し、その後EWFをEnableにしてしまえば、EWFも使うことが出来ます。

逆にEWF Disableにして、再度FBWFをEnableにすることもできます。

注意すべき点ですが、FBWFとEWFを同時にEnableにしてはいけません。
必ず順番に片方だけをEnableにする必要があります。

実際、私はXP Embeddedの初期起動時はFBWF Enableとし、EWFにも切替えて使うことが出来るOSイメージを構築したことがあります。
なお、EWFはRAMモードで確認しました。
動作は未検証ですが、EWF RAM(REG)モードでも原理的には可能だと思います。

ということで、FBWFにも少しは注目してもいいかなーなんて思ったりもする今日この頃です(^^;
posted by がっちゃん at 23:57| Comment(0) | TrackBack(0) | Windows Embedded | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。
この記事へのトラックバックURL
http://blog.seesaa.jp/tb/119835829

この記事へのトラックバック
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。