summaryrefslogtreecommitdiff
path: root/src/VBox/Additions/common/VBoxService/VBoxServiceVMInfo-win.cpp
diff options
context:
space:
mode:
authorvboxsync <vboxsync@cfe28804-0f27-0410-a406-dd0f0b0b656f>2013-06-17 14:32:51 +0000
committervboxsync <vboxsync@cfe28804-0f27-0410-a406-dd0f0b0b656f>2013-06-17 14:32:51 +0000
commit58ca7e64df9cde8c2b64c25f6fb453659b587405 (patch)
tree7e7ef6ea88bab519ecb18045f47b97d855a81744 /src/VBox/Additions/common/VBoxService/VBoxServiceVMInfo-win.cpp
parent1617a37c12bca78a5546c3909ba2629761d73054 (diff)
downloadVirtualBox-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.cpp25
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