The vast majority of the TSD is used as the ring 0 stack when a thread makes a privilege level transition to ring 0 via a call gate descriptor. The base of the ring 0 stack will therefore include the ring 3 call gate stack frame on entry to ring 0 (which is usually kernel or device driver code).
In the debug kernel a dummy page prefixes the used part of the TSD in order to catch ring 0 stack faults.
Other information contained in the TSD includes GTD instance data for the corresponding thread's context. This comprises descriptors for:
28: The LDT descriptor.
30: Base selector for ring 0 process instance data, which includes the ring 0 stack, TCBs and PTDA.
38: Floating point emulator instance data
40: FS mapping to the TIB
When an an inter-process thread context switches, descriptors 30 - 40 are loaded into the GDT from the TSD. When an intra-process thread context switches, descriptors 28 - 40 are loaded into the GDT from the TSD.
Refer to the following for related information