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

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
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX