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 = 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