_beginthreadex возвращает дескриптор потока:
m_hStreamStatsThread = (HANDLE) _beginthreadex( NULL, 0, StreamStatsThread, this, 0, NULL );
Этот дескриптор можно использовать, если вам нужно сослаться на поток в таких вызовах, как, например, TerminateThread(..).
Согласно странице MSDN на _beginthreadex, _beginthreadex не будет всегда возвращайте действительный дескриптор - например он также может возвращать -1L при ошибке и т. д.
Когда поток завершился нормально, должен ли я вызывать CloseHandle для дескриптора потока, или я могу просто установить его значение в NULL/INVALID_HANDLE_VALUE?