EXT_DELETE_CALLBACK función de devolución de llamada (wdm.h)

Una rutina de devolución de llamada exTimerDeleteCallback se ejecuta cuando el sistema operativo elimina un objeto de temporizador de EX_TIMER .

Sintaxis

EXT_DELETE_CALLBACK ExtDeleteCallback;

void ExtDeleteCallback(
  [in, optional] PVOID Context
)
{...}

Parámetros

[in, optional] Context

Valor de contexto del miembro DeleteContext de la estructura EXT_DELETE_PARAMETERS que el controlador pasó previamente como parámetro de entrada a la rutina ExDeleteTimer .

Valor devuelto

None

Observaciones

Como opción, el controlador puede proporcionar un puntero a una rutina ExTimerDeleteCallback en el miembro DeleteCallback de la estructura EXT_DELETE_PARAMETERS que el controlador pasa como parámetro de entrada a la rutina ExDeleteTimer . La rutina ExTimerDeleteCallback puede liberar cualquier almacenamiento u otros recursos del sistema que el controlador haya asignado previamente para usarlo con el objeto de temporizador que se está eliminando.

Si el controlador proporciona una rutina ExTimerDeleteCallback y el parámetro Wait en la llamada a ExDeleteRoutine es TRUE, la rutina ExTimerDeleteCallback se ejecuta antes de que se devuelva ExDeleteTimer . De lo contrario, la rutina ExTimerDeleteCallback puede ejecutarse antes o después de que se devuelva la llamada a ExDeleteTimer . La rutina ExTimerDeleteCallback se llama solo después de que el objeto de temporizador se haya deshabilitado para evitar más operaciones del temporizador y cualquier operación de temporizador pendiente en el objeto de temporizador se cancele o complete. El objeto de temporizador (una estructura de EX_TIMER ) que el controlador pasa como parámetro de entrada a la rutina ExDeleteTimer podría no ser válido en el momento en que se ejecuta la rutina ExTimerDeleteCallback .

Para obtener más información, vea ExXxxTimer Routines and EX_TIMER Objects.

Ejemplos

Para definir una rutina de devolución de llamada exTimerDeleteCallback , 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 el tipo de función de devolución de llamada ayuda a Code Analysis for Drivers, Static Driver Verifier (SDV) y otras herramientas de comprobación a encontrar errores y es un requisito para escribir controladores para el sistema operativo Windows.

Por ejemplo, para definir una rutina de devolución de llamada ExTimerDeleteCallback denominada MyExTimerDeleteCallback, use el tipo de función EXT_DELETE_CALLBACK, como se muestra en este ejemplo de código:

EXT_DELETE_CALLBACK  MyExTimerDeleteCallback;

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

_Use_decl_annotations_
VOID
  MyExTimerDeleteCallback(
    PVOID  Context
    )
  {...}

El tipo de función EXT_DELETE_CALLBACK 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 EXT_DELETE_CALLBACK 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 roles de función para controladores WDM. Para obtener más información sobre _Use_decl_annotations_, vea Anotación del comportamiento de la función.

Requisitos

Requisito Value
Cliente mínimo compatible Disponible a partir de Windows 8.1.
Plataforma de destino Escritorio
Encabezado wdm.h (incluya Wdm.h, Ntddk.h, Ntifs.h)
IRQL Se llama en DISPATCH_LEVEL.

Consulte también

EXT_DELETE_PARAMETERS

EX_TIMER

ExDeleteTimer