MCPcopy Create free account
hub / github.com/BeneficialCode/WinArk / CreateObjectType

Method CreateObjectType

WinArk/ObjectTypeFactory.cpp:19–54  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

17#include "DeviceObjectType.h"
18
19std::unique_ptr<ObjectType> ObjectTypeFactory::CreateObjectType(int typeIndex, const CString& name) {
20 static WinSys::ProcessManager procMgr;
21
22 procMgr.EnumProcesses();
23 if (name == L"Mutant")
24 return std::make_unique<MutexObjectType>(typeIndex, name);
25 if (name == L"Process")
26 return std::make_unique<ProcessObjectType>(procMgr, typeIndex, name);
27 if (name == L"Thread")
28 return std::make_unique<ThreadObjectType>(procMgr, typeIndex, name);
29 if (name == L"Semaphore")
30 return std::make_unique<SemaphoreObjectType>(typeIndex, name);
31 if (name == L"Section")
32 return std::make_unique<SectionObjectType>(typeIndex, name);
33 if (name == L"Event")
34 return std::make_unique<EventObjectType>(typeIndex, name);
35 if (name == L"SymbolicLink")
36 return std::make_unique<SymbolicLinkObjectType>(typeIndex, name);
37 if (name == L"Key")
38 return std::make_unique<KeyObjectType>(typeIndex, name);
39 if (name == L"Job")
40 return std::make_unique<JobObjectType>(typeIndex, name);
41 if (name == L"Token")
42 return std::make_unique<TokenObjectType>(typeIndex, name);
43 if (name == L"File")
44 return std::make_unique<FileObjectType>(typeIndex, name);
45 if (name == L"Timer")
46 return std::make_unique<TimerObjectType>(typeIndex, name);
47 if (name == L"WindowStation")
48 return std::make_unique<WinStationObjectType>(typeIndex, name);
49 if (name == L"TpWorkerFactory")
50 return std::make_unique<WorkerFactoryObjectType>(procMgr, typeIndex, name);
51 if(name == L"Device")
52 return std::make_unique<DeviceObjectType>(typeIndex, name);
53 return nullptr;
54}

Callers

nothing calls this directly

Calls 1

EnumProcessesMethod · 0.45

Tested by

no test coverage detected