eeh_clear 内核服务
用途
此服务注销 EEH 功能的插槽,并除去由 eeh_init 或 eeh_init_multifunc 内核服务分配的资源。
语法
#include <sys/eeh.h>
void eeh_clear(handle)
eeh_handle_t handle;
参数
| 项 | 描述 |
|---|---|
| 句柄 (handle) | 从eeh_init 或 eeh_init_multifunc 内核服务获取的 EEH 句柄 |
描述
单功能驱动程序: 此服务在插槽上禁用 EEH 功能并释放其 eeh_handle。
多功能驱动程序: 对于多功能适配器驱动程序,此服务会从同一父总线下的已注册驱动程序列表中除去该驱动程序。 如果这是取消注册的最后一个驱动程序,并且插槽的状态为 "正常" ,那么此服务还会在插槽上禁用 EEH 功能。
所有设备驱动程序在从系统中除去之前都需要调用 清除 (eh_clear) ,这样就不会发生热插拔冲突。 如果 清除 (eh_clear) 内核服务未清除插槽上的先前设备驱动程序,那么后续适配器可能在该插槽上的 eeh_init_multifunc () 中失败。 驱动程序可以在取消配置/卸载时取消注册。 在调用此服务时,内核会检查插槽的状态。 如果槽状态既不是 NORMAL 也不是 DEAD ,那么 清除 (eh_clear) 将休眠到状态返回到其中一个状态为止。
为设备驱动程序提供了宏 EEH_CLEAR(处理) 以调用此服务。 此服务由 EEH 句柄中的函数指针进行调用。
执行环境
此内核服务只能从进程环境进行调用。
返回值
此服务没有返回值。