Запись в защищенные ветви реестра

Тема в разделе "WASM.BEGINNERS", создана пользователем Vetoshkin, 15 сен 2005.

  1. Vetoshkin

    Vetoshkin New Member

    Публикаций:
    0
    Регистрация:
    15 сен 2005
    Сообщения:
    4
    Адрес:
    Germany
    Привет Всем!

    Мне нужно из программы ( Visual C++ 6.0, C++Builde 6.0) записать информацию в защищенную часть реестра, например:

    HKLM\SYSTEM\CurrentControlSet\Enum\... . Но для этого административных прав не достаточно. Не могли бы ДЗЕНствующие помочь получить их?

    Буду ну ОЧЕНЬ благодарен и должен бутылку баварского пива ( несуществующего в природе ;=))!

    Viktor

    vetoshkin@mail333.com
     
  2. _staier

    _staier New Member

    Публикаций:
    0
    Регистрация:
    3 окт 2003
    Сообщения:
    738
    Адрес:
    Ukraine
    это почему же административных прав не достаточно -то ?

    регедит это запросто делает

    может надо security token добавить ?
     
  3. Vetoshkin

    Vetoshkin New Member

    Публикаций:
    0
    Регистрация:
    15 сен 2005
    Сообщения:
    4
    Адрес:
    Germany
    К сожалению не достаточно, я имею в виду Enum, хотя в Edit/Permission это можно исправить.

    "security token" - я пытался с помощью следующего кода ( схематично):

    ::OpenProcessToken (::GetCurrentProcess (), TOKEN_ADJUST_PRIVILEGES, &hToken))

    ::LookupPrivilegeValue(NULL, SE_BACKUP_NAME, &luid))

    tp.PrivilegeCount = 1;

    tp.Privileges[0].Luid =luid;

    tp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;

    ::AdjustTokenPrivileges(hToken, FALSE, &tp, sizeof(TOKEN_PRIVILEGES),NULL, NULL );



    меняя все возможные константы ( вместо SE_BACKUP_NAME).

    К сожалению ничего не получилось.

    Я думаю и ищу в направлении ACL.

    Спасибо за участие.
     
  4. _staier

    _staier New Member

    Публикаций:
    0
    Регистрация:
    3 окт 2003
    Сообщения:
    738
    Адрес:
    Ukraine
    да ,действительно

    The HKLM\SYSTEM\CurrentControlSet\Enum Tree



    The HKLM\SYSTEM\CurrentControlSet\Enum registry tree contains information about the devices on the system. The PnP Manager creates a subkey for each device, with a name in the form of HKLM\SYSTEM\CurrentControlSet\Enum\enumerator\deviceID. Under each of these keys is a subkey for each device instance present on the system. This subkey, which is known as the device's hardware key (or, device key), has information such as the device description, hardware IDs, compatible IDs, resource requirements, and so forth.



    The Enum tree is reserved for use by operating system components, and its layout is subject to change. Drivers and user-mode Setup components must use system-supplied functions, such as IoGetDeviceProperty and SetupDiGetDeviceRegistryProperty, to extract information from this tree. Drivers and Setup applications must not access the Enum tree directly. You can view the Enum tree directly using the registry editor when debugging drivers.





    так что нелегитимно писать туды что - либо , это , кстати может означать что как такового ключа не существует , и он динамически создаётся pnp manager,
     
  5. Vetoshkin

    Vetoshkin New Member

    Публикаций:
    0
    Регистрация:
    15 сен 2005
    Сообщения:
    4
    Адрес:
    Germany
    staier: Не совсем так. Скорее наоборот - PnP Manager читает оттуда. В regEdit ситуцию можно ручками поправить - в меню Edit/Permission изменить права - и пиши на здоровье. Я так и тестировал программу. Но мне надо провести предварительную инсталляцию USB прибора, так чтобы при подключении не вываливались никакие окошки. Дополнительные сложности - дрова создают виртуальный COM порт со своими дровами ( и тоже не должны беспокоить лишними вопросами зверей) и все это у Билла не сертифицировано. Для начала я должен инсталляцию дров не делать а лишь ПнП уговорить, чтобы он не дергался. Методом тыка я нашел заклинания, но ... как скать их ПнП?...