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 成员的上下文值。
返回值
没有
言论
作为选项,驱动程序可以在驱动程序作为输入参数传递给 ExDeleteTimertimer 例程的 DeleteCallbackEXT_DELETE_PARAMETERS 成员中提供指向 ExTimerDeleteCallback 例程的指针。 ExTimerDeleteCallback 例程可以释放驱动程序以前可能已分配给与正在删除的计时器对象一起使用的任何存储或其他系统资源。
如果驱动程序提供 ExTimerDeleteCallback 例程,并且 ExDeleteRoutine 调用中的 Wait 参数 TRUE,则 ExTimerDeleteCallback 例程在 ExDeleteTimer 返回之前运行。 否则,ExTimerDeleteCallback 例程可能会在 ExDeleteTimer 调用返回之前或之后运行。 仅在禁用计时器对象后调用 ExTimerDeleteCallback 例程,以防止进一步的计时器作和计时器对象上挂起的任何计时器作被取消或完成。 驱动程序作为输入参数传递给 ExDeleteTimer 例程的计时器对象(EX_TIMER 结构)在运行 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调用。 |