универсальный доступ к реестру под х64/х86

Тема в разделе "WASM.BEGINNERS", создана пользователем beginner, 1 дек 2009.

  1. beginner

    beginner New Member

    Публикаций:
    0
    Регистрация:
    18 янв 2008
    Сообщения:
    233
    Возможно ли написание универсального кода под х86/х64?
    Т.е. мне надо что бы моя программа запустилась под х86 и имела доступ к реестру.
    И что бы она запустилась под х64 и также имела доступ к реестру, только именно к 64-разрядной его части. Не к Wow6432Node, а именно к полноценному реестру под х64.
    По отдельности, если компилить два варианта кода под разные ОС - с этим проблем нет.

    Может внутри 32-битного кода, надо вызывать какие то функции для доступа к 64-разрядной части реестра.

    Желательно конечно варианты попроще. Ну или уже какие правильные есть.

    Заранее огромное спасибо.
     
  2. Rel

    Rel Well-Known Member

    Публикаций:
    2
    Регистрация:
    11 дек 2008
    Сообщения:
    5.323
    Код (Text):
    1. #ifdef _WIN64
    2. // x64 code
    3. #else
    4. // x86 code
    5. #endif
     
  3. djmans

    djmans New Member

    Публикаций:
    0
    Регистрация:
    27 дек 2006
    Сообщения:
    312
    http://msdn.microsoft.com/en-us/library/ms724072%28VS.85%29.aspx
     
  4. beginner

    beginner New Member

    Публикаций:
    0
    Регистрация:
    18 янв 2008
    Сообщения:
    233
    djmans
    Да, это походу оно. Спасибо.
    А будет ли этот ключ (KEY_WOW64_64KEY) работать в Zw*(Nt*) функциях?
    например, ZwOpenKey а точнее в ZwOpenKeyEx.
    Я так понимаю что если под 32-битной виндой запустить функцию открытия ветки с этим ключем, то функция вернет STATUS_INVALID_PARAMETER_4. И тогда нужно открывать ветку обычным способом? Или данный ключ под вин32 проигнорируется?

    Сорри, счас просто не могу проверить, а знать то хочется.
    Спасибо.
     
  5. beginner

    beginner New Member

    Публикаций:
    0
    Регистрация:
    18 янв 2008
    Сообщения:
    233
    Не вижу кнопки изменить сообщение, пишу еще одно
    нашел пример, что можно открывать ветку через ZwOpenKey, при этом используя сочетание параметров KEY_READ|KEY_WOW64_64KEY
    Буду дома пробывать. Спасибо еще раз за верное, надеюсь, направление.
     
  6. red_Human

    red_Human New Member

    Публикаций:
    0
    Регистрация:
    5 окт 2008
    Сообщения:
    182
    Вобще насколько я понимаю вы говорите о драйверных функциях а они крайне непортаюельны или я ощибаюсь?