Obtaining the Buffer Size

Windows Mobile 6.5
A version of this page is also available for

Many of the IP Helper functions work similarly. To retrieve the table of data which you are requesting, you need to know how large a buffer to pass. So the function is first called with a null buffer and a pointer to a location for the required buffer size. The function is then called with the appropriate buffer size. This is shown in the code snippet below.

// Get the Network Parameters
//Note that this code snippet can also be used 
//for other 'get' functions, such as GetTcpStatistics, 
//GetIpAddrTable, and so on.
PFIXED_INFO pNetworkParams = NULL;
ULONG uSizeNetworkParams = 0;
DWORD status;

// Find out how large the buffer needs to be to hold the data
status = GetNetworkParams(pNetworkParams, &uSizeNetworkParams);
if (status == ERROR_BUFFER_OVERFLOW) {
   // Allocate a buffer of the appropriate size
   if (!(pNetworkParams = (PFIXED_INFO) malloc(uSizeNetworkParams))) {
   // Obtain Adapter Info
   status = GetNetworkParams(pNetworkParams, &uSizeNetworkParams);

Community Additions