Platform SDK: RAS/Routing and RAS

RasEnumConnections

The RasEnumConnections function lists all active RAS connections. It returns each connection's handle and phone-book entry name.

DWORD RasEnumConnections(
  LPRASCONN lprasconn,     // buffer to receive connections
                           //  data
  LPDWORD lpcb,            // size in bytes of buffer
  LPDWORD lpcConnections   // number of connections written
                           //  to buffer
);

Parameters

lprasconn
Pointer to a buffer that receives an array of RASCONN structures, one for each RAS connection. Before calling the function, an application must set the dwSize member of the first RASCONN structure in the buffer to sizeof(RASCONN) in order to identify the version of the structure being passed.
lpcb
Pointer to a variable that contains the size, in bytes, of the buffer specified by lprasconn. On return, the function sets this variable to the number of bytes required to enumerate the RAS connections.
lpcConnections
Pointer to a variable that the function sets to the number of RASCONN structures written to the buffer specified by lprasconn.

Return Values

If the function succeeds, the return value is zero.

If the function fails, the return value is either a nonzero error value listed in the RAS header file or ERROR_BUFFER_TOO_SMALL or ERROR_NOT_ENOUGH_MEMORY.

Remarks

If a connection was made without specifying a phone-book entry name, the information returned for that connection gives the connection phone number preceded by ".".

The following sample code enumerates the current RAS connection. This code assumes that, at most, only one connection is currently active. Note that the code sets the dwSize member of the RASCONN structure to specify the version of the structure.

lpRasConn = (LPRASCONN) GlobalAlloc(GPTR, sizeof(RASCONN));
lpRasConn->dwSize = sizeof(RASCONN);
 
nRet = RasEnumConnections(lpRasConn, &lpcb, &lpcConnections);
if (nRet != 0)
{
    printf("RasEnumConnections failed: Error = %d", nRet);
}
else
{
    printf("The following RAS connections are currently active\n\n");
    for (i = 0; i < lpcConnections; i++)
    {
        printf("Entry name: %s\n", lpRasConn->szEntryName);
        lpRasConn++;
    }
}

Requirements

  Windows NT/2000: Requires Windows NT 3.1 or later.
  Windows 95/98: Requires Windows 95 or later.
  Header: Declared in Ras.h.
  Library: Use Rasapi32.lib.
  Unicode: Implemented as Unicode and ANSI versions on Windows NT/2000.

See Also

Remote Access Service (RAS) Overview, Remote Access Service Functions, RASCONN, RasEnumEntries, RasGetConnectStatus