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





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