В чем здесь разница???

Тема в разделе "WASM.BEGINNERS", создана пользователем yuri, 15 июн 2008.

  1. yuri

    yuri New Member

    Публикаций:
    0
    Регистрация:
    29 янв 2008
    Сообщения:
    47
    Код (Text):
    1.  .386
    2.     .model flat,stdcall
    3.     option casemap:none
    4.     include \masm32\include\w2k\ntdll.inc
    5.         include \masm32\include\w2k\ntstatus.inc
    6.         include \masm32\include\w2k\ntddk.inc
    7.         include \masm32\Macros\Strings.mac
    8.         includelib \masm32\lib\ntdll.lib
    9.  
    10.     .const
    11.  
    12.              CCOUNTED_UNICODE_STRING ""\\Registry\\Machine\\Software\\Мy Key ", g_usMachineKeyName, 4
    13.  
    14.          .data?
    15.  
    16.          .data
    17.  
    18.        
    19.  
    20.  
    21.  
    22.    WndProc pro
    23.  
    24.                   local oa:OBJECT_ATTRIBUTES
    25.                   local dwDisposition:DWORD
    26.                   local hKey:HANDLE
    27.                    
    28.  
    29.  
    30.         lea ecx, oa
    31.         InitializeObjectAttributes ecx,addr  g_usMachineKeyName , OBJ_CASE_INSENSITIVE, NULL, NULL
    32.  
    33.         invoke ZwCreateKey, addr hKey,KEY_ALL_ACCESS, addr oa, 0,0,REG_OPTION_NON_VOLATILE, addr dwDisposition
    34.  
    35.  
    36.  
    37.          invoke ZwClose, hKey
    38.  
    39.  
    40.   WndProc endp
    Код (Text):
    1. .386
    2.     .model flat,stdcall
    3.     option casemap:none
    4.     include \masm32\include\w2k\ntdll.inc
    5.         include \masm32\include\w2k\ntstatus.inc
    6.         include \masm32\include\w2k\ntddk.inc
    7.         include \masm32\Macros\Strings.mac
    8.         includelib \masm32\lib\ntdll.lib
    9.  
    10.     .const
    11.  
    12.          .data?
    13.  
    14.          .data
    15.  
    16.        szKeyName db "\\Registry\\Machine\\Software\\Мy Key ",0
    17.  
    18.  
    19.  
    20.    WndProc pro
    21.  
    22.                   local oa:OBJECT_ATTRIBUTES
    23.                   local dwDisposition:DWORD
    24.                   local hKey:HANDLE
    25.  
    26.                   local as:ANSI_STRING
    27.                   local us:UNICODE_STRING
    28.            
    29.  
    30.             invoke RtlInitAnsiString ,addr as ,addr szKeyName
    31.  
    32.             invoke RtlAnsiStringToUnicodeString,addr us,addr as,TRUE
    33.    
    34.                
    35.                
    36.           lea ecx, oa
    37.           InitializeObjectAttributes ecx, addr us, OBJ_CASE_INSENSITIVE,0, NULL
    38.           invoke ZwCreateKey, addr hKey,KEY_ALL_ACCESS, addr oa, 0,0,REG_OPTION_NON_VOLATILE, addr dwDisposition
    39.          
    40.  
    41.            invoke ZwClose, hKey      
    42.  
    43.    WndProc endp
    Это 2 кода создания одного и того же ключа HKLM\Software\Мy Key

    Но в первом примере ключ создаётся,а во втором нет

    В чем здесь разница не пойму ,и почему не создается ключ во втором примере???

    Подскажите пожалуйста

    ЗАРАНЕЕ БЛАГОДАРЕН
     
  2. Vilco

    Vilco Vitaly

    Публикаций:
    0
    Регистрация:
    5 мар 2007
    Сообщения:
    190
    Адрес:
    Nsk, Russia
    Ужасно тяжело читаемо
     
  3. twgt

    twgt New Member

    Публикаций:
    0
    Регистрация:
    15 янв 2007
    Сообщения:
    1.494
    yuri
    Используй вариант, который работает, зачем голову морочить.
     
  4. Freeman

    Freeman New Member

    Публикаций:
    0
    Регистрация:
    10 фев 2005
    Сообщения:
    1.385
    Адрес:
    Ukraine
    разница в том, что в первом случае юникод строка формируется макросом, а во втором - не макросом.

    почему в первом случае, работает, а во втором - нет хз. у вас проверок на ошибки с отладочным выводом нет. в йадре даж выравнивание иногда играет не последнюю роль
     
  5. yuri

    yuri New Member

    Публикаций:
    0
    Регистрация:
    29 янв 2008
    Сообщения:
    47
    Мож не правильно описан ключ в
    szKeyName db "\\Registry\\Machine\\Software\\Мy Key ",0

    почему он получается с "\\\

    Подскажите если кто знает, ну очень нужно ,и именно этим способом

    СПАСИБО
     
  6. q_q

    q_q New Member

    Публикаций:
    0
    Регистрация:
    5 окт 2003
    Сообщения:
    1.706
    yuri
    Замени
    Код (Text):
    1. ...
    2. ;;szKeyName db "\\Registry\\Machine\\Software\\Мy Key ",0
    3. szKeyName db "\Registry\Machine\Software\Мy Key ",0
    4. ...