проблемы с созданием dial-up соединения

Тема в разделе "WASM.BEGINNERS", создана пользователем Flasher, 28 май 2007.

  1. Flasher

    Flasher Member

    Публикаций:
    0
    Регистрация:
    31 янв 2004
    Сообщения:
    640
    Точнее проблема в функции RasSetEntryProperties.
    Если размер структуры RASENTRYA больше 1768 - ошибку выдаёт.
    Эта структура есть у меня в windows.inc, весит 1766, и там крайне ограничены параметры, а на более расширённую версию структуры ругается, как быть?
     
  2. q_q

    q_q New Member

    Публикаций:
    0
    Регистрация:
    5 окт 2003
    Сообщения:
    1.706
    Flasher
    Если размер структуры RASENTRYA больше 1768 - ошибку выдаёт
    Я бы сказал так: "Ошибка если размер структуры RASENTRY не равен одному из допустимых значений". Посмотреть их можно в rasapi32.dll. Например, wxpprosp2rus
    Код (Text):
    1. ...
    2. Exported fn(): RasSetEntryPropertiesW - Ord:006Dh
    3. :76ED9ACE 8BFF           mov edi, edi
    4. ...
    5. :76ED9B22 8B4510         mov eax, dword ptr [ebp+10]
    6. ...
    7. :76ED9B31 8B00           mov eax, dword ptr [eax]
    8. :76ED9B33 3DF0150000     cmp eax, 000015F0
    9. :76ED9B38 741F           je 76ED9B59
    10. :76ED9B3A 3DD00F0000     cmp eax, 00000FD0
    11. :76ED9B3F 7418           je 76ED9B59
    12. :76ED9B41 3DA80D0000     cmp eax, 00000DA8
    13. :76ED9B46 7411           je 76ED9B59
    14. :76ED9B48 3D8C0D0000     cmp eax, 00000D8C
    15. :76ED9B4D 740A           je 76ED9B59
    16. :76ED9B4F B878020000     mov eax, 00000278 ;; eax := ERROR_INVALID_SIZE
    17. :76ED9B54 E9F5000000     jmp 76ED9C4E
    18. :76ED9B59
    19. ...
    20. Exported fn(): RasSetEntryPropertiesA - Ord:006Ch
    21. :76ED9C74 8BFF                    mov edi, edi
    22. ...
    23. :76ED9C8B 8B7510          mov esi, dword ptr [ebp+10]
    24. ...
    25. :76ED9CBE 8B06           mov eax, dword ptr [esi]
    26. :76ED9CC0 3D440B0000     cmp eax, 00000B44
    27. :76ED9CC5 741F           je 76ED9CE6
    28. :76ED9CC7 3D28080000     cmp eax, 00000828
    29. :76ED9CCC 7418           je 76ED9CE6
    30. :76ED9CCE 3D04070000     cmp eax, 00000704
    31. :76ED9CD3 7411           je 76ED9CE6
    32. :76ED9CD5 3DE8060000     cmp eax, 000006E8
    33. :76ED9CDA 740A           je 76ED9CE6
    34. :76ED9CDC B878020000     mov eax, 00000278  ;; eax := ERROR_INVALID_SIZE
    35. :76ED9CE1 E95B040000     jmp 76EDA141
    36. :76ED9CE6
    37. ...
    как быть?
    Посмотреть (по размеру) какая структура тебя устроит, и использовать ее.
     
  3. Flasher

    Flasher Member

    Публикаций:
    0
    Регистрация:
    31 янв 2004
    Сообщения:
    640
    q_q
    ох, спасибо огромное!

    могет кому понадобится..
     
  4. asmlamo

    asmlamo Well-Known Member

    Публикаций:
    0
    Регистрация:
    18 май 2004
    Сообщения:
    1.743
    Не компилится.

    80 строка
    Неопределенный символ memset
     
  5. asmlamo

    asmlamo Well-Known Member

    Публикаций:
    0
    Регистрация:
    18 май 2004
    Сообщения:
    1.743
    А что это за мутная функция

    invoke memset,addr re,0,00000B44h

    Что делает чем заменить можно???
     
  6. q_q

    q_q New Member

    Публикаций:
    0
    Регистрация:
    5 окт 2003
    Сообщения:
    1.706
    asmlamo
    что это за мутная функция
    Это Си. Она берется из msvcrt.lib.

    чем заменить можно?
    memset - заполнить область памяти. Первый параметр начальный адрес, второй - байт заполнения, третий - размер области. Заменить можно, например, rep movsb/movsw/movsd или RtlZeroMemory или RtlFillMemory.
     
  7. asmlamo

    asmlamo Well-Known Member

    Публикаций:
    0
    Регистрация:
    18 май 2004
    Сообщения:
    1.743
    спасиб ..

    будем пробовать ...
     
  8. asmlamo

    asmlamo Well-Known Member

    Публикаций:
    0
    Регистрация:
    18 май 2004
    Сообщения:
    1.743
    А как она попала в creatvpn.asm ?
    И как компилировать это дело в MASM ?
     
  9. Flasher

    Flasher Member

    Публикаций:
    0
    Регистрация:
    31 янв 2004
    Сообщения:
    640
    Код (Text):
    1. invoke memset,addr re,0,00000B44h
    замени на
    Код (Text):
    1.       lea edi,re
    2.       mov ecx,00000B44h
    3.       xor al,al
    4.       rep stosb
     
  10. asmlamo

    asmlamo Well-Known Member

    Публикаций:
    0
    Регистрация:
    18 май 2004
    Сообщения:
    1.743
    да спасибо все уже заработало (я написал банальный цикл ...)