Fungsi NetShareGetInfo (lmshare.h)
Mengambil informasi tentang sumber daya bersama tertentu di server.
Sintaks
NET_API_STATUS NET_API_FUNCTION NetShareGetInfo(
[in] LMSTR servername,
[in] LMSTR netname,
[in] DWORD level,
[out] LPBYTE *bufptr
);
Parameter
[in] servername
Penunjuk ke string yang menentukan nama DNS atau NetBIOS dari server jarak jauh tempat fungsi dijalankan. Jika parameter ini NULL, komputer lokal akan digunakan.
[in] netname
Penunjuk ke string yang menentukan nama berbagi untuk mengembalikan informasi.
[in] level
Menentukan tingkat informasi data. Parameter ini bisa menjadi salah satu nilai berikut.
Nilai | Makna |
---|---|
|
Mengembalikan nama berbagi. Parameter bufptr menunjuk ke struktur SHARE_INFO_0 . |
|
Mengembalikan informasi tentang sumber daya bersama, termasuk nama dan jenis sumber daya, dan komentar yang terkait dengan sumber daya. Parameter bufptr menunjuk ke struktur SHARE_INFO_1 . |
|
Mengembalikan informasi tentang sumber daya bersama, termasuk nama sumber daya, jenis dan izin, kata sandi, dan jumlah koneksi. Parameter bufptr menunjuk ke struktur SHARE_INFO_2 . |
|
Mengembalikan nama dan jenis sumber daya, dan komentar yang terkait dengan sumber daya. Parameter bufptr menunjuk ke struktur SHARE_INFO_501 . |
|
Mengembalikan informasi tentang sumber daya bersama, termasuk nama sumber daya, jenis dan izin, jumlah koneksi, dan informasi terkait lainnya. Parameter bufptr menunjuk ke struktur SHARE_INFO_502 . |
|
Menentukan informasi tentang sumber daya bersama, termasuk nama sumber daya, jenis dan izin, jumlah koneksi, dan informasi terkait lainnya. Parameter buf menunjuk ke struktur SHARE_INFO_503 . Jika anggota shi503_servername struktur ini adalah "*", tidak ada nama server yang dikonfigurasi.
Windows Server 2003 dan Windows XP: Tingkat informasi ini tidak didukung. |
|
Mengembalikan nilai yang menunjukkan apakah berbagi adalah volume akar dalam struktur pohon Dfs. Parameter bufptr menunjuk ke struktur SHARE_INFO_1005 . |
[out] bufptr
Arahkan ke buffer yang menerima data. Format data ini tergantung pada nilai parameter tingkat . Untuk informasi selengkapnya, lihat Buffer Fungsi Manajemen Jaringan.
Buffer ini dialokasikan oleh sistem dan harus dibebaskan menggunakan fungsi NetApiBufferFree .
Nilai kembali
Jika fungsi berhasil, nilai yang dikembalikan adalah NERR_Success.
Jika fungsi gagal, nilai yang dikembalikan dapat 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. |
|
Nama berbagi tidak ada. |
Keterangan
Fungsi ini hanya berlaku untuk berbagi Blok Pesan Server (SMB). Untuk jenis berbagi lainnya, seperti berbagi Sistem File Terdistribusi (DFS) atau WebDAV, gunakan fungsi Windows Networking (WNet), yang mendukung semua jenis berbagi.
Untuk pengguna interaktif (pengguna yang masuk secara lokal ke komputer), tidak ada keanggotaan grup khusus yang diperlukan untuk menjalankan fungsi NetShareGetInfo . Untuk pengguna non-interaktif, Administrator, Pengguna Daya, Operator Cetak, atau keanggotaan grup Operator Server diperlukan untuk berhasil menjalankan fungsi NetShareEnum pada tingkat 2, 502, dan 503. Tidak diperlukan keanggotaan grup khusus untuk panggilan tingkat 0 atau tingkat 1.
Windows Server 2003 dan Windows XP: Untuk semua pengguna, Administrator, Pengguna Daya, Operator Cetak, atau keanggotaan grup Operator Server diperlukan untuk berhasil menjalankan fungsi NetShareGetInfo pada tingkat 2 dan 502.
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 berbagi manajemen jaringan. Untuk informasi selengkapnya, lihat IADsFileShare.
Jika 503 ditentukan untuk parameter tingkat , server jarak jauh yang ditentukan dalam anggota shi503_servername struktur SHARE_INFO_503 harus terikat ke protokol transportasi menggunakan fungsi NetServerTransportAddEx . Dalam panggilan ke NetServerTransportAddEx, 2 atau 3 harus telah ditentukan untuk parameter tingkat , dan bendera SVTI2_SCOPED_NAME harus telah ditentukan dalam struktur SERVER_TRANSPORT_INFO_2 untuk protokol transportasi.
Contoh
Sampel kode berikut menunjukkan cara mengambil informasi tentang sumber daya bersama tertentu menggunakan panggilan ke fungsi NetShareGetInfo . Sampel memanggil NetShareGetInfo, menentukan tingkat informasi 502 ( SHARE_INFO_502). Jika panggilan berhasil, kode akan mencetak data yang diambil. Sampel juga memanggil fungsi IsValidSecurityDescriptor untuk memvalidasi anggota shi502_security_descriptor . Terakhir, sampel membebaskan memori yang dialokasikan untuk buffer informasi.
#ifndef UNICODE
#define UNICODE
#endif
#include <windows.h>
#include <stdio.h>
#include <lm.h>
#pragma comment(lib, "Netapi32.lib")
#pragma comment(lib, "Advapi32.lib")
void wmain( int argc, TCHAR *lpszArgv[ ])
{
PSHARE_INFO_502 BufPtr;
NET_API_STATUS res;
LPTSTR lpszServer = NULL, lpszShare;
//
// Check command line arguments.
//
switch(argc)
{
case 3:
lpszServer = lpszArgv[2];
case 2:
lpszShare = lpszArgv[1];
break;
default:
printf("Usage: NetShareGetInfo sharename <servername>\n");
return;
}
//
// Call the NetShareGetInfo function, specifying level 502.
//
if((res = NetShareGetInfo (lpszServer,lpszShare,502,(LPBYTE *) &BufPtr)) == ERROR_SUCCESS)
{
//
// Print the retrieved data.
//
printf("%S\t%S\t%u\n",BufPtr->shi502_netname, BufPtr->shi502_path, BufPtr->shi502_current_uses);
//
// Validate the value of the
// shi502_security_descriptor member.
//
if (IsValidSecurityDescriptor(BufPtr->shi502_security_descriptor))
printf("It has a valid Security Descriptor.\n");
else
printf("It does not have a valid Security Descriptor.\n");
//
// Free the allocated memory.
//
NetApiBufferFree(BufPtr);
}
else
printf("Error: %ld\n",res);
return;
}
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Windows XP [hanya aplikasi desktop] |
Server minimum yang didukung | Windows Server 2003 [hanya aplikasi desktop] |
Target Platform | Windows |
Header | lmshare.h (termasuk Lm.h) |
Pustaka | Netapi32.lib |
DLL | Netapi32.dll |