В знаменитой книге Похтера по api в конце главы 6 есть один примерчик
"Преобразование псевдоописателя в настоящий описатель" вот содержание:
<<Иногда бывает нужно выяснить настоящий, а не псевдоописатель потока. Под "настоящим" я подразумеваю описатель, который однозначно идентифицирует уникальный поток. Вдумайтесь в такой фрагмент кода:
DWORD WINAPI ParentThread(PVOID pvParam)
{
HANDLE hThreadParent = GetCurrentThread();
CreateThread(NULL, 0, ChildThread, (PVOID) hThreadParent, 0, NULL);
// далее следует какой-то код
}
DWORD WINAPI ChildThread(PVOID pvParam)
{
HANDLE hThreadParent = (HANDLE) pvParam;
FILETIME ftCreationTime, ftExitTime, ftKernelTime, ftUserTime;
GetThreadTimes(hThreadParent, &ftCreationTime, &ftExitTime, &ftKernelTime, &ftUserTime);
// далее следует какой-ro код.
}
Вы заметили, что здесь не все ладно. Идея была в том, чтобы родительский поток передавал дочернему свой описатель. Но он передает псевдо-, а не настоящий описатель. Начиная выполнение, дочерний поток передает этот псевдоописатель функции GetThreadTimes, и она вследствие этого возвращает временные показатели своего — а вовсе не родительского потока. Происходит так потому, что псевдоописатель является описателем текущего потока, т.e. того, который вызывает эту функцию.>>
Пожалуйста объясните чем отличается так сказать псевдоописатель от настоящего описателя, ведь если грубо говоря описател потока шестнадцатеричная число 0x78453214 то GetCurrentThread() возвращает именно этот адресс (число и хендл как хотите) в чем проблема ?