Поделиться через


Функция PsGetCurrentThreadTeb (ntddk.h)

Подпрограмма PsGetCurrentThreadTeb возвращает блок среды потока (TEB) текущего потока или NULL. Вызов должен выполняться в режиме ядра.

Синтаксис

PVOID PsGetCurrentThreadTeb();

Возвращаемое значение

Указатель на блок среды потока текущего потока. Доступ к TEB должен осуществляться в блоке исключений try/catch.

PsGetCurrentThreadTeb возвращает значение NULL в следующих случаях:

  • Текущий поток не имеет TEB (например, системный поток).
  • Текущий поток не может безопасно получить доступ к собственному TEB. Это может произойти, если драйвер подключил поток к адресному пространству другого процесса, например путем вызова KeStackAttachProcess.

Замечания

Хотя PsGetCurrentThreadTeb можно вызывать в любой IRQL без возникновения ошибки, TEB не является безопасным для доступа к DISPATCH_LEVEL или более поздней версии (его можно вывести на страницу). Кроме того, если вы вызываете IRQL с повышенными привилегиями из контекста прерывания или DPC, текущий поток будет выполняться на текущем процессоре при доставке прерывания. В результате рекомендуется вызывать PsGetCurrentThreadTeb из контекста потока ниже DISPATCH_LEVEL.

Требования

Требование Ценность
минимальные поддерживаемые клиентские Доступно в Windows 7 и более поздних версиях Windows.
целевая платформа Всеобщий
заголовка ntddk.h
библиотеки NtosKrnl.lib
DLL NtosKrnl.exe
IRQL Любой уровень (см. примечания)

См. также

процедуры и подпрограммы Диспетчера потоков