为什么内核驱动程序在抛出异常时无法更新注册表值?
why Kernel Driver can not update registry value when it throw an exception?
这是一个测试 KMDF 项目。它的功能是读写注册表。
案例 1:
1.read 一个注册表值并将值写入注册表
2.Check windows 中的注册表,值已更新。
案例2:
1.read 一个注册表值并将一个值写入注册表,最后添加异常。开机时出现蓝屏 windows
2.remove异常,启动windows,检查注册表,值未更新。
这些是我使用的异常代码。
void GoException()
{
PDRIVER_OBJECT obj = NULL;
obj->DeviceObject->CurrentIrp = NULL;
}
我已经尝试了两个注册表路径。
HKEY_LOCAL_MACHINE\SOFTWARE\DELL\test(正常路径)
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TEST(服务路径)
注册表项无法更新的原因,需要到一定点才能在开机时保存更改。某驱动异常,可能无法保存
这是一个测试 KMDF 项目。它的功能是读写注册表。
案例 1:
1.read 一个注册表值并将值写入注册表
2.Check windows 中的注册表,值已更新。
案例2:
1.read 一个注册表值并将一个值写入注册表,最后添加异常。开机时出现蓝屏 windows
2.remove异常,启动windows,检查注册表,值未更新。
这些是我使用的异常代码。
void GoException()
{
PDRIVER_OBJECT obj = NULL;
obj->DeviceObject->CurrentIrp = NULL;
}
我已经尝试了两个注册表路径。
HKEY_LOCAL_MACHINE\SOFTWARE\DELL\test(正常路径)
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TEST(服务路径)
注册表项无法更新的原因,需要到一定点才能在开机时保存更改。某驱动异常,可能无法保存