in PPLGuard/utils.cpp [138:172]
VOID PrintDebug(LPCWSTR pwszFormat, ...)
{
if (g_bDebug)
{
LPWSTR pwszDebugString = NULL;
DWORD dwDebugStringLen = 0;
va_list va;
size_t st_Offset = 0;
WCHAR wszUsername[UNLEN + 1] = { 0 };
DWORD dwUsernameLen = UNLEN;
GetUserName(wszUsername, &dwUsernameLen);
va_start(va, pwszFormat);
dwDebugStringLen += _scwprintf(L"[DEBUG][%ws] ", wszUsername) * sizeof(WCHAR);
dwDebugStringLen += _vscwprintf(pwszFormat, va) * sizeof(WCHAR) + 2;
pwszDebugString = (LPWSTR)LocalAlloc(LPTR, dwDebugStringLen);
if (pwszDebugString)
{
StringCbPrintf(pwszDebugString, dwDebugStringLen, L"[DEBUG][%ws] ", wszUsername);
if (SUCCEEDED(StringCbLength(pwszDebugString, dwDebugStringLen, &st_Offset)))
{
StringCbVPrintf(&pwszDebugString[st_Offset / sizeof(WCHAR)], dwDebugStringLen - st_Offset, pwszFormat, va);
wprintf(L"%ws", pwszDebugString);
}
LocalFree(pwszDebugString);
}
va_end(va);
}
}