eeh_clear 内核服务

用途

此服务注销 EEH 功能的插槽,并除去由 eeh_initeeh_init_multifunc 内核服务分配的资源。

语法

#include <sys/eeh.h>

void eeh_clear(handle)
eeh_handle_t handle;

参数

描述
句柄 (handle) eeh_initeeh_init_multifunc 内核服务获取的 EEH 句柄

描述

单功能驱动程序: 此服务在插槽上禁用 EEH 功能并释放其 eeh_handle

多功能驱动程序: 对于多功能适配器驱动程序,此服务会从同一父总线下的已注册驱动程序列表中除去该驱动程序。 如果这是取消注册的最后一个驱动程序,并且插槽的状态为 "正常" ,那么此服务还会在插槽上禁用 EEH 功能。

所有设备驱动程序在从系统中除去之前都需要调用 清除 (eh_clear) ,这样就不会发生热插拔冲突。 如果 清除 (eh_clear) 内核服务未清除插槽上的先前设备驱动程序,那么后续适配器可能在该插槽上的 eeh_init_multifunc () 中失败。 驱动程序可以在取消配置/卸载时取消注册。 在调用此服务时,内核会检查插槽的状态。 如果槽状态既不是 NORMAL 也不是 DEAD ,那么 清除 (eh_clear) 将休眠到状态返回到其中一个状态为止。

为设备驱动程序提供了宏 EEH_CLEAR(处理) 以调用此服务。 此服务由 EEH 句柄中的函数指针进行调用。

执行环境

此内核服务只能从进程环境进行调用。

返回值

此服务没有返回值。