Bagikan melalui


Fungsi NetServerGetInfo (lmserver.h)

Fungsi NetServerGetInfo mengambil informasi konfigurasi saat ini untuk server yang ditentukan.

Sintaks

NET_API_STATUS NET_API_FUNCTION NetServerGetInfo(
  [in]  LMSTR  servername,
  [in]  DWORD  level,
  [out] LPBYTE *bufptr
);

Parameter

[in] servername

Penunjuk ke string yang menentukan nama server jarak jauh tempat fungsi dijalankan. Jika parameter ini NULL, komputer lokal akan digunakan.

[in] level

Menentukan tingkat informasi data. Parameter ini bisa menjadi salah satu nilai berikut.

Nilai Makna
100
Mengembalikan nama server dan informasi platform. Parameter bufptr menunjuk ke struktur SERVER_INFO_100 .
101
Mengembalikan nama server, jenis, dan perangkat lunak terkait. Parameter bufptr menunjuk ke struktur SERVER_INFO_101 .
102
Mengembalikan nama server, jenis, perangkat lunak terkait, dan atribut lainnya. Parameter bufptr menunjuk ke struktur SERVER_INFO_102 .

[out] bufptr

Arahkan ke buffer yang menerima data. Format data ini tergantung pada nilai parameter tingkat .

Buffer ini dialokasikan oleh sistem dan harus dikosongkan menggunakan fungsi NetApiBufferFree .

Nilai kembali

Jika fungsi berhasil, nilai yang dikembalikan NERR_Success.

Jika fungsi gagal, nilai yang dikembalikan bisa menjadi salah satu kode kesalahan berikut.

Menampilkan kode Deskripsi
ERROR_ACCESS_DENIED
5
Pengguna tidak memiliki akses ke informasi yang diminta.
ERROR_INVALID_LEVEL
124
Nilai yang ditentukan untuk parameter tingkat tidak valid.
ERROR_INVALID_PARAMETER
87
Parameter yang ditentukan tidak valid.
ERROR_NOT_ENOUGH_MEMORY
8
Memori tidak cukup tersedia.
NERR_ServerNotStarted
2114
Layanan server tidak dimulai.

Keterangan

Hanya grup lokal Administrator atau Operator Server, atau yang memiliki keanggotaan grup Operator Cetak atau Server, yang berhasil menjalankan fungsi NetServerGetInfo pada tingkat 102. Tidak diperlukan keanggotaan grup khusus untuk panggilan tingkat 100 atau tingkat 101.

Jika Anda memprogram Direktori Aktif, Anda mungkin dapat memanggil metode Antarmuka Layanan Direktori Aktif (ADSI) tertentu untuk mencapai fungsionalitas yang sama yang dapat Anda capai dengan memanggil fungsi server manajemen jaringan. Untuk informasi selengkapnya, lihat IADsComputer.

Contoh

Sampel kode berikut menunjukkan cara mengambil informasi konfigurasi saat ini untuk server menggunakan panggilan ke fungsi NetServerGetInfo . Sampel memanggil NetServerGetInfo, menentukan tingkat informasi 101 (SERVER_INFO_101). Jika panggilan berhasil, kode mencoba mengidentifikasi jenis server. Terakhir, sampel membebaskan memori yang dialokasikan untuk buffer informasi.

#ifndef UNICODE
#define UNICODE
#endif
#pragma comment(lib, "netapi32.lib")

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

int wmain(int argc, wchar_t *argv[])
{
   DWORD dwLevel = 101;
   LPSERVER_INFO_101 pBuf = NULL;
   NET_API_STATUS nStatus;
   LPTSTR pszServerName = NULL;

   if (argc > 2)
   {
      fwprintf(stderr, L"Usage: %s [\\\\ServerName]\n", argv[0]);
      exit(1);
   }
   // The server is not the default local computer.
   //
   if (argc == 2)
      pszServerName = (LPTSTR) argv[1];
   //
   // Call the NetServerGetInfo function, specifying level 101.
   //
   nStatus = NetServerGetInfo(pszServerName,
                              dwLevel,
                              (LPBYTE *)&pBuf);
   //
   // If the call succeeds,
   //
   if (nStatus == NERR_Success)
   {
      //
      // Check for the type of server.
      //
      if ((pBuf->sv101_type & SV_TYPE_DOMAIN_CTRL) ||
         (pBuf->sv101_type & SV_TYPE_DOMAIN_BAKCTRL) ||
         (pBuf->sv101_type & SV_TYPE_SERVER_NT))
         printf("This is a server\n");
      else
         printf("This is a workstation\n");
   }
   //
   // Otherwise, print the system error.
   //
   else
      fprintf(stderr, "A system error has occurred: %d\n", nStatus);
   //
   // Free the allocated memory.
   //
   if (pBuf != NULL)
      NetApiBufferFree(pBuf);

   return 0;
}

Persyaratan

   
Klien minimum yang didukung Windows 2000 Professional [hanya aplikasi desktop]
Server minimum yang didukung Windows 2000 Server [hanya aplikasi desktop]
Target Platform Windows
Header lmserver.h (termasuk Lm.h)
Pustaka Netapi32.lib
DLL Netapi32.dll

Lihat juga

NetRemoteComputerSupports

NetServerSetInfo

Fungsi Manajemen Jaringan

Gambaran Umum Manajemen Jaringan

SERVER_INFO_100

SERVER_INFO_101

SERVER_INFO_102

Fungsi Server