00001 00007 #pragma once 00008 #include <bzscmn/datetime.h> 00009 #include <bzscmn/string.h> 00010 #include <vector> 00011 #include <set> 00012 #include "../rpcdispatch/status.h" 00013 #include "../kdclient/patchapi.h" 00014 00016 enum PatchState 00017 { 00018 PatchPending, 00019 PatchInProgress, 00020 PatchInProgress2, 00021 PatchSuccessful, 00022 PatchFailed, 00023 PatchProcessTerminated, 00024 00025 UnpatchInProgress, 00026 Unpatched, 00027 00028 ProtocolMismatch, 00029 }; 00030 00032 class PatchedProcess 00033 { 00034 public: 00035 BazisLib::DateTime StartTime; 00036 BazisLib::DateTime StopTime; 00037 unsigned PID; 00038 PatchState State; 00039 PatchState PreviousState; 00040 bool StillRunning; 00041 BazisLib::String PipeName; 00042 00043 BazisLib::DateTime PreviousCPUTime; 00044 BazisLib::DateTime PreviousSampleTime; 00045 unsigned CpuUsage; 00046 unsigned AvgCpuUsage; 00047 00048 HANDLE hRemoteThread; 00049 00050 DWORD idDebuggerProcess; 00051 00052 BazisLib::String Log; 00053 HANDLE hLogPipe; 00054 bool LogChanged; 00055 00056 HANDLE hMapping; 00057 KdClientStatus *pStatus; 00058 00059 unsigned PrevSent; 00060 unsigned PrevRecvd; 00061 00062 unsigned SendRate; 00063 unsigned RecvRate; 00064 00065 unsigned MaxSendRate; 00066 unsigned MaxRecvRate; 00067 00068 unsigned PrevPacketsSent; 00069 unsigned PrevPacketsRecvd; 00070 00071 unsigned PacketSendRate; 00072 unsigned PacketRecvRate; 00073 00074 bool SessionNameRetreived; 00075 VMType vmType; 00076 00077 PatchedProcess() 00078 : PID(0) 00079 , StillRunning(false) 00080 , CpuUsage(-1) 00081 , AvgCpuUsage(0) 00082 , hRemoteThread(INVALID_HANDLE_VALUE) 00083 , idDebuggerProcess(0) 00084 , hLogPipe(INVALID_HANDLE_VALUE) 00085 , LogChanged(false) 00086 , hMapping(INVALID_HANDLE_VALUE) 00087 , pStatus(NULL) 00088 , PrevSent(0) 00089 , PrevRecvd(0) 00090 , SendRate(0) 00091 , RecvRate(0) 00092 , MaxSendRate(0) 00093 , MaxRecvRate(0) 00094 , PrevPacketsSent(0) 00095 , PrevPacketsRecvd(0) 00096 , PacketSendRate(0) 00097 , PacketRecvRate(0) 00098 , SessionNameRetreived(false) 00099 , vmType(kVMUnknown) 00100 { 00101 } 00102 }; 00103 00104 typedef std::vector<PatchedProcess> PatchedProcessList; 00105 typedef std::set<unsigned> PatchedProcessSet;