diff options
author | vboxsync <vboxsync@cfe28804-0f27-0410-a406-dd0f0b0b656f> | 2013-06-17 14:32:51 +0000 |
---|---|---|
committer | vboxsync <vboxsync@cfe28804-0f27-0410-a406-dd0f0b0b656f> | 2013-06-17 14:32:51 +0000 |
commit | 58ca7e64df9cde8c2b64c25f6fb453659b587405 (patch) | |
tree | 7e7ef6ea88bab519ecb18045f47b97d855a81744 /src/VBox/Additions/common/VBoxService/VBoxServiceVMInfo-win.cpp | |
parent | 1617a37c12bca78a5546c3909ba2629761d73054 (diff) | |
download | VirtualBox-svn-58ca7e64df9cde8c2b64c25f6fb453659b587405.tar.gz |
updates
git-svn-id: https://www.virtualbox.org/svn/vbox/trunk@46593 cfe28804-0f27-0410-a406-dd0f0b0b656f
Diffstat (limited to 'src/VBox/Additions/common/VBoxService/VBoxServiceVMInfo-win.cpp')
-rw-r--r-- | src/VBox/Additions/common/VBoxService/VBoxServiceVMInfo-win.cpp | 25 |
1 files changed, 12 insertions, 13 deletions
diff --git a/src/VBox/Additions/common/VBoxService/VBoxServiceVMInfo-win.cpp b/src/VBox/Additions/common/VBoxService/VBoxServiceVMInfo-win.cpp index 21e56c6a36d..8867154110f 100644 --- a/src/VBox/Additions/common/VBoxService/VBoxServiceVMInfo-win.cpp +++ b/src/VBox/Additions/common/VBoxService/VBoxServiceVMInfo-win.cpp @@ -168,20 +168,19 @@ static int VBoxServiceVMInfoWinProcessesGetModuleName(PVBOXSERVICEVMINFOPROC con { /* Loading the module and getting the symbol for each and every process is expensive * -- since this function (at the moment) only is used for debugging purposes it's okay. */ - RTLDRMOD hMod; - rc = RTLdrLoad("kernel32.dll", &hMod); - if (RT_SUCCESS(rc)) + PFNQUERYFULLPROCESSIMAGENAME pfnQueryFullProcessImageName; + pfnQueryFullProcessImageName = (PFNQUERYFULLPROCESSIMAGENAME) + RTLdrGetSystemSymbol("kernel32.dll", "QueryFullProcessImageNameA"); + /** @todo r=bird: WTF don't we query the UNICODE name? */ + if (pfnQueryFullProcessImageName) { - PFNQUERYFULLPROCESSIMAGENAME pfnQueryFullProcessImageName; - rc = RTLdrGetSymbol(hMod, "QueryFullProcessImageNameA", (void **)&pfnQueryFullProcessImageName); - if (RT_SUCCESS(rc)) - { - DWORD dwLen = cbName / sizeof(TCHAR); - if (!pfnQueryFullProcessImageName(h, 0 /*PROCESS_NAME_NATIVE*/, pszName, &dwLen)) - rc = VERR_ACCESS_DENIED; - } - - RTLdrClose(hMod); + /** @todo r=bird: Completely bogus use of TCHAR. + * !!ALL USE OF TCHAR IS HEREWITH BANNED IN ALL VBOX SOURCES!! + * We use WCHAR when talking to windows, everything else is WRONG. (We don't + * want Chinese MBCS being treated as UTF-8.) */ + DWORD dwLen = cbName / sizeof(TCHAR); + if (!pfnQueryFullProcessImageName(h, 0 /*PROCESS_NAME_NATIVE*/, pszName, &dwLen)) + rc = VERR_ACCESS_DENIED; } } else |