Files
WinDurango/dlls/kernelx/ForzaThreadHook_X.h
2025-01-05 14:49:15 -03:00

41 lines
1.0 KiB
C

#pragma once
#include "pch.h"
struct CForzaThread
{
DWORD Id;
HANDLE Handle;
DWORD StackSize;
DWORD AffinityMask;
DWORD Priority;
char Name[128];
};
struct FmodThread
{
void* virtualtable;
char Name[256];
};
DWORD(*P_StartForzaThread_X)(CForzaThread*, LPTHREAD_START_ROUTINE, LPVOID);
DWORD(*P_FmodThreadProc_X)(FmodThread*);
DWORD D_StartForzaThread_X(CForzaThread* Thread, LPTHREAD_START_ROUTINE StartAddress, LPVOID Parameter)
{
WCHAR ThreadName[128];
ZeroMemory(ThreadName, sizeof(ThreadName));
DWORD r = P_StartForzaThread_X(Thread, StartAddress, Parameter);
MultiByteToWideChar(CP_UTF8, 0, Thread->Name, 128, ThreadName, 128);
SetThreadDescription(Thread->Handle, ThreadName);
return r;
}
DWORD D_FmodThreadProc_X(FmodThread* Thread)
{
WCHAR ThreadName[256];
MultiByteToWideChar(CP_UTF8, 0, Thread->Name, 256, ThreadName, 256);
SetThreadDescription(GetCurrentThread(), ThreadName);
return P_FmodThreadProc_X(Thread);
}