64bit環境で32bitアプリを動かした場合、WOW64のリダイレクト機能が働き、意図したところにファイルが読み書きできなくます。System32フォルダにアクセスしたつもりでも、実際はSysWOW64フォルダを参照してしまいます。それを無効化するサンプルです。
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 = 0Wow64DisableWow64FsRedirection OldValueexist "C:\\Windows\\System32\\kernel32.dll"mes "kernel32.dll size:"+strsize// 処理が終わったらすぐに戻すWow64RevertWow64FsRedirection OldValueexist "C:\\Windows\\System32\\kernel32.dll"mes "kernel32.dll size:"+strsize