Platform SDK: Debugging and Error Handling

GetThreadSelectorEntry

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

BOOL GetThreadSelectorEntry(
  HANDLE hThread,              // handle to thread
  DWORD dwSelector,            // number of selector value
  LPLDT_ENTRY lpSelectorEntry  // descriptor table entry
);

Parameters

hThread
[in] Handle to the thread containing the specified selector.

Windows NT/ 2000: The handle must have THREAD_QUERY_INFORMATION access. For more information, see Thread Security and Access Rights.

dwSelector
[in] Specifies the global or local selector value to look up in the thread's descriptor tables.
lpSelectorEntry
[out] 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.

Requirements

  Windows NT/2000: Requires Windows NT 3.1 or later.
  Windows 95/98: Requires Windows 95 or later.
  Header: Declared in Winbase.h; include Windows.h.
  Library: Use Kernel32.lib.

See Also

Debugging Overview, Debugging Functions, LDT_ENTRY, ReadProcessMemory, WriteProcessMemory