您的位置:首页 > 其它

Windows驱动获得当前进程全路径的方法

2012-02-20 14:59 357 查看
方法:

通过ZwQueryInformationProcess函数查询ImageFileName

支持的系统:XP以上操作系统

具体方法如下:

BOOL GetProcessPathNameByHandle(HANDLE ProcessHandle,char * path)

{

DWORD ret;

ULONG lRet;

PUNICODE_STRING path_u;

WCHAR TempBuffer[1024];

ANSI_STRING name_a;

path_u = (PUNICODE_STRING)TempBuffer;

if(NULL != gSfDynamicFunctions.ZwQueryInformationProcess)

{

ret = gSfDynamicFunctions.ZwQueryInformationProcess(ProcessHandle, ProcessImageFileName,

path_u, sizeof(TempBuffer), &lRet);

}

else

{

return FALSE;

}

if (STATUS_SUCCESS == RtlUnicodeStringToAnsiString (&name_a, path_u, TRUE))

{

KdPrint (("Current GetProcessPathNameByHandle: %s\r\n",name_a.Buffer)) ;

strcpy(path,name_a.Buffer);

RtlFreeAnsiString(&name_a);

return TRUE;

}

return FALSE;

}

函数调用:

GetProcessPathNameByHandle(NtCurrentProcess(), spath);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: