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 |
---|---|
|
Mengembalikan nama server dan informasi platform. Parameter bufptr menunjuk ke struktur SERVER_INFO_100 . |
|
Mengembalikan nama server, jenis, dan perangkat lunak terkait. Parameter bufptr menunjuk ke struktur SERVER_INFO_101 . |
|
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 |
---|---|
|
Pengguna tidak memiliki akses ke informasi yang diminta. |
|
Nilai yang ditentukan untuk parameter tingkat tidak valid. |
|
Parameter yang ditentukan tidak valid. |
|
Memori tidak cukup tersedia. |
|
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 |