捐助郴维网
感谢您对郴维网的支持,你的支持将是郴维网持续发展的动力!
二维码
×
当前位置:郴维网 >API档案 > 正文
2 2017.06

IsWow64Process

点击次数:1415 更新时间:2017-6-2 20:16:04  【打印此页

原文链接 -> 传送门

函数功能:

IsWow64Process 函数用于判断指定的进程是否运行在 WOW64(Windows-on-Windows 64-bit,64 位 Windows 操作系统 32 位程序模拟环境)下。


API 函数原型:

注释:_In_ 说明该参数是输入的,_Out_ 说明该参数是输出的

BOOL WINAPI IsWow64Process(
  _In_  HANDLE hProcess,
  _Out_ PBOOL  Wow64Process
);


参数解析:

参数

含义

hProcess

1. 指定进程的句柄

2. 该句柄必须有 PROCESS_QUERY_INFORMATION 或 PROCESS_QUERY_LIMITED_INFORMATION 访问权限。更多有关信息,请参见 Process Security and Access Rights

3. Windows Server 2003 和 Windows XP:该句柄必须有 PROCESS_QUERY_INFORMATION 访问权限

Wow64Process

1. 指向一个 BOOL 类型变量指针:如果进程运行在 WOW64 下,则设置变量为 TRUE;如果进程运行在 32 位 Windows 操作系统下,则该值设置为 FALSE

2. 如果该进程是 64 位的应用程序运行在 64 位 Windows 操作系统,则该值也设置为 FALSE



返回值:

1. 如果函数调用成功,返回值是非 0;

2. 如果函数调用失败,返回值是 0。

若想获得更多的错误信息,请调用 GetLastError 函数。


备注:

定义 _WIN32_WINNT 为 x0501 或更高版本,以编译使用这个函数的应用程序。更多有关信息,请参见 Using the Windows Headers


例子:

调用 GetProcAddress 函数检测 IsWow64Process 是否在 Kernel32.dll 中实现,获取不支持该函数的操作系统兼容性。如果 GetProcAddress 成功,那么调用这个函数是安全的。否则,WOW64 不存在。注意,这种技术并不是一个可靠的检测操作系统是否为 64 位版本 Windows 方式,因为在当前版本 32 位 Windows 操作系统 Kernel32.dll 中也包含这个函数。

#include <windows.h>
#include <tchar.h>

typedef BOOL (WINAPI *LPFN_ISWOW64PROCESS) (HANDLE, PBOOL);

LPFN_ISWOW64PROCESS fnIsWow64Process;

BOOL IsWow64()
{
    BOOL bIsWow64 = FALSE;

    // 在所有 Windows 支持的版本中没有 IsWow64Process 函数
    // 调用 GetModuleHandle 函数获取包含该函数的 DLL 句柄,
    // 并且调用 GetProcAddress 函数获取得到的函数指针

    fnIsWow64Process = (LPFN_ISWOW64PROCESS) GetProcAddress(
        GetModuleHandle(TEXT("kernel32")),"IsWow64Process");

    if(NULL != fnIsWow64Process)
    {
        if (!fnIsWow64Process(GetCurrentProcess(),&bIsWow64))
        {
            // 句柄错误
        }
    }
    return bIsWow64;
}

int main( void )
{
    if(IsWow64())
        _tprintf(TEXT("The process is running under WOW64.\n"));
    else
        _tprintf(TEXT("The process is not running under WOW64.\n"));

    return 0;
}

需求:

Minimum supported client

Windows 2000 专业版 [仅桌面应用程序]

Minimum supported server

Windows 2000 服务器版 [仅桌面应用程序]

Header

Winuser.h (包含于 Windows.h)

Library

User32.lib

DLL

User32.dll


 

提示
郴维网为您提供各类专业服务:
软件开发,电脑配件销售,WIFI路由器销售,上门电脑维修,上门安装系统,系统安装,软、硬件安装,电脑除尘清灰,显示器维修,WIFI安装调试,服务器维护,数据恢复,密码破解,网络布线,网络检修,打印机维修,打印机加碳粉,苹果电脑安装系统,苹果电脑安装双系统,监控安装维护,电脑外包,笔记本电脑维修,餐饮、美容行业软件安装 等。。。。。。
点击次数:1415 更新时间:2017-6-2 20:16:04  【打印此页

上一条:MAKELONG 宏

下一条:GetAncestor

关键词推荐:郴州电脑城 郴州电脑维修公司 维修电脑公司 郴州软件开发 上门电脑维修 上门安装系统 笔记本电脑维修 郴州打印机维修 打印机加碳粉 电脑安装双系统 苹果电脑双系统 液晶显示器维修 联想笔记本维修 联想笔记本维修电话 戴尔笔记本维修电话 郴州戴尔笔记本维修 戴尔笔记本郴州维修点 华硕笔记本维修点 郴州华硕笔记本维修 郴州笔记本上网维修