информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
За кого нас держат?Где водятся OGRыПортрет посетителя
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Бэкдор в xz/liblzma, предназначенный... 
 Три миллиона электронных замков... 
 Doom на газонокосилках 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / programming
Имя Пароль
ФОРУМ
если вы видите этот текст, отключите в настройках форума использование JavaScript
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
Проблемы с RasGetEntryProperties 09.07.03 15:04  Число просмотров: 2328
Автор: 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-2024 Dmitry Leonov   Page build time: 1 s   Design: Vadim Derkach