MCPcopy Create free account
hub / github.com/HoShiMin/Kernel-Bridge / OpenThread

Function OpenThread

Kernel-Bridge/API/ProcessesUtils.cpp:63–87  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

61
62 _IRQL_requires_max_(PASSIVE_LEVEL)
63 NTSTATUS OpenThread(
64 HANDLE ThreadId,
65 OUT PHANDLE hThread,
66 ACCESS_MASK AccessMask,
67 ULONG Attributes
68 ) {
69 CLIENT_ID ClientId;
70 ClientId.UniqueProcess = 0;
71 ClientId.UniqueThread = ThreadId;
72
73 OBJECT_ATTRIBUTES ObjectAttributes;
74 InitializeObjectAttributes(&ObjectAttributes, NULL, Attributes, NULL, NULL);
75
76 using _ZwOpenThread = NTSTATUS(NTAPI*)(
77 OUT PHANDLE hThread,
78 IN ACCESS_MASK AccessMask,
79 IN POBJECT_ATTRIBUTES ObjectAttributes,
80 IN PCLIENT_ID ClientId
81 );
82
83 auto ZwOpenThread = static_cast<_ZwOpenThread>(Importer::GetKernelProcAddress(L"ZwOpenThread"));
84 if (!ZwOpenThread) return STATUS_NOT_IMPLEMENTED;
85
86 return ZwOpenThread(hThread, AccessMask, &ObjectAttributes, &ClientId);
87 }
88
89 _IRQL_requires_max_(PASSIVE_LEVEL)
90 NTSTATUS OpenThreadByPointer(

Callers 1

KbOpenThreadFunction · 0.85

Calls 1

GetKernelProcAddressFunction · 0.70

Tested by

no test coverage detected