Función RtlInstallFunctionTableCallback (winnt.h)

Agrega una tabla de funciones dinámicas a la lista de tablas de funciones dinámicas.

Sintaxis

NTSYSAPI BOOLEAN RtlInstallFunctionTableCallback(
  [in] DWORD64                        TableIdentifier,
  [in] DWORD64                        BaseAddress,
  [in] DWORD                          Length,
  [in] PGET_RUNTIME_FUNCTION_CALLBACK Callback,
  [in] PVOID                          Context,
  [in] PCWSTR                         OutOfProcessCallbackDll
);

Parámetros

[in] TableIdentifier

Identificador de la devolución de llamada de la tabla de funciones dinámicas. Se deben establecer los dos bits de orden bajo. Por ejemplo, BaseAddress|0x3.

[in] BaseAddress

Dirección base de la región de memoria administrada por la función de devolución de llamada.

[in] Length

Tamaño de la región de memoria administrada por la función de devolución de llamada, en bytes.

[in] Callback

Puntero a la función de devolución de llamada a la que se llama para recuperar las entradas de la tabla de funciones de las funciones de la región de memoria especificada. Para obtener una definición del tipo de PGET_RUNTIME_FUNCTION_CALLBACK , consulte WinNT.h.

[in] Context

Puntero a los datos definidos por el usuario que se van a pasar a la función de devolución de llamada.

[in] OutOfProcessCallbackDll

Puntero opcional a una cadena que especifica la ruta de acceso de un archivo DLL que proporciona entradas de tabla de funciones que están fuera del proceso.

Cuando un depurador se desenreda en una función del intervalo de direcciones administradas por la función de devolución de llamada, carga este archivo DLL y llama a la función OUT_OF_PROCESS_FUNCTION_TABLE_CALLBACK_EXPORT_NAME , cuyo tipo es POUT_OF_PROCESS_FUNCTION_TABLE_CALLBACK. Para obtener más información, vea las definiciones de estos elementos en WinNT.h.

Valor devuelto

Si la función se ejecuta correctamente, el valor devuelto es TRUE. Si se produce un error en la función, el valor devuelto es FALSE.

Comentarios

Las tablas de funciones se usan en Windows de 64 bits para determinar cómo desenredar o recorrer la pila. Normalmente, el compilador genera estas tablas y se almacenan como parte de la imagen. Sin embargo, las aplicaciones deben proporcionar la tabla de funciones para el código generado dinámicamente. Para obtener más información sobre las tablas de funciones, consulte la guía de arquitectura del sistema.

Esta función es útil para código muy dinámico. La aplicación especifica el intervalo de memoria para el código generado, pero no es necesario generar una tabla hasta que se necesite mediante una solicitud de desenredado. En ese momento, el sistema llama a la función de devolución de llamada con el contexto y la dirección de control. La función de devolución de llamada debe devolver la entrada de la función en tiempo de ejecución para la dirección especificada. Asegúrese de evitar crear un interbloqueo entre la función de devolución de llamada y el generador de código.

Para el código que se genera a partir de una plantilla o que se genera solo una vez durante la duración del proceso, use la función RtlAddFunctionTable .

Requisitos

Requisito Value
Plataforma de destino Windows
Encabezado winnt.h (incluya Windows.h)
Library Kernel32.lib
Archivo DLL Kernel32.dll

Vea también

RtlAddFunctionTable

RtlDeleteFunctionTable