位于以下位置的windows服务器注册表中的"WOW64“值是做什么的:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services我附上了一张截图。

下面是我的问题:我创建了一个服务
<myserviceexe> /install就像在截图里一样。服务可执行文件编译为32位,运行良好。
之后,我手动创建了第二个服务
sc create myservice binpath=C:\myservice.exe start=auto第二个服务也被编译成32位(但与第一个完全不同的服务),并在使用第二个命令创建时运行良好。但是,在创建第二个服务时,注册表中没有WOW64条目。如果我手动添加这个条目(只是出于对测试的好奇),服务抛出一个非常、非常、非常奇怪的错误"ERROR_MORE_DATA 234:有更多的数据“(不管这意味着什么) (https://learn.microsoft.com/de-de/windows/win32/debug/system-error-codes--0-499-)
有人能解释一下WOW64条目在做什么吗?我在网上发现绝对没有任何信息。我知道WOW64通常的意思:二进制是32位二进制,在32位环境中运行。但是这与服务有什么关系,为什么我的第二个服务在注册表中创建WOW64条目时不运行,尽管它是一个32位二进制文件?
发布于 2022-11-10 07:59:58
我查看了在从ms-sysinternals启动第二个带有进程监视器的服务时发生了什么,并注意到当程序加载WOW64 regkey时出现了缓冲区溢出,这是我手动创建的。然后我注意到我在注册表xD中创建了一个QWORD,而不是一个DWORD。
当使用DWORD (您应该这样做)时,第二个服务也运行良好。
https://stackoverflow.com/questions/74377667
复制相似问题