微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Wow64DisableWow64FsRedirection 在 EXE 中工作,在 DLL 构建中失败

如何解决Wow64DisableWow64FsRedirection 在 EXE 中工作,在 DLL 构建中失败

我有一个 DLL 构建,用于检查 Internet 信息服务是否已安装、运行并有条件地从 applicationHost.config 文件中读取数据路径。我检查了 IIS 的安装路径,看看是否需要禁用 Syswow64 文件重定向,因为我所有的 dll 版本都是 win32。这对我来说总是失败。我使用了 GetLastError,它说函数调用返回 0。我将函数复制到一个小 exe 中,它运行得很好,将我需要的信息发送到屏幕上。 DLL 和 EXE 之间有显着区别吗?这是在 dll 中不起作用的东西吗?我的印象是他们非常相似。功能

BOOL isIISRunning() //simple check to see if inetmgr is a process 
{
    bool isrunning = FALSE;
    PROCESSENTRY32 entry;
    entry.dwSize = sizeof(PROCESSENTRY32);

    HANDLE iis = Createtoolhelp32Snapshot(TH32CS_SNAPPROCESS,NULL);
    if (Process32First(iis,&entry) == TRUE)
    {
        while (Process32Next(iis,&entry) == TRUE)
        {
            if (_tcsicmp(entry.szExeFile,_T("inetmgr.exe")) == 0)
            {
                isrunning = TRUE;
                break;
            }
        }
    }
    CloseHandle(iis);
    return isrunning;

}

当我创建一个控制台应用程序 exe 并调用函数时,它会返回有关在多台计算机上运行与否的 IIS 的正确信息。当我在我的 DLL 构建中调用这个函数时,它每次都返回 false。谁能解释一下我做错了什么?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。