windows10環境・C++11でx64用のwindows用ゲームを作成しております。

やりたいことは global new/deleteをオーバーロードして各スレッドごとに使用するメモリプールを変更したいのです。

そこで、メモリプール内部で存在しなくなったスレッドを管理から外す機能を作りたいのですが、実現できず困っております。

一応、
{
DWORD dwExCode;
HANDLE hProc = OpenProcess( PROCESS_ALL_ACCESS, FALSE, ID->threadID );
GetExitCodeThread( hProc, &dwExCode );
BOOL bExist = dwExCode == STILL_ACTIVE ? true : false;
CloseHandle( hProc );
if( dwExCode == STILL_ACTIVE )
{
// 生存時の処理
}else{
// 生存していない時の処理
}
}
といったコードを試してみたのですが、
OpenProcess() で帰ってくる値が INVALID_HANDLE_VALUE になり、生存確認が取れません。
そもそも GetCurrentThread() から帰ってくる値が INVALID_HANDLE_VALUE になっております。
※しかし、GetCurrentThreadId() は不思議なことに機能しております。


この辺の情報がググってもあまり出てこず途方にくれております。

誰かご教授お願い致します。