HSP 【HSP3】WOW64のファイル・レジストリのリダイレクトを一時無効にするサンプル

このエントリーをはてなブックマークに追加このエントリのはてなブックマーク数このエントリをLivedoor Clipに追加このエントリをYahoo!ブックマークに追加このエントリをFC2ブックマークに追加このエントリをNifty Clipに追加このエントリをつぶやく

64bit環境で32bitアプリを動かした場合、WOW64のリダイレクト機能が働き、意図したところにファイル・レジストリが読み書きできなくます。System32フォルダにアクセスしたつもりでも、実際はSysWOW64フォルダを参照してしまいます。それを無効化するサンプルです。

#uselib "kernel32"
#func Wow64DisableWow64FsRedirection "Wow64DisableWow64FsRedirection" var
#func Wow64RevertWow64FsRedirection "Wow64RevertWow64FsRedirection" var

	// わざと決め打ちしてしてます

	// 64bit環境では リダイレクトされ、
	// 実際は C:\Windows\SysWOW64\kernel32.dll が参照されている
	exist "C:\\Windows\\System32\\kernel32.dll"
	mes "kernel32.dll size:"+strsize

	// WOW64のリダイレクトを一時的に無効に
	OldValue = 0
	Wow64DisableWow64FsRedirection OldValue

	exist "C:\\Windows\\System32\\kernel32.dll"
	mes "kernel32.dll size:"+strsize
	// 処理が終わったらすぐに戻す
	Wow64RevertWow64FsRedirection OldValue

	exist "C:\\Windows\\System32\\kernel32.dll"
	mes "kernel32.dll size:"+strsize

Posted by at 2012/8/16 1:44

よく投稿されているコード

タグ

最近投稿されたコード