Aufgrund der Thematik Fehler #0 beim Aufruf Update.cmd bin ich auf eine weitere ungünstige Implementation im UpdateInstaller aufmerksam geworden, die die Deaktivierung der WOW64 Redirection betrifft. Der derzeitige Aufruf führt zu keinem Fehler und funktioniert auch. Aber _WinAPI_GetLastError() nach dem DllCall() liefert Fehler 998 zurück:
- Code: Select all
ERROR_NOACCESS
998 (0x3E6)
Invalid access to memory location.
Lange Rede, kurzer Sinn: Ich hab mal in meinem AutoIt-Code gekramt, um zu schauen, wie ich das gelöst habe, und bin fündig geworden:
- Code: Select all
local $Redirect, $pRedirect
$Redirect = DllStructCreate("uint")
if @error then Exit
$pRedirect = DllStructGetPtr($Redirect, 1)
DllCall("kernel32.dll", "bool", "Wow64DisableWow64FsRedirection", "ptr", $pRedirect)
; Do something
DllCall("kernel32.dll", "bool", "Wow64RevertWow64FsRedirection", "uint", DllStructGetData($Redirect, 1))
;--- release the memory for the variable
$Redirect = 0
Grüße
Dalai