информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Все любят медГде водятся OGRы
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Очередное исследование 19 миллиардов... 
 Оптимизация ввода-вывода как инструмент... 
 Зловреды выбирают Lisp и Delphi 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / programming
Имя Пароль
если вы видите этот текст, отключите в настройках форума использование JavaScript
ФОРУМ
все доски
FAQ
IRC
новые сообщения
site updates
guestbook
beginners
sysadmin
programming
operating systems
theory
web building
software
hardware
networking
law
hacking
gadgets
job
dnet
humor
miscellaneous
scrap
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
Проблемы с RasGetEntryProperties 09.07.03 15:04  Число просмотров: 2407
Автор: HandleX <Александр М.> Статус: The Elderman
Отредактировано 09.07.03 15:11  Количество правок: 1
<"чистая" ссылка>
> Проблемы с RasGetEntryProperties. Когда функция вызывается
> с нулевым буфером, то в пятом параметре возвращается размер
> буфера. Ок!
DWORD RasGetEntryProperties(
    LPTSTR lpszPhonebook,	// pointer to full path and filename of phone-book file
    LPTSTR lpszEntry,	// pointer to an entry name 
    LPRASENTRY lpRasEntry,	// buffer that receives entry information
    LPDWORD lpdwEntryInfoSize,	// size, in bytes, of the lpRasEntry buffer 
    LPBYTE lpbDeviceInfo,	// buffer that receives device-specific configuration information
    LPDWORD lpdwDeviceInfoSize	// size, in bytes, of the lpbDeviceInfo buffer 
   );

---
В смысле, в четвёртом параметре?

> Если в свойствах подключения один телефонный номер, то с
> выделенным буфером размером, указанным выше, функция
> работает правильно. Если в свойствах подключения несколько
> телефонных номеров, то даже с выделенным буфером (см. выше)
> функция возвращает ошибку 632 - размер буфера не
> соответствует.
Ну, может быть несколько причин. Ты во что инициализируешь lpRasEntry.dwSize ? Нужно не в то, что возвратил вызов RasGetEntryProperties, а в sizeof(RASENTRY) .
Лучше не обращать lpRasEntry в NULL при первом вызове, поскольку тогда Win2K считает, что ты заюзаешь самую крутую версию этой структуры, а это у тебя скорее всего не так. Ты сделай вот как. Выдели память под твой lpRasEntry, выстави поле dwSize как я сказал выше. Вызови первый раз. Если ошибку малого буфера получишь, то сделай ресайз буфера в который надо. Вызови RasGetEntryProperties второй раз.

Удачи.
<programming>
Проблемы с RasGetEntryProperties 09.07.03 12:47  
Автор: blade Статус: Незарегистрированный пользователь
<"чистая" ссылка>
Проблемы с RasGetEntryProperties. Когда функция вызывается с нулевым буфером, то в пятом параметре возвращается размер буфера. Ок!
Если в свойствах подключения один телефонный номер, то с выделенным буфером размером, указанным выше, функция работает правильно. Если в свойствах подключения несколько телефонных номеров, то даже с выделенным буфером (см. выше) функция возвращает ошибку 632 - размер буфера не соответствует.
Блин.
Кто-нибудь сталкивался с такой проблемой? Как ее решить.
PS, на NT все работает нормально, на 2000 SP3 - такая чехарда
попробуй поставить #define winver 0x400 перед #include "ras.h" 09.07.03 15:39  
Автор: Killer{R} <Dmitry> Статус: Elderman
<"чистая" ссылка>
Большое спасибо, все заработало 09.07.03 16:08  
Автор: blade Статус: Незарегистрированный пользователь
<"чистая" ссылка>
Большое СПАСИБО, все заработало
Блин, чтож про это нигде не паписано!?
Проблемы с RasGetEntryProperties 09.07.03 15:04  
Автор: HandleX <Александр М.> Статус: The Elderman
Отредактировано 09.07.03 15:11  Количество правок: 1
<"чистая" ссылка>
> Проблемы с RasGetEntryProperties. Когда функция вызывается
> с нулевым буфером, то в пятом параметре возвращается размер
> буфера. Ок!
DWORD RasGetEntryProperties(
    LPTSTR lpszPhonebook,	// pointer to full path and filename of phone-book file
    LPTSTR lpszEntry,	// pointer to an entry name 
    LPRASENTRY lpRasEntry,	// buffer that receives entry information
    LPDWORD lpdwEntryInfoSize,	// size, in bytes, of the lpRasEntry buffer 
    LPBYTE lpbDeviceInfo,	// buffer that receives device-specific configuration information
    LPDWORD lpdwDeviceInfoSize	// size, in bytes, of the lpbDeviceInfo buffer 
   );

---
В смысле, в четвёртом параметре?

> Если в свойствах подключения один телефонный номер, то с
> выделенным буфером размером, указанным выше, функция
> работает правильно. Если в свойствах подключения несколько
> телефонных номеров, то даже с выделенным буфером (см. выше)
> функция возвращает ошибку 632 - размер буфера не
> соответствует.
Ну, может быть несколько причин. Ты во что инициализируешь lpRasEntry.dwSize ? Нужно не в то, что возвратил вызов RasGetEntryProperties, а в sizeof(RASENTRY) .
Лучше не обращать lpRasEntry в NULL при первом вызове, поскольку тогда Win2K считает, что ты заюзаешь самую крутую версию этой структуры, а это у тебя скорее всего не так. Ты сделай вот как. Выдели память под твой lpRasEntry, выстави поле dwSize как я сказал выше. Вызови первый раз. Если ошибку малого буфера получишь, то сделай ресайз буфера в который надо. Вызови RasGetEntryProperties второй раз.

Удачи.
sizeof(rasentry) не катит 09.07.03 16:06  
Автор: blade Статус: Незарегистрированный пользователь
<"чистая" ссылка>
sizeof(RASENTRY) не катит, если его использовать сразу для буфера, то на подключения с одним телефонным номером функция возвращает ERROR_INVALID_SIZE, а на подключения со многими телефонными номерами - то, что было раньше 632.
1




Rambler's Top100
Рейтинг@Mail.ru


  Copyright © 2001-2025 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach