void CDriverManager::InitializeDriver() { m_strDriverPath = GetSystemDir(); m_strDriverPath += L"\\HideSys.sys"; ExtractSysFile(); }
STI8Version& CSystemInfo::GetI8Version() { stdex::tString strPath; strPath = GetRootDir(); tstrcpy(m_stI8Version.szCltSvrVer, MAX_PATH, GetFileVersion(strPath + TEXT("\\i8deskclisvr.exe")).c_str()); tstrcpy(m_stI8Version.szCltUIVer, MAX_PATH, GetFileVersion(strPath + TEXT("\\Baronline.exe")).c_str()); #ifdef _DEBUG tstrcpy(m_stI8Version.szCltDataVer, MAX_PATH, GetFileVersion(strPath + TEXT("\\I8ClientDataCoreD.dll")).c_str()); #else tstrcpy(m_stI8Version.szCltDataVer, MAX_PATH, GetFileVersion(strPath + TEXT("\\I8ClientDataCore.dll")).c_str()); #endif strPath = GetSystemDir(); tstrcpy(m_stI8Version.szProtVer, MAX_PATH, GetFileVersion(strPath + TEXT("\\drivers\\wxProt.sys")).c_str()); tstrcpy(m_stI8Version.szVirtualDiskVer, MAX_PATH, GetFileVersion(strPath + TEXT("\\drivers\\wxNda.sys")).c_str()); return m_stI8Version; }
DWORD APIENTRY VerFindFileW( DWORD wFlags, LPWSTR lpszFileName, LPWSTR lpszWinDir, LPWSTR lpszAppDir, LPWSTR lpszCurDir, PUINT puCurDirLen, LPWSTR lpszDestDir, PUINT puDestDirLen ) { static WORD wSharedDirLen = 0; static WCHAR gszSharedDir[_MAX_PATH]; WCHAR szSysDir[_MAX_PATH], cTemp; WCHAR szWinDir[_MAX_PATH]; WCHAR szCurDir[_MAX_PATH]; LPWSTR lpszDir, lpszDirs[4]; WORD wDestLen, wWinLen, wRetVal = 0, wTemp; int nRet; /* We want to really look in the Windows directory; we don't trust the app */ GetWindowsDir(lpszWinDir ? lpszWinDir : "", szWinDir, _MAX_PATH); lpszWinDir = szWinDir; if (!GetSystemDir(lpszWinDir, szSysDir, _MAX_PATH)) wcscpy(szSysDir, lpszWinDir); if (wFlags & VFFF_ISSHAREDFILE) { lpszDirs[0] = lpszWinDir; lpszDirs[1] = szSysDir; lpszDirs[2] = lpszAppDir; } else { lpszDirs[0] = lpszAppDir; lpszDirs[1] = lpszWinDir; lpszDirs[2] = szSysDir; } lpszDirs[3] = NULL; if (!(wTemp=GetDirOfFile(lpszFileName, szCurDir, _MAX_PATH, lpszDirs))) *szCurDir = 0; if (*puCurDirLen > wTemp) wcscpy(lpszCurDir, szCurDir); else wRetVal |= VFF_BUFFTOOSMALL; *puCurDirLen = wTemp + 1; if (lpszDestDir) { if (wFlags & VFFF_ISSHAREDFILE) { if (!wSharedDirLen) { if ((wWinLen = (WORD)wcslen(lpszWinDir)) && *(lpszWinDir-1)==TEXT('\\')) { if (szSysDir[wWinLen-1] == TEXT('\\')) goto doCompare; } else if (szSysDir[wWinLen] == TEXT('\\')) { doCompare: cTemp = szSysDir[wWinLen]; szSysDir[wWinLen] = 0; nRet = _wcsicmp(lpszWinDir, szSysDir); szSysDir[wWinLen] = cTemp; if(nRet) goto doCopyWinDir; wcscpy(gszSharedDir, szSysDir); } else { doCopyWinDir: wcscpy(gszSharedDir, lpszWinDir); } wSharedDirLen = (WORD)wcslen(gszSharedDir); } wDestLen = wSharedDirLen; lpszDir = gszSharedDir; } else { wDestLen = (WORD)wcslen(lpszAppDir); lpszDir = lpszAppDir; } if (*puDestDirLen > wDestLen) { wcscpy(lpszDestDir, lpszDir); if ((wWinLen = (WORD)wcslen(lpszDestDir)) && *(lpszDestDir-1)==TEXT('\\')) lpszDestDir[wWinLen-1] = 0; if (_wcsicmp(lpszCurDir, lpszDestDir)) wRetVal |= VFF_CURNEDEST; } else wRetVal |= VFF_BUFFTOOSMALL; *puDestDirLen = wDestLen + 1; } if (*szCurDir) { MakeFileName(szSysDir, szCurDir, lpszFileName, ARRAYSIZE(szSysDir)); if (FileInUse(szSysDir, lpszFileName)) wRetVal |= VFF_FILEINUSE; } return(wRetVal); }