Historically hardware vendors have implement their owm properietary versions ot threads.these implementation differed substantially from each other making it difficult for programmers to develop portable threaded applications.
In order to take full advantantage of the capabilities provided by threads,a standardised programming interface was required.
The key components of the ETHREAD include a pointer to the process to which the thread belongs and the address of the routine in which the thread starts control. the ETHREAD also contains a pointer to the corresponding KTHREAD.
The KTHREAD includes scheduling and synchronization information for the thread. in addition, the KTHREAD includes the kernel stack and the pointer to the TEB.
The ETHREAD and the KTHREAD exist entirely in kernel space; this means only the kernel can access them. the TEB is a user-space structure that is accessed when the thread is running in usermode.among other fields, the TEB contains a user mode and an array for thread-specific data.