Сейчас на форуме: tyns777, zds, JustLife, 2nd, morgot, Rio (+5 невидимых)

 eXeL@B —› Программирование —› Как ускорить время сохранения изменений вносимых в реестр (под WinXP) на диск?
Посл.ответ Сообщение


Ранг: 450.3 (мудрец), 13thx
Активность: 0.20
Статус: Участник

Создано: 22 июля 2009 14:16
· Личное сообщение · #1

Как ускорить фактическое время сохранения изменений вносимых в реестр (под WinXP) на диск? Грубо говоря если написать программку по нажатию на кнопку делающую сохранение в реестре и выдающую Beep после этого и услышав его жать reboot, то можно заметить, что не всегда данные успевают записаться... То есть фактически между вызовом апи функции работы с реестром и сохранением изменений на диск в файл реестра есть пауза. Можно ли её сократить?



Ранг: 22.3 (новичок)
Активность: 0.010
Статус: Участник

Создано: 22 июля 2009 15:05
· Личное сообщение · #2

Может это из-за write caching кот. по дефолту включён для дисков.




Ранг: 450.3 (мудрец), 13thx
Активность: 0.20
Статус: Участник

Создано: 22 июля 2009 16:28
· Личное сообщение · #3

Неа, не помогло...




Ранг: 990.2 (! ! !), 380thx
Активность: 0.680
Статус: Модератор
Author of DiE

Создано: 22 июля 2009 16:58 · Поправил: Модератор
· Личное сообщение · #4

Code:
  1. The RegFlushKey function writes all the attributes of the specified 
  2. open key into the registry. 
  3.  
  4. LONG RegFlushKey(
  5.  
  6.     HKEY hKey     // handle of key to write  
  7.    );

может это?

-----
[nice coder and reverser]





Ранг: 450.3 (мудрец), 13thx
Активность: 0.20
Статус: Участник

Создано: 22 июля 2009 17:28
· Личное сообщение · #5

Да кстати! Сейчас попробую...




Ранг: 2014.5 (!!!!), 1278thx
Активность: 1.340.25
Статус: Модератор
retired

Создано: 22 июля 2009 19:07
· Личное сообщение · #6

Вы сначала пробуйте, а потом пишите. Все любители вышенаписанной фразы.




Ранг: 605.2 (!), 341thx
Активность: 0.470.25
Статус: Модератор
Research & Development

Создано: 22 июля 2009 22:02
· Личное сообщение · #7

* сохрани нужные данные в реестре
* закрой все свои хэндлы, связанные с реестром
* открой и прочитай эти данные
* закрой всё
* можешь пикать

-----
EnJoy!




Ранг: 255.8 (наставник), 19thx
Активность: 0.150.01
Статус: Участник
vx

Создано: 22 июля 2009 22:42
· Личное сообщение · #8

Оно быстро, если не удалённо(локальные хэндлы, тоесть запрос к службе посредством RPC не выполняется, а сохраняются изменения сервисами), приведённая выше функция это враппер для запроса к службе, хотя и локально из адвапи функции тоже работают, просто там проверка флажка в хэндле.




Ранг: 450.3 (мудрец), 13thx
Активность: 0.20
Статус: Участник

Создано: 22 июля 2009 23:09
· Личное сообщение · #9

Огромное спасибо всем кто отписался! RegFlushKey на который указал Hellspawn - полностью устранил проблему! При закрытии ключа получалось бы тоже, я посмотрел код компонента TRegistry в дельфи, но закрывать мне ключ не нужно...


 eXeL@B —› Программирование —› Как ускорить время сохранения изменений вносимых в реестр (под WinXP) на диск?
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати