- test_SymFromName(proc(), szDllName);
- test_SymFromAddr(proc(), szDllName);
- test_SymEnumSymbols(proc(), szDllName);
+ if (init_sym(FALSE))
+ {
+ SetLastError(ERROR_SUCCESS);
+ BaseAddress = SymLoadModule64(proc(), NULL, szDllName, NULL, 0x600000, 0);
+ dwErr = GetLastError();
+
+ ok_ulonglong(BaseAddress, 0x600000);
+ ok_hex(dwErr, ERROR_SUCCESS);
+
+ if (BaseAddress == 0x600000)
+ {
+ trace("Module loaded by SymLoadModule64\n");
+ test_SymFromName(proc(), BaseAddress);
+ test_SymFromAddr(proc(), BaseAddress);
+ test_SymEnumSymbols(proc(), BaseAddress);
+ }
+
+ deinit_sym();
+ }
+
+#ifdef _M_IX86
+ hMod = LoadLibraryA(szDllName);
+ if (hMod)
+ {
+ BaseAddress = (DWORD64)(DWORD_PTR)hMod;
+ /* Invade process */
+ if (init_sym(TRUE))
+ {
+ trace("Module loaded by LoadLibraryA\n");
+ test_SymFromName(proc(), BaseAddress);
+ test_SymFromAddr(proc(), BaseAddress);
+ test_SymEnumSymbols(proc(), BaseAddress);