Platform SDK: Network Management

NetSecurityGetInfo Sample (Windows 95/98)

Windows 95/98: The following code sample demonstrates use of the NetSecurityGetInfo function.

The code sample specifies the security_info_1 information level. The example allocates and frees the memory required for the information buffer.

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

int main(int argc, char FAR * argv[])
{
   char FAR * pszServerName = NULL;
   short nLevel = 1;
   struct security_info_1* pBuf = NULL;
   unsigned short cbBuffer;
   unsigned short nTotalAvail = 0;
   NET_API_STATUS nStatus;
   //
   // ServerName can be NULL to indicate the local computer.
   //
   if (argc > 2)
   {
      printf("Usage: %s [\\\\ServerName]\n", argv[0]);
      exit(1);
   }

   if (argc == 2)
      pszServerName = argv[1];
   //
   // Allocate the memory for the buffer.
   //
   cbBuffer = sizeof(struct security_info_1);

   pBuf = (struct security_info_1*)malloc(cbBuffer);

   if (pBuf == NULL)
      printf("No memory\n");
   //
   // Call the NetSecurityGetInfo function, 
   //  specifying information level 1.
   //
   nStatus = NetSecurityGetInfo(pszServerName,
                                nLevel,
                                (char FAR *)pBuf,
                                cbBuffer,
                                &nTotalAvail);
   //
   // If the call is successful, display the data.
   //
   if (nStatus == NERR_Success)
   {
      printf("\n\tContainer: %s\n", pBuf->sec1_container);
      printf("\tAddress book server: %s\n", pBuf->sec1_ab_server);
      printf("\tAddress book provider DLL: %s\n", pBuf->sec1_ab_dll);
        if (pBuf->sec1_security == SEC_SECURITY_SHARE) 
         printf("\tSecurity: Share-level\n");
        else // SEC_SECURITY_WINNT, SEC_SECURITY_WINNTAS, or SEC_SECURITY_NETWARE
         printf("\tSecurity: User-level\n");
   }
   else
      fprintf(stderr, "A system error has occurred: %d\n", nStatus);
   //
   // Free the allocated memory.
   //
   if (pBuf != NULL)
      free(pBuf);

   return 0;
}