Fungsi WSASetServiceA (winsock2.h)
Fungsi WSASetService mendaftarkan atau menghapus dari registri instans layanan dalam satu atau beberapa namespace layanan.
Sintaksis
INT WSAAPI WSASetServiceA(
[in] LPWSAQUERYSETA lpqsRegInfo,
[in] WSAESETSERVICEOP essoperation,
[in] DWORD dwControlFlags
);
Parameter
[in] lpqsRegInfo
Pointer ke informasi layanan untuk pendaftaran atau deregistrasi.
[in] essoperation
Nilai yang menentukan operasi yang diminta. Parameter ini dapat menjadi salah satu nilai dari jenis enumerasi WSAESETSERVICEOP yang ditentukan dalam file header Winsock2.h.
Nilai | Arti |
---|---|
|
Daftarkan layanan. Untuk SAP, ini berarti mengirimkan siaran berkala. Ini adalah NOP untuk namespace DNS. Untuk penyimpanan data persisten, ini berarti memperbarui informasi alamat. |
|
Hapus layanan dari registri. Untuk SAP, ini berarti berhenti mengirim siaran berkala. Ini adalah NOP untuk namespace DNS. Untuk penyimpanan data persisten, ini berarti menghapus informasi alamat. |
|
Hapus layanan dari nama dinamis dan ruang persisten. Untuk layanan yang diwakili oleh beberapa struktur CSADDR_INFO (menggunakan bendera SERVICE_MULTIPLE), hanya alamat yang ditentukan yang akan dihapus, dan ini harus cocok dengan struktur CSADDR_INFO yang sesuai yang ditentukan ketika layanan terdaftar. |
[in] dwControlFlags
Nilai bendera penginstalan layanan yang lebih mengontrol operasi yang dilakukan fungsi WSASetService. Nilai yang mungkin untuk parameter ini didefinisikan dalam file header
Mengembalikan nilai
Nilai pengembalian untuk WSASetService
Kode kesalahan | Arti |
---|---|
|
Rutinitas panggilan tidak memiliki hak istimewa yang memadai untuk menginstal Layanan. |
Satu atau beberapa parameter yang diperlukan tidak valid atau hilang. | |
Ws2_32.dll belum diinisialisasi. Aplikasi harus terlebih dahulu memanggil WSAStartup sebelum memanggil fungsi Windows Sockets apa pun. | |
Memori tidak cukup untuk melakukan operasi. |
Komentar
Fungsi WSASetService
Nilai yang tersedia untuk essOperation
Operasi | Bendera | Layanan sudah ada | Layanan tidak ada |
---|---|---|---|
RNRSERVICE_REGISTER | Tidak | Menimpa objek. Hanya menggunakan alamat yang ditentukan. Objek DIDAFTARKAN. | Membuat objek baru. Hanya menggunakan alamat yang ditentukan. Objek TERDAFTAR. |
RNRSERVICE_REGISTER | SERVICE_MULTIPLE | Memperbarui objek. Menambahkan alamat baru ke set yang sudah ada. Objek DIDAFTARKAN. | Membuat objek baru. Menggunakan semua alamat yang ditentukan. Objek TERDAFTAR. |
RNRSERVICE_DEREGISTER | Tidak | Menghapus semua alamat, tetapi tidak menghapus objek dari namespace. Objek dihapus dari registri. | WSASERVICE_NOT_FOUND |
RNRSERVICE_DEREGISTER | SERVICE_MULTIPLE | Memperbarui objek. Menghapus hanya alamat yang ditentukan. Hanya menandai objek sebagai DEREGISTERED jika tidak ada alamat yang ada. Tidak menghapus objek dari namespace layanan. | WSASERVICE_NOT_FOUND |
RNRSERVICE_DELETE | Tidak | Menghapus objek dari namespace layanan. | WSASERVICE_NOT_FOUND |
RNRSERVICE_DELETE | SERVICE_MULTIPLE | Menghapus hanya alamat yang ditentukan. Hanya menghapus objek dari namespace jika tidak ada alamat yang tersisa. | WSASERVICE_NOT_FOUND |
Layanan penerbitan ke direktori, seperti Layanan Direktori Aktif, dibatasi berdasarkan daftar kontrol akses (ACL). Untuk informasi selengkapnya, lihat Masalah Keamanan untuk Publikasi Layanan.
Ketika parameter
Ketika parameter
Properti Layanan
Tabel berikut ini menjelaskan bagaimana data properti layanan diwakili dalam struktur WSAQUERYSETAnggota WSAQUERYSET | Deskripsi properti layanan |
---|---|
dwSize | Harus diatur ke sizeof (WSAQUERYSET). Ini adalah mekanisme penerapan versi. |
dwOutputFlags | Tidak berlaku dan diabaikan. |
lpszServiceInstanceName | String yang dirujuk berisi nama instans layanan. |
lpServiceClassId | GUID yang sesuai dengan kelas layanan ini. |
lpVersion |
(Opsional) Menyediakan nomor versi instans layanan. |
lpszComment | (Opsional) String komentar opsional. |
dwNameSpace | Lihat tabel berikut ini. |
lpNSProviderId | Lihat tabel berikut ini. |
lpszContext | (Opsional) Menentukan titik awal kueri dalam namespace hierarkis. |
dwNumberOfProtocols | Diabaikan. |
lpafpProtocols | Diabaikan. |
lpszQueryString | Diabaikan. |
dwNumberOfCsAddrs | Jumlah elemen dalam array struktur CSADDR_INFO yang dirujuk oleh lpcsaBuffer. |
lpcsaBuffer | Penunjuk ke array struktur CSADDR_INFO yang berisi alamat yang didengarkan layanan. |
lpBlob | (Opsional) Ini adalah penunjuk ke entitas khusus penyedia. |
Seperti yang diilustrasikan dalam hal berikut, kombinasi dwNameSpace dan anggota lpNSProviderId menentukan bahwa penyedia namespace layanan terpengaruh oleh fungsi ini.
dwNameSpace | lpNSProviderId | Cakupan dampak |
---|---|---|
Diabaikan | Non-null | Penyedia ruang nama yang ditentukan. |
Nama yang valid- pengidentifikasi spasi | Nol | Semua penyedia ruang nama yang mendukung namespace yang ditunjukkan. |
NS_ALL | Nol | Semua penyedia ruang nama. |
Nota
Header winsock2.h mendefinisikan WSASetService sebagai alias yang secara otomatis memilih versi ANSI atau Unicode dari fungsi ini berdasarkan definisi konstanta preprosedur UNICODE. Mencampur penggunaan alias encoding-netral dengan kode yang tidak mengodekan-netral dapat menyebabkan ketidakcocokan yang mengakibatkan kesalahan kompilasi atau runtime. Untuk informasi selengkapnya, lihat Konvensi untuk Prototipe Fungsi.
Persyaratan
Syarat | Nilai |
---|---|
klien minimum yang didukung | Windows 8.1, Windows Vista [aplikasi desktop | Aplikasi UWP] |
server minimum yang didukung |
Windows Server 2003 [aplikasi desktop | Aplikasi UWP] |
Platform Target |
Windows |
Header |
winsock2.h |
Pustaka |
Ws2_32.lib |
DLL |
Ws2_32.dll |
Lihat juga
Referensi