Я был не прав на счёт памяти под TEB; Если не текущий поток прибивается посредством ZwTerminateThread, память под стек и TEB не освобождается; Если текужий поток завершает управление посредством ZwTerminateThread, то в зависимости от TEB.FreeStackOnTermination память TEB и потока освобождается (TEB.FreeStackOnTermination=TRUE), либо нет(TEB.FreeStackOnTermination=FALSE).
SSS CloseHandle закрывает псевдоописатель, получаемый GetCurrentThread(). Реальный описатель можно получить с помощью GetCurrentThreadId(). Так что это Вы не читаете мануал.
GetCurrentThread() возвращает псевдоописатель. Закрывать его смысла нет. Не описатель а Id, вещи разные. Описатель можно получить ф-ей Create(Open)Thread
asd и GetCurrentThread() SysProger Ты при всем своем желании его не закроешь, потому что его нет на самом деле.
Great Твоё решение изящно, но всё равно все дескрипторы не уничтожаются. Это видно в task manager'e. Я пробовал даже все их в массив загнать, а после выполнения всех потоков уничтожить(CloseHandle). Но эффект тот же.