Fungsi panggilan balik LPNSPSETSERVICE (ws2spi.h)
Fungsi NSPSetService mendaftarkan atau membatalkan pendaftaran instans layanan dalam namespace layanan.
Sintaks
LPNSPSETSERVICE Lpnspsetservice;
INT Lpnspsetservice(
[in] LPGUID lpProviderId,
[in] LPWSASERVICECLASSINFOW lpServiceClassInfo,
[in] LPWSAQUERYSETW lpqsRegInfo,
[in] WSAESETSERVICEOP essOperation,
[in] DWORD dwControlFlags
)
{...}
Parameter
[in] lpProviderId
Penunjuk ke GUID penyedia namespace layanan tertentu tempat layanan terdaftar.
[in] lpServiceClassInfo
Informasi skema kelas layanan.
[in] lpqsRegInfo
Informasi properti yang akan diperbarui saat pendaftaran.
[in] essOperation
Jenis operasi yang diminta.
Parameter ini dapat menjadi salah satu nilai dari jenis enumerasi WSAESETSERVICEOP yang ditentukan dalam file header Winsock2.h .
Nilai | Makna |
---|---|
|
Daftarkan layanan. Untuk namespace Service Advertising Protocol (SAP) yang digunakan dalam lingkungan NetWare, ini berarti mengirim siaran berkala. Ini adalah NOP untuk namespace Domain Name System (DNS). Untuk penyimpanan data persisten, ini berarti memperbarui informasi alamat. |
|
Batalkan pendaftaran layanan. Untuk namespace layanan 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 disediakan yang akan dihapus, dan ini harus cocok dengan struktur **CSADDR_INFO** yang sesuai yang disediakan ketika layanan terdaftar. |
[in] dwControlFlags
Sekumpulan bendera yang mengontrol operasi layanan yang diminta.
Nilai yang mungkin untuk parameter ini ditentukan dalam file header Winsock2.h .
Nilai kembali
Fungsi harus mengembalikan NO_ERROR (nol) jika rutinitas berhasil. Ini harus mengembalikan SOCKET_ERROR (–1) jika rutinitas gagal dan harus mengatur kode kesalahan yang sesuai menggunakan WSASetLastError.
Kode kesalahan | Makna |
---|---|
Rutinitas panggilan tidak memiliki hak istimewa yang memadai untuk menginstal layanan. | |
Tidak tersedia cukup memori untuk melakukan operasi ini. | |
Satu atau beberapa parameter tidak valid, atau hilang, untuk penyedia ini. | |
Operasi ini tidak didukung. Kesalahan ini dikembalikan jika penyedia namespace tidak mengimplementasikan fungsi ini. | |
Layanan tidak diketahui. Layanan tidak dapat ditemukan di namespace yang ditentukan. |
Keterangan
Tabel berikut mencantumkan nilai yang tersedia untuk essOperation dan dwControlFlags.
Operasi | Bendera | Layanan sudah ada | Layanan tidak ada |
---|---|---|---|
**RNRSERVICE_REGISTER** | Tidak ada | Menimpa objek . Hanya menggunakan alamat yang ditentukan. Objek TERDAFTAR. | Membuat objek baru. Hanya menggunakan alamat yang ditentukan. Objek TERDAFTAR. |
**RNRSERVICE_REGISTER** | **SERVICE_MULTIPLE** | Updates objek. Menambahkan alamat baru ke set yang sudah ada. Objek TERDAFTAR. | Membuat objek baru. Menggunakan semua alamat yang ditentukan. Objek TERDAFTAR. |
**RNRSERVICE_DEREGISTER** | Tidak ada | Menghapus semua alamat, tetapi tidak menghapus objek dari namespace. Objek TIDAK TERDAFTAR. | WSASERVICE_NOT_FOUND |
**RNRSERVICE_DEREGISTER** | **SERVICE_MULTIPLE** | Updates objek. Hanya menghapus alamat yang ditentukan. Hanya tandai objek sebagai DEREGISTERED jika tidak ada alamat. Tidak menghapus dari namespace layanan. | WSASERVICE_NOT_FOUND |
**RNRSERVICE_DELETE** | Tidak ada | Menghapus objek dari namespace layanan. | WSASERVICE_NOT_FOUND |
**RNRSERVICE_DELETE** | **SERVICE_MULTIPLE** | Hanya menghapus alamat yang ditentukan. Hanya menghapus objek dari namespace jika tidak ada alamat yang tersisa. | WSASERVICE_NOT_FOUND |
Ketika parameter dwControlFlags diatur ke SERVICE_MULTIPLE, ini memungkinkan aplikasi untuk mengelola alamatnya secara independen. Ini berguna ketika aplikasi harus mengelola protokolnya satu per satu atau ketika layanan berada di lebih dari satu komputer. Misalnya, ketika layanan menggunakan lebih dari satu protokol, satu soket mendengarkan dapat dibatalkan, tetapi soket lainnya tetap beroperasi. Dalam contoh ini, layanan dapat membatalkan pendaftaran alamat yang dibatalkan tanpa memengaruhi alamat lain.
Saat menggunakan SERVICE_MULTIPLE, aplikasi tidak boleh membiarkan alamat lama tetap berada di objek . Ini dapat terjadi jika aplikasi dibatalkan tanpa mengeluarkan permintaan RNRSERVICE_DEREGISTER . Ketika layanan mendaftar, layanan harus menyimpan alamatnya. Pada panggilan berikutnya, layanan harus secara eksplisit membatalkan pendaftaran alamat lama ini sebelum mendaftarkan alamat baru.
Properti Layanan
Tabel berikut ini mencantumkan nama anggota WSAQUERYSET dan menjelaskan bagaimana data properti layanan diwakili. Anggota berlabel sebagai (Opsional) dapat disediakan dengan penunjuk null.Nama anggota WSAQUERYSET | Deskripsi properti layanan |
---|---|
**dwSize** | Atur ke sizeof(WSAQUERYSET). Ini adalah mekanisme penerapan versi. |
**lpszServiceInstanceName** | String yang dirujuk berisi nama instans layanan. |
**lpServiceClassId** | GUID yang sesuai dengan kelas layanan ini. |
**lpVersion** | Pilihan. Menyediakan nomor versi instans layanan. |
**lpszComment** | Pilihan. String komentar opsional. |
**dwNameSpace** | Diabaikan untuk operasi ini. |
**lpNSProviderId** | Diabaikan untuk operasi ini. Pengidentifikasi penyedia terkandung dalam parameter lpProviderId . |
**lpszContext** | Pilihan. Titik awal kueri dalam namespace hierarkis. |
**dwNumberOfProtocols** | Diabaikan untuk operasi ini. |
**lpafpProtocols** | Diabaikan untuk operasi ini. |
**pszQueryString** | Diabaikan untuk operasi ini. |
**dwNumberOfCsAddrs** | Jumlah elemen dalam array struktur CSADDR_INFO yang dirujuk oleh lpcsaBuffer. |
**lpcsaBuffer** | Penunjuk ke array struktur CSADDR_INFO yang berisi alamat atau alamat yang didengarkan layanan. |
**dwOutputFlags** | Diabaikan untuk operasi ini. |
**lpBlob** | Pilihan. Arahkan ke entitas khusus penyedia. |
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Windows 2000 Professional [hanya aplikasi desktop] |
Server minimum yang didukung | Windows 2000 Server [hanya aplikasi desktop] |
Target Platform | Windows |
Header | ws2spi.h |