Bagikan melalui


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
0
Mengembalikan nama berbagi. Parameter bufptr menunjuk ke struktur SHARE_INFO_0 .
1
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 .
2
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 .
501
Mengembalikan nama dan jenis sumber daya, dan komentar yang terkait dengan sumber daya. Parameter bufptr menunjuk ke struktur SHARE_INFO_501 .
502
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 .
503
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.

1005
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
ERROR_ACCESS_DENIED
Pengguna tidak memiliki akses ke informasi yang diminta.
ERROR_INVALID_LEVEL
Nilai yang ditentukan untuk parameter tingkat tidak valid.
ERROR_INVALID_PARAMETER
Parameter yang ditentukan tidak valid.
ERROR_NOT_ENOUGH_MEMORY
Memori tidak cukup tersedia.
NERR_NetNameNotFound
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

Lihat juga

NetServerTransportAddEx

Fungsi Manajemen Jaringan

Gambaran Umum Manajemen Jaringan

Fungsi Berbagi Jaringan

SECURITY_DESCRIPTOR

SHARE_INFO_0

SHARE_INFO_1

SHARE_INFO_1005

SHARE_INFO_2

SHARE_INFO_501

SHARE_INFO_502

SHARE_INFO_503