Source code of Windows XP (NT5)
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
//+-------------------------------------------------------------------------
//
// Microsoft Windows
//
// Copyright (C) Microsoft Corporation, 1999 - 2000
//
// File: processes.h
//
//--------------------------------------------------------------------------
// Processes.h: interface for the CProcesses class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_PROCESSES_H__3CE003F7_9F5D_11D2_83A4_000000000000__INCLUDED_)
#define AFX_PROCESSES_H__3CE003F7_9F5D_11D2_83A4_000000000000__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#ifndef NO_STRICT
#ifndef STRICT
#define STRICT 1
#endif
#endif /* NO_STRICT */
#include <WINDOWS.H>
#include <TCHAR.H>
#include "globals.h"
//#include "ProgramOptions.h"
// Forward Declarations
//class CProgramOptions;
class CProcessInfo; class CProcessInfoNode; class CFileData; class CModuleInfoCache;
class CProcesses { public: CProcesses(); virtual ~CProcesses();
bool Initialize(CModuleInfoCache * lpModuleInfoCache, CFileData * lpInputFile, CFileData * lpOutputFile);
// bool OutputProcessesData(LPCTSTR tszOutputContext, bool fDumpHeader = true);
bool OutputProcessesData(CollectionTypes enumCollectionType, bool fCSVFileContext, bool fDumpHeader = true); bool GetProcessesData(); // Public functions for exporting functions in dynamically loaded DLLs...
enum ProcessCollectionMethod { NO_METHOD, TOOLHELP32_METHOD, PSAPI_METHOD }; ProcessCollectionMethod GetProcessCollectionMethod();
inline long GetNumberOfProcesses() { return m_iNumberOfProcesses; };
protected: bool GetProcessesDataFromFile(); bool GetProcessesDataForRunningProcessesUsingTOOLHELP32(); bool GetProcessesDataForRunningProcessesUsingPSAPI(); bool OutputProcessesDataToStdout(CollectionTypes enumCollectionType, bool fCSVFileContext, bool fDumpHeader = true); bool OutputProcessesDataToFile(CollectionTypes enumCollectionType, bool fDumpHeader = true);
CFileData * m_lpOutputFile; CFileData * m_lpInputFile; CModuleInfoCache * m_lpModuleInfoCache; // CProgramOptions * m_lpProgramOptions;
CProcessInfoNode * m_lpProcessInfoHead;
HANDLE m_ProcessInfoHeadMutex;
long m_iNumberOfProcesses; bool m_fInitialized; // We need to ensure initialization since a mutex is involved...
// Protected Methods
bool AddNewProcessInfoObject(CProcessInfo * lpProcessInfo); bool SetPrivilege(HANDLE hToken, LPCTSTR Privilege, bool bEnablePrivilege);
ProcessCollectionMethod m_enumProcessCollectionMethod; };
#endif // !defined(AFX_PROCESSES_H__3CE003F7_9F5D_11D2_83A4_000000000000__INCLUDED_)
|