почему драйвер ядра не может обновить значение реестра при возникновении исключения?

Это тестовый проект KMDF. это функция чтения и записи реестра.

Дело 1:

1. прочитать значение реестра и записать значение в реестр

2. Проверьте реестр в Windows, значение обновлено.

Случай 2:

1. прочитать значение реестра и записать значение в реестр, добавить исключение в конце. BSOD происходит при загрузке Windows

2. удалить исключение, загрузочные окна, проверить реестр, значение не обновляется.

Это код исключения, который я использую.

    void GoException()
    {
    PDRIVER_OBJECT obj = NULL;
    obj->DeviceObject->CurrentIrp = NULL;
    }

Я пробовал два пути в реестре.

HKEY_LOCAL_MACHINE \ SOFTWARE \ DELL \ test (нормальный путь)

HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ TEST (путь к службе)


person yongliang sun    schedule 23.03.2017    source источник


Ответы (1)


Причина, по которой ключ реестра не может быть обновлен, необходимо до определенной точки, чтобы сохранить изменения при загрузке. Исключение в одном драйвере, может не сохраниться.

person yongliang sun    schedule 28.03.2017