Bagikan melalui


Fungsi NetShareAdd (lmshare.h)

Berbagi sumber daya server.

Sintaks

NET_API_STATUS NET_API_FUNCTION NetShareAdd(
  [in]  LMSTR   servername,
  [in]  DWORD   level,
  [in]  LPBYTE  buf,
  [out] LPDWORD parm_err
);

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] level

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

Nilai Makna
2
Menentukan informasi tentang sumber daya bersama, termasuk nama sumber daya, jenis dan izin, dan jumlah koneksi. Parameter buf menunjuk ke struktur SHARE_INFO_2 .
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_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 .

[in] buf

Penunjuk ke buffer yang menentukan data. Format data ini tergantung pada nilai parameter tingkat . Untuk informasi selengkapnya, lihat Buffer Fungsi Manajemen Jaringan.

[out] parm_err

Penunjuk ke nilai yang menerima indeks anggota pertama struktur informasi berbagi yang menyebabkan kesalahan ERROR_INVALID_PARAMETER . Jika parameter ini NULL, indeks tidak dikembalikan pada kesalahan. Untuk informasi selengkapnya, lihat fungsi NetShareSetInfo .

Nilai kembali

Jika fungsi berhasil, nilai yang dikembalikan adalah NERR_Success.

Jika fungsi gagal, nilai yang dikembalikan bisa 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_NAME
Karakter atau nama sistem file tidak valid.
ERROR_INVALID_PARAMETER
Parameter yang ditentukan tidak valid.
NERR_DuplicateShare
Nama berbagi sudah digunakan pada server ini.
NERR_RedirectedPath
Operasi ini tidak valid untuk sumber daya yang dialihkan. Nama perangkat yang ditentukan ditetapkan ke sumber daya bersama.
NERR_UnknownDevDir
Perangkat atau direktori tidak ada.

Keterangan

Fungsi ini hanya berlaku untuk berbagi Blok Pesan Server (SMB). Untuk jenis berbagi lainnya, seperti berbagi Distributed File System (DFS) atau WebDAV, gunakan fungsi Windows Networking (WNet), yang mendukung semua jenis berbagi.

Hanya anggota grup lokal Administrator, Operator Sistem, atau Pengguna Daya yang dapat menambahkan berbagi file dengan panggilan ke fungsi NetShareAdd . Operator Cetak dapat menambahkan berbagi printer.

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 ditentukan dalam struktur SERVER_TRANSPORT_INFO_2 untuk protokol transportasi.

Contoh

Sampel kode berikut menunjukkan cara berbagi sumber daya jaringan menggunakan panggilan ke fungsi NetShareAdd . Sampel kode mengisi anggota struktur SHARE_INFO_2 dan memanggil NetShareAdd, menentukan informasi tingkat 2. Kata sandi tidak diperlukan karena platform ini tidak mendukung keamanan tingkat berbagi.

#ifndef UNICODE
#define UNICODE
#endif
#include <windows.h>
#include <stdio.h>
#include <lm.h>
#pragma comment(lib, "Netapi32.lib")

void wmain( int argc, TCHAR *argv[ ])
{
   NET_API_STATUS res;
   SHARE_INFO_2 p;
   DWORD parm_err = 0;

   if(argc<2)
      printf("Usage: NetShareAdd server\n");
   else
   {
      //
      // Fill in the SHARE_INFO_2 structure.
      //
      p.shi2_netname = TEXT("TESTSHARE");    
      p.shi2_type = STYPE_DISKTREE; // disk drive
      p.shi2_remark = TEXT("TESTSHARE to test NetShareAdd");
      p.shi2_permissions = 0;    
      p.shi2_max_uses = 4;
      p.shi2_current_uses = 0;    
      p.shi2_path = TEXT("C:\\");
      p.shi2_passwd = NULL; // no password
      //
      // Call the NetShareAdd function,
      //  specifying level 2.
      //
      res=NetShareAdd(argv[1], 2, (LPBYTE) &p, &parm_err);
      //
      // If the call succeeds, inform the user.
      //
      if(res==0)
         printf("Share created.\n");
      
      // Otherwise, print an error,
      //  and identify the parameter in error.
      //
      else
         printf("Error: %u\tparmerr=%u\n", res, parm_err);
   }
   return;
}

Persyaratan

   
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

Netsharedel

NetsharedelEx

NetShareSetInfo

Fungsi Manajemen Jaringan

Gambaran Umum Manajemen Jaringan

Fungsi Berbagi Jaringan

SHARE_INFO_2

SHARE_INFO_502

SHARE_INFO_503