GetThreadSelectorEntry

The GetThreadSelectorEntry function retrieves a descriptor table entry for the specified selector and thread.

BOOL GetThreadSelectorEntry(
  HANDLE hThread,    // handle to thread that contains selector
  DWORD dwSelector,  // number of selector value to look up
  LPLDT_ENTRY lpSelectorEntry 
                     // address of selector entry structure
);
 

Parameters

hThread
Handle to the thread containing the specified selector.

Windows NT: The handle must have THREAD_QUERY_INFORMATION access.

dwSelector
Specifies the global or local selector value to look up in the thread's descriptor tables.
lpSelectorEntry
Pointer to an LDT_ENTRY structure that receives a copy of the descriptor table entry if the specified selector has an entry in the specified thread's descriptor table. This information can be used to convert a segment-relative address to a linear virtual address.

Return Values

If the function succeeds, the return value is nonzero. In that case, the structure pointed to by the lpSelectorEntry parameter receives a copy of the specified descriptor table entry.

If the function fails, the return value is zero. To get extended error information, call GetLastError.

Remarks

GetThreadSelectorEntry is only functional on x86-based systems. For systems that are not x86-based, the function returns FALSE.

Debuggers use this function to convert segment-relative addresses to linear virtual addresses. The ReadProcessMemory and WriteProcessMemory functions use linear virtual addresses.

QuickInfo

  Windows NT: Requires version 3.1 or later.
  Windows: Requires Windows 95 or later.
  Windows CE: Unsupported.
  Header: Declared in winbase.h.
  Import Library: Use kernel32.lib.

See Also

Debugging Overview, Debugging Functions, LDT_ENTRY, ReadProcessMemory, WriteProcessMemory