RasDial всегда терпит неудачу во второй раз с ERROR_NO_CONNECTION? - PullRequest
0 голосов
/ 20 апреля 2019

Сначала создайте пример VPN-подключения из Свойства обозревателя - для этого необходимо иметь файл pbk в %userprofile%\AppData\Roaming\Microsoft\Network\Connections\PBK. Затем рассмотрите этот пример кода:

#include  <Windows.h>
#include <ras.h>
main()
{
    BOOL noCare;
    HRASCONN conn=NULL;
    RASCONNSTATUS status={.dwSize=sizeof status};
    RASDIALPARAMS params={.dwSize=sizeof params,.szEntryName="VPN Connection"};
    RasGetEntryDialParamsA(NULL,&params,&noCare);
    while(true)
        if(RasGetConnectStatusA(conn,&status)!=ERROR_INVALID_HANDLE)
        do
                        RasHangUpA(conn),Sleep(0);
        while(RasGetConnectStatusA(conn,&status)!=ERROR_INVALID_HANDLE);
        else RasDialA(NULL,NULL,&params,0,NULL,&conn);
}

Первый раз вызов всегда будет успешным, если вы правильно настроили VPN, однако второй вызов и любые последующие вызовы всегда завершаются неудачно с ERROR_NO_CONNECTION.

Есть идеи почему?

...