Compartir a través de


EXPAND_STACK_CALLOUT función de devolución de llamada (ntddk.h)

La rutina ExpandedStackCall se ejecuta con un tamaño de pila garantizado.

Sintaxis

EXPAND_STACK_CALLOUT ExpandStackCallout;

VOID() ExpandStackCallout(
  [in, optional] PVOID Parameter
)
{...}

Parámetros

[in, optional] Parameter

Valor pasado a la rutina KeExpandKernelStackAndCallout que ejecutó ExpandedStackCall.

Valor devuelto

None

Observaciones

La rutina ExpandedStackCall debe controlar todas las excepciones. Cualquier excepción no controlada hace que el sistema compruebe el error con la comprobación de errores 0x1E: KMODE_EXCEPTION_NOT_HANDLED.

Si ExpandedStackCall cambia el IRQL actual, debe restaurar el valor original antes de devolverlo.

Ejemplos

Para definir una rutina de devolución de llamada ExpandedStackCall , primero debe proporcionar una declaración de función que identifique el tipo de rutina de devolución de llamada que está definiendo. Windows proporciona un conjunto de tipos de función de devolución de llamada para controladores. Declarar una función mediante los tipos de función de devolución de llamada ayuda a Análisis de código para controladores, Comprobador de controladores estáticos (SDV) y otras herramientas de comprobación encuentran errores y es un requisito para escribir controladores para el sistema operativo Windows.

Por ejemplo, para definir una rutina de devolución de llamada ExpandedStackCall denominada MyExpandedStackCall, use el tipo EXPAND_STACK_CALLOUT como se muestra en este ejemplo de código:

EXPAND_STACK_CALLOUT MyExpandedStackCall;

A continuación, implemente la rutina de devolución de llamada de la siguiente manera:

_Use_decl_annotations_
VOID
  MyExpandedStackCall(
    PVOID  Parameter
    )
  {
      // Function body
  }

El tipo de función EXPAND_STACK_CALLOUT se define en el archivo de encabezado Wdm.h. Para identificar con más precisión los errores al ejecutar las herramientas de análisis de código, asegúrese de agregar la anotación a la _Use_decl_annotations_ definición de la función. La _Use_decl_annotations_ anotación garantiza que se usen las anotaciones que se aplican al tipo de función EXPAND_STACK_CALLOUT en el archivo de encabezado. Para obtener más información sobre los requisitos de las declaraciones de función, vea Declarar funciones mediante tipos de rol de función para controladores WDM. Para obtener información sobre _Use_decl_annotations_, vea Anotación del comportamiento de la función.

Requisitos

Requisito Value
Plataforma de destino Escritorio
Encabezado ntddk.h (include Ntddk.h, Ntifs.h)

Consulte también

KeExpandKernelStackAndCallout