|
|
//+-------------------------------------------------------------------------
//
// Microsoft Windows
//
// Copyright (C) Microsoft Corporation, 1996 - 1999
//
// File: wvtfile.cpp
//
// Contents: performance suite
//
// History: 04-Dec-1997 pberkman created
//
//--------------------------------------------------------------------------
#include "global.hxx"
DWORD WINAPI TestWVTFile(ThreadData *psData) { COleDateTime tStart; COleDateTime tEnd; DWORD i; char szFile[MAX_PATH];
HRESULT hr; BOOL fFind; HANDLE hFind; WIN32_FIND_DATA sFindData; WCHAR *pwszLastSlash; WCHAR wszDir[MAX_PATH]; WCHAR wszFile[MAX_PATH]; DWORD dwDirLen; WINTRUST_DATA sWTD; WINTRUST_FILE_INFO sWTFI;
hFind = INVALID_HANDLE_VALUE;
psData->dwTotalProcessed = 0;
printf("\n WVT_FILE");
if (pwszLastSlash = wcsrchr(pwszInFile, L'\\')) { *pwszLastSlash = NULL; wcscpy(&wszDir[0], pwszInFile); wcscat(&wszDir[0], L"\\"); *pwszLastSlash = L'\\'; dwDirLen = wcslen(&wszDir[0]); } else { wszDir[0] = NULL; dwDirLen = 0; }
memset(&sWTD, 0x00, sizeof(WINTRUST_DATA));
sWTD.cbStruct = sizeof(WINTRUST_DATA); sWTD.dwUIChoice = WTD_UI_NONE; sWTD.dwUnionChoice = WTD_CHOICE_FILE; sWTD.pFile = &sWTFI;
memset(&sWTFI, 0x00, sizeof(WINTRUST_FILE_INFO));
sWTFI.cbStruct = sizeof(WINTRUST_FILE_INFO);
tStart = COleDateTime::GetCurrentTime();
for (i = 0; i < cPasses; i++) { szFile[0] = NULL; WideCharToMultiByte(0, 0, pwszInFile, -1, &szFile[0], MAX_PATH, NULL, NULL);
if ((hFind = FindFirstFile(&szFile[0], &sFindData)) == INVALID_HANDLE_VALUE) { goto FileFindError; }
fFind = TRUE;
while (fFind) { if (!(sFindData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)) {
if (dwDirLen > 0) { wcscpy(&wszFile[0], &wszDir[0]); }
wszFile[dwDirLen] = NULL; MultiByteToWideChar(0, 0, &sFindData.cFileName[0], -1, &wszFile[dwDirLen], MAX_PATH * sizeof(WCHAR));
sWTFI.pcwszFilePath = &wszFile[0];
hr = WinVerifyTrust(NULL, &gAuthCode, &sWTD);
if (fVerbose) { printf("\n WVT return: 0x%08.8lX - %s", hr, &sFindData.cFileName[0]); }
psData->dwTotalProcessed++; } fFind = FindNextFile(hFind, &sFindData); }
if (hFind != INVALID_HANDLE_VALUE) { FindClose(hFind); } }
ErrorReturn: tEnd = COleDateTime::GetCurrentTime();
psData->tsTotal = tEnd - tStart;
return(0);
TRACE_ERROR_EX(DBG_SS_APP, FileFindError); }
|