Función PsGetCurrentThreadTeb (ntddk.h)

La rutina PsGetCurrentThreadTeb devuelve el bloque de entorno de subproceso (TEB) del subproceso actual o NULL. La llamada debe realizarse en modo kernel.

Sintaxis

PVOID PsGetCurrentThreadTeb();

Valor devuelto

Puntero al bloque de entorno de subproceso del subproceso actual. Se debe acceder al TEB dentro de un bloque de excepción try/catch.

PsGetCurrentThreadTeb devuelve NULL en los casos siguientes:

  • El subproceso actual no tiene un TEB (por ejemplo, un subproceso del sistema).
  • El subproceso actual no puede acceder de forma segura a su propio TEB. Esto puede ocurrir si el controlador adjuntó el subproceso al espacio de direcciones de otro proceso, por ejemplo llamando a KeStackAttachProcess.

Comentarios

Aunque se puede llamar a PsGetCurrentThreadTeb en cualquier IRQL sin provocar una comprobación de errores, el TEB no es seguro acceder a DISPATCH_LEVEL o superior (se podría paginar). Además, si va a llamar a IRQL con privilegios elevados desde el contexto de una interrupción o DPC, el subproceso actual es lo que haya ocurrido para ejecutarse en el procesador actual cuando se entregó la interrupción allí. Como resultado, se recomienda llamar a PsGetCurrentThreadTeb desde el contexto del subproceso siguiente DISPATCH_LEVEL.

Requisitos

Requisito Value
Cliente mínimo compatible Disponible en Windows 7 y versiones posteriores de Windows.
Plataforma de destino Universal
Encabezado ntddk.h
Library NtosKrnl.lib
Archivo DLL NtosKrnl.exe
IRQL Cualquier nivel (vea comentarios)

Consulte también

Rutinas del Administrador de procesos y subprocesos