Go Premium for a chance to win a PS4. Enter to Win

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 248
  • Last Modified:

Win32 APIs RasEnumConnections()

I'm trying to use RasEnumConnections() and it is failing when I step over the line of code that calls this function.  Here is my code:

RASCONN RasConn;
DWORD* Buffer;
DWORD* NumberOfConnections;

RasConn.dwSize = sizeof(RASCONN);
RasConn.hrasconn = NULL;

RasEnumConnections(&RasConn,
               BufferSize,
               NumberOfConnections);

Do you know what I'm doing wrong.
0
ext3awf
Asked:
ext3awf
1 Solution
 
trestanCommented:
You declare DWORD* Buffer; , But you use BufferSize, in your function call.

0
 
alamoCommented:
There are other things wrong also.You declare Buffer and NumberOfConnections as pointers, because the function expects pointers. But your pointers are uninitialized - they don't point to anything.

You should declare Buffer and NumberOfConnections not as pointers but as the variables which RasEnumConnections need, and then pass their addresses to RasEnumConnections. Also, RasConn needs to be is an array of RASCONN  structures - there can be more than one connection, and the function will fail if you don't give it enough.

Try:
#define RasConn_Entries 10
RASCONN RasConn[RasConn_Entries];
DWORD BufferSize;
DWORD NumberOfConnections;

RasConn[0].dwSize = sizeof(RASCONN);
BufferSize = sizeof(RASCONN)*RasConn_Entries;

RasEnumConnections(&RasConn[0], &BufferSize, &NumberOfConnections);

That should work a lot better (though I haven't compiled or tested it). Hope this helps!
0

Featured Post

VIDEO: THE CONCERTO CLOUD FOR HEALTHCARE

Modern healthcare requires a modern cloud. View this brief video to understand how the Concerto Cloud for Healthcare can help your organization.

Tackle projects and never again get stuck behind a technical roadblock.
Join Now