HOWTO: Enumerate Network Connections

ID: Q119216

The information in this article applies to:

SUMMARY

From the MS-DOS prompt, you can enumerate the network connections (drives) by using the following command:

   net use

Programmatically, you would call WNetOpenEnum() to start the enumeration of connected resources and WNetEnumResources() to continue the enumeration.

MORE INFORMATION

The following sample code enumerates the network connections:

Sample Code

   #include <windows.h>
   #include <stdio.h>

   void main()
   {
      DWORD dwResult;
      HANDLE hEnum;
      DWORD cbBuffer = 16384;
      DWORD cEntries = 0xFFFFFFFF;
      LPNETRESOURCE lpnrDrv;
      DWORD i;

      dwResult = WNetOpenEnum( RESOURCE_CONNECTED,
                               RESOURCETYPE_ANY,
                               0,
                               NULL,
                               &hEnum );

      if (dwResult != NO_ERROR)
      {
         printf( "\nCannot enumerate network drives.\n" );
         return;
      }

      printf( "\nNetwork drives:\n\n" );

      do
      {
         lpnrDrv = (LPNETRESOURCE) GlobalAlloc( GPTR, cbBuffer );

         dwResult = WNetEnumResource( hEnum, &cEntries, lpnrDrv, &cbBuffer
   );

         if (dwResult == NO_ERROR)
         {
            for( i = 0; i < cEntries; i++ )
            {
               if( lpnrDrv[i].lpLocalName != NULL )
               {
                  printf( "%s\t%s\n", lpnrDrv[i].lpLocalName,
                                      lpnrDrv[i].lpRemoteName );
               }
            }
         }
         else if( dwResult != ERROR_NO_MORE_ITEMS )
         {
            printf( "Cannot complete network drive enumeration" );
            GlobalFree( (HGLOBAL) lpnrDrv );
            break;
         }
         GlobalFree( (HGLOBAL) lpnrDrv );
      }
      while( dwResult != ERROR_NO_MORE_ITEMS );

      WNetCloseEnum(hEnum);
   }

Additional query words: Keywords : kbnetwork kbAPI kbNTOS310 kbNTOS350 kbNTOS351 kbSDKPlatform kbWinOS95 kbWNet kbGrpNet

Last Reviewed: July 31, 1998