MCPcopy Create free account
hub / github.com/ThirteenAG/WidescreenFixesPack / ExecuteTLS

Function ExecuteTLS

source/MaxPayne.MSVCP60Wrapper/MemoryModule.c:325–346  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

323}
324
325static BOOL
326ExecuteTLS(PMEMORYMODULE module)
327{
328 unsigned char *codeBase = module->codeBase;
329 PIMAGE_TLS_DIRECTORY tls;
330 PIMAGE_TLS_CALLBACK* callback;
331
332 PIMAGE_DATA_DIRECTORY directory = GET_HEADER_DICTIONARY(module, IMAGE_DIRECTORY_ENTRY_TLS);
333 if (directory->VirtualAddress == 0) {
334 return TRUE;
335 }
336
337 tls = (PIMAGE_TLS_DIRECTORY) (codeBase + directory->VirtualAddress);
338 callback = (PIMAGE_TLS_CALLBACK *) tls->AddressOfCallBacks;
339 if (callback) {
340 while (*callback) {
341 (*callback)((LPVOID) codeBase, DLL_PROCESS_ATTACH, NULL);
342 callback++;
343 }
344 }
345 return TRUE;
346}
347
348static BOOL
349PerformBaseRelocation(PMEMORYMODULE module, ptrdiff_t delta)

Callers 1

MemoryLoadLibraryExFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected