Программирование драйверов Windows


Функции RtlXxx прямого доступа к Системному Реестру - часть 2


В нем должен существовать вложенный подраздел \Example1. Тогда возможны два варианта: в подраздел \Example1 вложен существующий подраздел \InnerKey, либо раздел \InnerKey не существует (и тогда он будет создан). В результате вызова получится подраздел HKLM\SYSTEM\CurrentControlSet\Services\Example1\InnerKey, в котором будет присутствовать строковый параметр NewParameter со значением "Example text parameter 1".

В том случае, если не существует не только подраздел \InnerKey, но и подраздел \Example1, вызов RtlWriteRegistryValue завершится неудачей.

В том случае, если все указанные подразделы присутствуют, и параметр NewParameter уже имеет какое-то значение, то в результате последовательности действий, как в описанном выше примере, в Системный Реестр будет записано новое значение, то есть "Example text parameter 1" .

RtlDeleteRegistryVaIue удаляет параметр из указанного подраздела, например:

status = RtlDeleteRegistryValue( RTL_REGISTRY_SERVICES, L"Example1\\InnerKey ", L"NewParameter" ); if( !NT_SUCCESS(x_status ) ) { #if DBG DbgPrint("RtlDeleteRegistryValue call is unsuccessful."); #endif }

В результате, в HKLM\SYSTEM\CurrentControlSet\Services\Example1\InnerKey исчезнет параметр NewParameter.




Начало  Назад  Вперед



Книжный магазин