Fungsi NetShareAdd (lmshare.h)
Berbagi sumber daya server.
NET_API_STATUS NET_API_FUNCTION NetShareAdd(
[in] LMSTR servername,
[in] DWORD level,
[in] LPBYTE buf,
[out] LPDWORD parm_err
);
[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 |
---|---|
|
Menentukan informasi tentang sumber daya bersama, termasuk nama sumber daya, jenis dan izin, dan jumlah koneksi. Parameter buf menunjuk ke struktur SHARE_INFO_2 . |
|
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 . |
|
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 .
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 |
---|---|
|
Pengguna tidak memiliki akses ke informasi yang diminta. |
|
Nilai yang ditentukan untuk parameter tingkat tidak valid. |
|
Karakter atau nama sistem file tidak valid. |
|
Parameter yang ditentukan tidak valid. |
|
Nama berbagi sudah digunakan pada server ini. |
|
Operasi ini tidak valid untuk sumber daya yang dialihkan. Nama perangkat yang ditentukan ditetapkan ke sumber daya bersama. |
|
Perangkat atau direktori tidak ada. |
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.
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;
}
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 |