00001 00007 #pragma once 00008 00009 enum VMType 00010 { 00011 kVMUnknown = 0, 00012 kVMWare32, 00013 kVMWare64, 00014 kVBox32, 00015 kVBox64, 00016 }; 00017 00018 extern "C" 00019 { 00021 00026 __declspec(dllexport) HANDLE CreateVMSessionList(); 00027 00029 __declspec(dllexport) void CloseVMSessionList(HANDLE hList); 00030 00032 00037 __declspec(dllexport) unsigned GetNextVMSessionPID(HANDLE hList); 00038 00039 __declspec(dllexport) unsigned GetNextVMSessionPIDEx(HANDLE hList, VMType *pVMType); 00040 00042 __declspec(dllexport) unsigned GetVMSessionNameW(unsigned PID, wchar_t *pName, size_t MaxNameLength); 00043 00045 __declspec(dllexport) bool IsVMSessionPatched(unsigned PID); 00046 00048 __declspec(dllexport) bool PatchVMSessionIfNeeded(unsigned PID); 00049 00051 __declspec(dllexport) bool UnpatchVMSessionIfNeeded(unsigned PID); 00052 00053 typedef HANDLE HTHREAD; 00054 00056 __declspec(dllexport) HTHREAD StartVMSessionPatching(unsigned PID); 00057 00059 __declspec(dllexport) HTHREAD StartVMSessionUnpatching(unsigned PID); 00060 00062 __declspec(dllexport) int FindVMSessionByNameW(const wchar_t *pName); 00063 00065 __declspec(dllexport) unsigned GetVMPipeNameW(unsigned PID, wchar_t *pName, size_t MaxNameLength, bool TryReconstructingIfNotAvailable); 00066 };