G>Пожалуйста объясните чем отличается так сказать псевдоописатель от настоящего описателя, ведь если грубо говоря описател потока шестнадцатеричная число 0x78453214 то GetCurrentThread() возвращает именно этот адресс (число и хендл как хотите) в чем проблема ?
В Windows есть 2-а зарезервированных значения (константы) описателя ([i]"псевдоописателя"[i]):
( (HANDLE)(LONG_PTR) -1 ) — описатель текущего процесса. Его возвращает GetCurrentProcess(). Когда ядро ОС видит это значение (в каком-то системном вызове), то оно его всегда преобразует в объект текущего (вызывающего) процесса
( (HANDLE)(LONG_PTR) -2 ) — описатель текущей нити. Его возвращает GetCurrentThread(). Когда ядро ОС видит это значение (в каком-то системном вызове), то оно его всегда преобразует в объект текущей (вызывающей) нити
А в приведенном коде значение 0xfffffffe ( ==
(HANDLE)(LONG_PTR)-2 ) было передано в дочернюю нить (а не 0x78453214), которая по этому зарезервированному значению получила объект себя же в вызове
GetThreadTimes().