private RASCONN[] GetConnections(out int count)
        {
            RASCONN[] lpRasConn;
            bool      retry;

            count = 1;

            do
            {
                retry     = false;
                lpRasConn = structFactory.CreateArray <RASCONN>(count, out var lpCb);

                var ret = api.RasEnumConnections(lpRasConn, ref lpCb, ref count);
                if (ret == ERROR_BUFFER_TOO_SMALL)
                {
                    retry = true;
                }
                else if (ret != SUCCESS)
                {
                    throw exceptionPolicy.Create(ret);
                }
            } while (retry);

            return(lpRasConn);
        }
Exemple #2
0
        private RASDEVINFO[] GetDevices(out int count)
        {
            RASDEVINFO[] lpRasDevInfo;
            bool         retry;

            count = 1;

            do
            {
                retry        = false;
                lpRasDevInfo = structFactory.CreateArray <RASDEVINFO>(count, out var lpCb);

                var ret = api.RasEnumDevices(lpRasDevInfo, ref lpCb, ref count);
                if (ret == ERROR_BUFFER_TOO_SMALL)
                {
                    retry = true;
                }
                else if (ret != SUCCESS)
                {
                    throw exceptionPolicy.Create(ret);
                }
            } while (retry);

            return(lpRasDevInfo);
        }