We are using the Adeneo-release BSP for the TI AM335x EVM and one of the driver feature that is part of this BSP is the use of an IOCTL_DDK_GET_DRIVER_IFC which allows a other kernel mode modules to request access of key function pointers of several driver API.
My question is what would happen if for example a kernel module X would use the function pointer to make a GPIO driver interface call to set an clear a certain pin but unfortunately at run-time the GPIO was suddenly unloaded (either by some other module request to unload DLL or some weird scenario that happened in device manager)?
What would happen to address that the function pointer points to if the DLL is already unloaded?
What recovery/safety mechanism should implemented in events like this (i.e. implement "try" when doing IFC calls)?