EXT_DELETE_CALLBACK回调函数 (wdm.h)
当操作系统删除EX_TIMER计时器对象时,将运行 ExTimerDeleteCallback 回调例程。
语法
EXT_DELETE_CALLBACK ExtDeleteCallback;
void ExtDeleteCallback(
[in, optional] PVOID Context
)
{...}
参数
[in, optional] Context
驱动程序先前作为输入参数传递给 ExDeleteTimer 例程的 EXT_DELETE_PARAMETERS 结构的 DeleteContext 成员中的上下文值。
返回值
无
备注
作为一个选项,驱动程序可以提供指向 ExTimerDeleteCallback 例程的指针,该例程位于EXT_DELETE_PARAMETERS结构的 DeleteCallback 成员中,驱动程序将该例程作为输入参数传递给 ExDeleteTimer 例程。 ExTimerDeleteCallback 例程可以释放驱动程序之前可能已分配用于正在删除的计时器对象的任何存储或其他系统资源。
如果驱动程序提供 ExTimerDeleteCallback 例程,并且 ExDeleteRoutine 调用中的 Wait 参数为 TRUE,则 ExTimerDeleteCallback 例程在 ExDeleteTimer 返回之前运行。 否则, ExTimerDeleteCallback 例程可能会在 ExDeleteTimer 调用返回之前或之后运行。 只有在禁用计时器对象以防止进一步的计时器操作以及计时器对象上的任何挂起计时器操作被取消或完成之后,才调用 ExTimerDeleteCallback 例程。 计时器对象 (EX_TIMER 结构) 驱动程序作为输入参数传递给 ExDeleteTimer 例程,到 ExTimerDeleteCallback 例程运行时可能不再有效。
有关详细信息,请参阅 ExXxxTimer 例程和EX_TIMER对象。
示例
若要定义 ExTimerDeleteCallback 回调例程,必须首先提供一个函数声明,用于标识要定义的回调例程的类型。 Windows 为驱动程序提供一组回调函数类型。 使用回调函数类型声明函数有助于 驱动程序代码分析、 静态驱动程序验证程序 (SDV) 和其他验证工具查找错误,并且这是编写适用于 Windows 操作系统的驱动程序的要求。
例如,若要定义名为 MyExTimerDeleteCallback
的 ExTimerDeleteCallback 回调例程,请使用 EXT_DELETE_CALLBACK 函数类型,如以下代码示例所示:
EXT_DELETE_CALLBACK MyExTimerDeleteCallback;
然后,按如下所示实现回调例程:
_Use_decl_annotations_
VOID
MyExTimerDeleteCallback(
PVOID Context
)
{...}
EXT_DELETE_CALLBACK函数类型在 Wdm.h 头文件中定义。 若要在运行代码分析工具时更准确地识别错误,请务必将 _Use_decl_annotations_
注释添加到函数定义。 注释 _Use_decl_annotations_
可确保使用应用于头文件中EXT_DELETE_CALLBACK函数类型的注释。 有关函数声明要求的详细信息,请参阅 使用 WDM 驱动程序的函数角色类型声明函数。 有关 的详细信息 _Use_decl_annotations_
,请参阅 批注函数行为。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | 从Windows 8.1开始可用。 |
目标平台 | 桌面 |
标头 | wdm.h(包括 Wdm.h、Ntddk.h、Ntifs.h) |
IRQL | 在 DISPATCH_LEVEL 调用。 |