Función PsGetCurrentThreadTeb (ntddk.h)
La rutina PsGetCurrentThreadTeb devuelve el bloque de entorno de subprocesos (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 tener acceso a 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.
Observaciones
Aunque psGetCurrentThreadTeb se puede llamar en cualquier IRQL sin causar una comprobación de errores, teB no es seguro acceder a DISPATCH_LEVEL o superior (se puede paginar). Además, si llama a IRQL con privilegios elevados desde el contexto de una interrupción o DPC, el subproceso actual es lo que se ha producido al ejecutarse en el procesador actual cuando se entregó la interrupción allí. Como resultado, se recomienda llamar a psGetCurrentThreadTeb desde el contexto del subproceso que aparece a continuación DISPATCH_LEVEL.
Requisitos
Requisito | Valor |
---|---|
cliente mínimo admitido | Disponible en Windows 7 y versiones posteriores de Windows. |
de la plataforma de destino de | Universal |
encabezado de | ntddk.h |
biblioteca de | NtosKrnl.lib |
DLL de | NtosKrnl.exe |
irQL | Cualquier nivel (vea comentarios) |