C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[4]: FindFirstUrlCacheEntry@VISTA


(過去ログ 42 を表示中)

[トピック内 8 記事 (1 - 8 表示)]  << 0 >>

■22257 / inTopicNo.1)  FindFirstUrlCacheEntry@VISTA
  
□投稿者/ kuboon (1回)-(2008/07/17(Thu) 16:30:34)
kuboon さんの Web サイト

分類:[Windows 全般] 

Windowsにお詳しい方がたくさんいらっしゃるようなので質問させていただきます。

FindFirstUrlCacheEntryというAPIがありまして、
http://msdn.microsoft.com/en-us/library/aa384026(VS.85).aspx
これを用いてローカルマシン上に溜まっているIEキャッシュを列挙することができるのですが、
XP + IE6の環境では快適に動いているコードが、VISTA+IE7の環境では動作しないようなのです。
挙動を追ってみると、APIの呼び出し自体は正常に動いているにもかかわらず、エントリが列挙されない模様です。

ネット上で同様の現象の報告もみつけましたが、解決方法や、MSからの公式な情報は発見できておりません。
http://forums.microsoft.com/MSDN-JA/ShowPost.aspx?PostID=943367&SiteID=7

なにか本件についてご存知の方がいらっしゃいましたら、ご教示いただければ幸いです。

A. バグだよ!パッチが出てるよ!
B. 仕様だよ!APIが変わったよ!
C. 権限昇格とか必要だよ!

などなど。。。

引用返信 編集キー/
■22273 / inTopicNo.2)  Re[1]: FindFirstUrlCacheEntry@VISTA
□投稿者/ ちゃっぴ (140回)-(2008/07/17(Thu) 18:44:00)
ちゃっぴ さんの Web サイト
No22257 (kuboon さん) に返信
なんか、これ問題あったような。
Return value check せず、GetLastError() の結果拾うと常に 0 以外とか。

ちなみに KB にこんなのありまっせ

FIX: Error message when you enumerate the cache in Windows Internet Explorer 7: "ERROR_INVALID_PARAMETER"
http://support.microsoft.com/kb/929726/ja
引用返信 編集キー/
■22299 / inTopicNo.3)  Re[2]: FindFirstUrlCacheEntry@VISTA
□投稿者/ ちゃっぴ (141回)-(2008/07/18(Fri) 00:11:54)
ちゃっぴ さんの Web サイト
あ、Vista ですね。

Vista の default では IE が protected mode で動作しているため、low integrity level で動作していますね。
cache も通常の mideum integrity level と low integrity level が一緒だと脆弱性になるので当然別れています。

なので、cache が見つかりません。
回避するには、cache を列挙する部分だけ low integrity level で動作する必要がありますね。
SetTokenInformation を利用して low integrity level な access token 作成しましょう。

Designing Applications to Run at a Low Integrity Level
http://msdn.microsoft.com/en-us/library/bb625960.aspx
引用返信 編集キー/
■22318 / inTopicNo.4)  Re[3]: FindFirstUrlCacheEntry@VISTA
□投稿者/ ちゃっぴ (144回)-(2008/07/18(Fri) 10:02:08)
ちゃっぴ さんの Web サイト
ちなみに SP1 当たってます?
SP1 環境下では low IL にしなくても取れるようです。
引用返信 編集キー/
■22322 / inTopicNo.5)  Re[3]: FindFirstUrlCacheEntry@VISTA
□投稿者/ シャノン (549回)-(2008/07/18(Fri) 11:25:24)
No22299 (ちゃっぴ さん) に返信
> あ、Vista ですね。
>
> Vista の default では IE が protected mode で動作しているため、low integrity level で動作していますね。
> cache も通常の mideum integrity level と low integrity level が一緒だと脆弱性になるので当然別れています。
>
> なので、cache が見つかりません。

へー。
Integrity Level が原因だろうとは思ってたけど、高い方から低い方は見えるんだと思ってました。
見えないんですね。
引用返信 編集キー/
■22352 / inTopicNo.6)  Re[3]: FindFirstUrlCacheEntry@VISTA
□投稿者/ kuboon (2回)-(2008/07/18(Fri) 17:15:54)
kuboon さんの Web サイト
No22299 (ちゃっぴ さん) に返信

> Designing Applications to Run at a Low Integrity Level
> http://msdn.microsoft.com/en-us/library/bb625960.aspx

情報ありがとうございました。
プロセス全体をLow Integrityに入れなきゃいけないようですね。
該当箇所だけ切り分けるか。。。

いまVISTAのSP1をインストール中です。
こちらも試してみます!

ところで、さらに調査したところ、XP+IE7の環境でも同様の結果になりました。
これも、権限の問題なのでしょうか。。

上記リンク先のページは Windows Vista Integrity Mechanism と書いてあるのでVISTA固有の記事と見受けられますが、API自体はXPからでも呼べそうですね。

引用返信 編集キー/
■22374 / inTopicNo.7)  Re[4]: FindFirstUrlCacheEntry@VISTA
□投稿者/ kuboon (3回)-(2008/07/22(Tue) 13:12:16)
kuboon さんの Web サイト
No22318 (ちゃっぴ さん) に返信
> ちなみに SP1 当たってます?
> SP1 環境下では low IL にしなくても取れるようです。

こちら、MSのサイト内等に情報ありますでしょうか。
SP1当てたのですが、どうもうまくいかず。
加えて何か処理をしなければならないのでしょうかねえ?

引用返信 編集キー/
■22575 / inTopicNo.8)  Re[4]: FindFirstUrlCacheEntry@VISTA
□投稿者/ ちゃっぴ (147回)-(2008/07/26(Sat) 00:30:07)
ちゃっぴ さんの Web サイト
とりあえず、手元の Windows Vista Enterprise SP1 の media から install した端末では、Internet cache を保存する場所が IL 毎にわかれていないんですよね。

Windows Vista RTM から SP1 に update した場合にはおそらく IL 毎にわかれているとかそういうことありません?

引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -