Ответ: да, но.
API, который вы хотите, фактически находится в ядре NT и называется NtSetLdtEntries. Там нет заголовка для этого. Там нет никакой документации для этого. Заглушки находятся в ntdll.lib, который не является частью SDK. Вы должны сделать то, что я сделал, и перемещаться по сайтам обратного инжиниринга и вручную связывать вещи, пока я не смогу заставить это работать.
Там хуже. Вы не можете использовать GS, поскольку Windows использует его внутри; всякий раз, когда вы делаете системный вызов, он произвольно устанавливает его в 0 (и я думаю может также случайно установить его в 0 при прерываниях). Если вы попытаетесь отладить программу с помощью GS, Windows установит ее на 0 в точках останова!
ES и FS в порядке. Я думаю.
Вот недокументированный файл, который я написал, который использует все это. Если вы смелы, вы можете извлечь из нее достаточно информации, чтобы сделать что-то полезное. Удачи ...
http://lbw.git.sourceforge.net/git/gitweb.cgi?p=lbw/lbw;a=blob;f=src/syscalls/thread.cc;hb=a3b44871bd89009e644894431cbc6534fe033369