MCPcopy Create free account
hub / github.com/NoMercy-ac/NoMercy / OpenThread

Function OpenThread

Source/Client/NM_Sys/API/ProcessesUtils.cpp:44–60  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

42
43 _IRQL_requires_max_(PASSIVE_LEVEL)
44 NTSTATUS OpenThread(HANDLE ThreadId, OUT PHANDLE hThread, ACCESS_MASK AccessMask, ULONG Attributes)
45 {
46 CLIENT_ID ClientId;
47 ClientId.UniqueProcess = 0;
48 ClientId.UniqueThread = ThreadId;
49
50 OBJECT_ATTRIBUTES ObjectAttributes;
51 InitializeObjectAttributes(&ObjectAttributes, NULL, Attributes, NULL, NULL);
52
53 using _ZwOpenThread = NTSTATUS(NTAPI*)(OUT PHANDLE hThread, IN ACCESS_MASK AccessMask, IN POBJECT_ATTRIBUTES ObjectAttributes, IN PCLIENT_ID ClientId);
54
55 auto ZwOpenThread = static_cast<_ZwOpenThread>(Importer::GetKernelProcAddress(L"ZwOpenThread"));
56 if (!ZwOpenThread)
57 return STATUS_NOT_IMPLEMENTED;
58
59 return ZwOpenThread(hThread, AccessMask, &ObjectAttributes, &ClientId);
60 }
61
62 _IRQL_requires_max_(PASSIVE_LEVEL)
63 NTSTATUS OpenThreadByPointer(PETHREAD Thread, OUT PHANDLE hThread, ACCESS_MASK AccessMask, ULONG Attributes, KPROCESSOR_MODE ProcessorMode)

Callers 2

ShowWSChangesFunction · 0.85
KbOpenThreadFunction · 0.85

Calls 1

GetKernelProcAddressFunction · 0.85

Tested by

no test coverage detected