1、sdologinentry.dll与sdologinentry64.dll动态库关于执行静默更新的解释
函数入口:int WINAPI igwInitialize(DWORD dwSdkVersion, const AppInfo* pAppInfo)
int WINAPI igwInitialize(DWORD dwSdkVersion, const AppInfo* pAppInfo)
{
TRACET();
TCHAR path[32768*2] = {0};
DWORD len = GetEnvironmentVariable(_T("PATH"), path, _countof(path));
TCHAR buffer[MAX_PATH] = {0};
GetModuleFileName(g_hModule, buffer, _countof(buffer));
_stprintf(path+len, _T(";%s\\..\\sdologin\\"), buffer);
SetEnvironmentVariable(_T("PATH"), path);
AppInfo* pInfo = (AppInfo*)pAppInfo;
// Skip update process or not
wchar_t buffer2[MAX_PATH] = {0};
wchar_t path2[MAX_PATH*2] = {0};
GetModuleFileNameW(g_hModule, buffer2, _countof(buffer2));
swprintf_s(path2, _countof(path2), L"%s\\..\\sdologin\\", buffer2);
LicenseManager::Initial(path2);
bool bExpired = LicenseManager::GetInstance()->GetValue<bool>("Expiration");
bool bSkipUpdate = LicenseManager::GetInstance()->GetValue<bool>("SkipUpdate");
if (!(bExpired == false && bSkipUpdate == true)) // !(未过期 && 跳过更新)
{
if (Update::GetInstance()->CheckLocalVersion())
{
TRACEI(_T("igwInitialize DownloadUpdate"));
if(!Update::GetInstance()->DownloadUpdate(pInfo->nAppID, pInfo->nAreaId, pInfo->nGroupId))
{
return SDOA_FALSE;
}
}
else
{
TRACEI(_T("igwInitialize ForceUpdate"));
if (!Update::GetInstance()->ForceUpdate(pInfo->nAppID, pInfo->nAreaId, pInfo->nGroupId))
{
return SDOA_FALSE;
}
}
}
GetModuleFileName(g_hModule, buffer, _countof(buffer));
#ifdef _WIN64
sprintf(buffer + strlen(buffer) - strlen("sdologinentry64.dll"), "sdologin\\sdologinsdk64.dll");
#else
sprintf(buffer + strlen(buffer) - strlen("sdologinentry.dll"), "sdologin\\sdologinsdk.dll");
#endif
g_hSdoLogin = LoadLibraryEx(buffer, NULL, LOAD_WITH_ALTERED_SEARCH_PATH);
//g_hSdoLogin = LoadLibrary(_T("sdologinsdk.dll"));
LPigwInitialize pFun = (LPigwInitialize)GetProcAddress(g_hSdoLogin, "igwInitialize");
if(pFun)
{
return pFun(dwSdkVersion, pAppInfo);
}
return SDOA_FALSE;
}
-
这段代码是一个 Windows DLL 的入口函数
igwInitialize
,用于初始化一个SDK,并且在初始化过程中进行了一些额外的操作。让我们逐步解释它:-
这段代码是一个 Windows DLL 的入口函数
-