File virtualization ですけど下記のようなしくみになっているようです。
- 対象への書き込みを行う命令を発行
- Access token と ACL を照合し、権限がない場合には "REPARSE" を返す
- "%LOCALAPPDATA%\VirtualStore" 配下に書き込む
通常、1 ~ 3 の内容は API が勝手にやってくれるため programmer は意識する必要ありません。
対象への書き込み権限がある場合には、File virtualization が適用されません。ただし、Windows Vista では UAC が default 有効になっているため、昇格していなければ Restricted Tokens で動作している点に注意してください。
# 詳細は「UAC によって制限される access token」を参照。
[追記]
Virtualization を行うか否かは access tokens に格納された TokenVirtualizationEnabled で判断が行われます。
<参考> TOKEN_INFORMATION_CLASS Enumeration