MCPcopy Create free account
hub / github.com/SpecialKO/SpecialK / SK_MMCS_GetTaskForThreadIDEx

Function SK_MMCS_GetTaskForThreadIDEx

src/thread.cpp:1152–1200  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1150}
1151
1152SK_MMCS_TaskEntry*
1153SK_MMCS_GetTaskForThreadIDEx ( DWORD dwTid, const char* name,
1154 const char* task1,
1155 const char* task2 )
1156{
1157 auto& task_map =
1158 SK_MMCS_GetTaskMap ();
1159
1160 SK_MMCS_TaskEntry* task_me =
1161 nullptr;
1162
1163 if (task_map.count (dwTid))
1164 task_me = task_map.at (dwTid);
1165 else
1166 {
1167 SK_MMCS_TaskEntry* new_entry =
1168 new SK_MMCS_TaskEntry {
1169 dwTid, 0, INVALID_HANDLE_VALUE, 0, AVRT_PRIORITY_NORMAL, "", "", ""
1170 };
1171
1172 strncpy_s ( new_entry->name, 63,
1173 name, _TRUNCATE );
1174
1175 strncpy_s ( new_entry->task0, 63,
1176 task1, _TRUNCATE );
1177 strncpy_s ( new_entry->task1, 63,
1178 task2, _TRUNCATE );
1179
1180 new_entry->hTask =
1181 SK_AvSetMmMaxThreadCharacteristicsA ( task1, task2,
1182 &new_entry->dwTaskIdx );
1183
1184 SK_TLS* pTLS =
1185 SK_TLS_Bottom ();
1186
1187 if (pTLS != nullptr)
1188 {
1189 pTLS->scheduler->mmcs_task =
1190 new_entry;
1191 }
1192
1193 task_map [dwTid] = new_entry;
1194 task_me =
1195 task_map [dwTid];
1196 }
1197
1198 return
1199 task_me;
1200}
1201
1202SK_MMCS_TaskEntry*
1203SK_MMCS_GetTaskForThreadID (DWORD dwTid, const char* name)

Callers 8

SK_MMCS_EndBufferSwapFunction · 0.85
SK_MMCS_BeginBufferSwapFunction · 0.85
postJobMethod · 0.85
NtReadFile_DetourFunction · 0.85
runMethod · 0.85
thread.hFile · 0.85

Calls 4

SK_TLS_BottomFunction · 0.85
atMethod · 0.80
countMethod · 0.45

Tested by

no test coverage detected