Проблема с вызовом RasDial

243
05 июня 2018, 20:10

Всем привет! Я пытаюсь с помощью winapi создать vpn подключение, соответственно сначала я его настраиваю а потом с помощью RasDial пытаюсь запустить, но у меня вне зависимости от того что делаю RasDial возвращает ошибку 87 (Incorrect parameter). Может кто сталкивался? или знает как победить?

вот создание подключения, которое работает:

DWORD size = 0;
RasGetEntryProperties(NULL, L"", NULL, &size, NULL, NULL);
LPRASENTRY pras = (LPRASENTRY)malloc(size);
memset(pras, 0, size);
pras->dwSize = size;
pras->dwType = RASET_Vpn;
pras->dwRedialCount = 1;
pras->dwRedialPause = 0;
pras->dwfNetProtocols = RASNP_Ip;
pras->dwEncryptionType = ET_Optional;
wcscpy_s(pras->szLocalPhoneNumber,  server);
wcscpy_s(pras->szDeviceType, RASDT_Vpn);
pras->dwfOptions = RASEO_RemoteDefaultGateway;
pras->dwfOptions = RASEO_RequireEAP; 
pras->dwVpnStrategy = VS_Ikev2Only;
RasSetEntryProperties(NULL, name, pras, pras->dwSize, NULL, 0);
RASCREDENTIALS ras_cre = { 0 };
ras_cre.dwSize = sizeof(ras_cre);
ras_cre.dwMask = RASCM_UserName | RASCM_Password;
wcscpy_s(ras_cre.szUserName, username);
wcscpy_s(ras_cre.szPassword, password);
RasSetCredentials(NULL, name, &ras_cre, FALSE);
free(pras);`

Коннект создаётся, с правильными настройками, далее пытаюсь запустить:

HRASCONN *conn = NULL;
RASDIALPARAMS params;
ZeroMemory(&params, sizeof(RASDIALPARAMS));
params.dwSize = sizeof(RASDIALPARAMS);
 wcscpy_s(params.szEntryName,     name);
wcscpy_s(params.szUserName,  username);
wcscpy_s(params.szPassword,  password);
wcscpy_s(params.szCallbackNumber, L"");
wcscpy_s(params.szDomain,         L"");
wcscpy_s(params.szPhoneNumber,    L"");
params.dwSubEntry   = 0;
params.dwCallbackId = 0;
DWORD ret = RasDial(NULL, NULL, &params, 0, NULL, conn);

и вот тут мне всегда возвращается 87-я (не корректный параметр) ошибка, уже кучу всего перечитал. Я с winapi дело имел поверхностное, сильно ногами не бейте. Заранее спасибо!

READ ALSO
Как запустить проект на C++ включайщий sfml?

Как запустить проект на C++ включайщий sfml?

Доброго времени суток коллеги!

244
Как правильно получить размер файла с помощью std::experimental::filesystem? c++

Как правильно получить размер файла с помощью std::experimental::filesystem? c++

С плюсами только знакомлюсьПытаюсь получить список файлов и папок в директори и для файлов размер

198
Как создать такой дизайн (волны)

Как создать такой дизайн (волны)

Как мне сделать такие волныТам вся сложность в перекрытии цветов

216