SA>Возвращает "0; 1" (ну и ключ создает, конечно). Причем, даже если прописАть в RegOpenKeyEx "KEY_NOTIFY" или "KEY_QUERY_VALUE", скажем.
Кто сказал, что не должна? Назначение функции RegCreateKeyEx — создавать ключи реестра. Флаги доступа вроде KEY_READ и KEY_NOTIFY задают права доступа к возвращаемому HKEY, а в остальном ни на что не влияют.
-- Alex Fedotov
Re[2]: RegCreateKeyEx создает ключ, хотя не должна...
Здравствуйте Alex Fedotov, Вы писали:
AF>Кто сказал, что не должна? Назначение функции RegCreateKeyEx — создавать ключи реестра. Флаги доступа вроде KEY_READ и KEY_NOTIFY задают права доступа к возвращаемому HKEY, а в остальном ни на что не влияют.
А как быть с "The key identified by the hKey parameter must have been opened with KEY_CREATE_SUB_KEY access." (c) MSDN?
Re[3]: RegCreateKeyEx создает ключ, хотя не должна...
Здравствуйте S_Alex74, Вы писали:
AF>>Кто сказал, что не должна? Назначение функции RegCreateKeyEx — создавать ключи реестра. Флаги доступа вроде KEY_READ и KEY_NOTIFY задают права доступа к возвращаемому HKEY, а в остальном ни на что не влияют.
SA>А как быть с "The key identified by the hKey parameter must have been opened with KEY_CREATE_SUB_KEY access." (c) MSDN?
А ты под какой операционной системой запускаешь?
-- Alex Fedotov
Re[4]: RegCreateKeyEx создает ключ, хотя не должна...
Здравствуйте S_Alex74, Вы писали:
AF>>А ты под какой операционной системой запускаешь?
SA>NT4 Server SP6a (VC++6 SP4).
XP — та же фигня. Н-да, интересное поведение...
Я по такому случаю тестовую прикладушку сваял (http://www.alexfedotov.com/samples/regsec.zip). Она открывает ключ реестра с указанными правами доступа, запрашивает права доступа полученного хэндла с помощью ZwQueryObject и пытается создать подключ. Подключ успешно создается (и потом удаляется) вне зависимости от прав доступа на хэндл (но с учетом прав доступа на сам ключ, естественно).
Пойду в микрософтовской ньюсгруппе спрошу, что за фигня.
-- Alex Fedotov
Re[6]: RegCreateKeyEx создает ключ, хотя не должна...