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.
ext3awfAsked:
Who is Participating?
 
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
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.