mirror of
https://github.com/Fennix-Project/Kernel.git
synced 2025-05-28 15:34:33 +00:00
Drivers were not removed
This commit is contained in:
parent
4d8205a516
commit
094a75360f
@ -31,9 +31,11 @@ namespace Driver
|
|||||||
void Driver::UnloadAllDrivers()
|
void Driver::UnloadAllDrivers()
|
||||||
{
|
{
|
||||||
KernelCallback callback;
|
KernelCallback callback;
|
||||||
debug("%ld drivers loaded, [DUIDs: %ld]", DriverManager->GetDrivers().size(), DriverUIDs);
|
debug("%ld drivers loaded, [DUIDs: %ld]", Drivers.size(), DriverUIDs);
|
||||||
foreach (DriverFile *drv in DriverManager->GetDrivers())
|
debug("driver size %ld", Drivers.size());
|
||||||
|
for (size_t i = 0; i < Drivers.size(); i++)
|
||||||
{
|
{
|
||||||
|
DriverFile *drv = Drivers[i];
|
||||||
memset(&callback, 0, sizeof(KernelCallback));
|
memset(&callback, 0, sizeof(KernelCallback));
|
||||||
callback.Reason = StopReason;
|
callback.Reason = StopReason;
|
||||||
debug("Stopping & unloading driver %ld [%#lx]", drv->DriverUID, drv->Address);
|
debug("Stopping & unloading driver %ld [%#lx]", drv->DriverUID, drv->Address);
|
||||||
@ -46,12 +48,15 @@ namespace Driver
|
|||||||
continue;
|
continue;
|
||||||
delete drv->InterruptHook[i];
|
delete drv->InterruptHook[i];
|
||||||
}
|
}
|
||||||
|
Drivers.remove(i);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Driver::UnloadDriver(unsigned long DUID)
|
bool Driver::UnloadDriver(unsigned long DUID)
|
||||||
{
|
{
|
||||||
foreach (DriverFile *drv in DriverManager->GetDrivers())
|
for (size_t i = 0; i < Drivers.size(); i++)
|
||||||
|
{
|
||||||
|
DriverFile *drv = Drivers[i];
|
||||||
if (drv->DriverUID == DUID)
|
if (drv->DriverUID == DUID)
|
||||||
{
|
{
|
||||||
KernelCallback callback;
|
KernelCallback callback;
|
||||||
@ -67,8 +72,10 @@ namespace Driver
|
|||||||
continue;
|
continue;
|
||||||
delete drv->InterruptHook[i];
|
delete drv->InterruptHook[i];
|
||||||
}
|
}
|
||||||
|
Drivers.remove(i);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user