Membatalkan pendaftaran Nama Serekan
Saat Anda membatalkan pendaftaran nama serekan, nama terdaftar dihapus dari cloud Peer Name Resolution Protocol (PNRP).
Membatalkan pendaftaran Nama Serekan
Untuk membatalkan pendaftaran nama serekan, panggil WSASetService. Parameter essOperation harus memiliki nilai RNRSERVICE_DELETE. Gunakan panduan di bagian berikut dari topik ini untuk membuat konfigurasi yang diperlukan ke parameter WSASetService dan struktur WSAQUERYSET .
Mengonfigurasi WSASetService
Saat aplikasi memanggil WSASetService, parameter harus dikonfigurasi sesuai dengan spesifikasi berikut:
- essOperation harus memiliki nilai RNRSERVICE_DELETE.
- dwFlags harus nol (0).
- lpqsRegInfo harus menunjuk ke struktur WSAQUERYSET , yang harus dikonfigurasi dengan menggunakan pedoman di bagian berikut dari topik ini.
Mengonfigurasi WSAQUERYSET
Struktur WSAQUERYSET harus dikonfigurasi sesuai dengan spesifikasi berikut:
- dwSize harus menentukan ukuran struktur WSAQUERYSET .
- lpszServiceInstanceName harus menunjuk ke nama serekan yang tidak terdaftar.
- lpBlob harus menunjuk ke struktur PNRPINFO .
- lpcsaBuffer harus menunjuk ke daftar alamat.
Catatan
Anggota yang tersisa dijelaskan dalam PNRP dan WSASetService.
Contoh Membatalkan Pendaftaran Nama Serekan
Cuplikan kode berikut menunjukkan kepada Anda cara membatalkan pendaftaran nama serekan dengan memberikan informasi yang benar saat memanggil WSASetService menggunakan struktur WSAQUERYSET .
#define UNICODE
#include <initguid.h>
#include <p2p.h>
#pragma comment(lib, "ws2_32.lib")
//-------------------------------------------------------------------------
// Function: PnrpUnregister
//
// Purpose: Unregister the given name from a PNRP cloud
//
// Arguments:
// pwzIdentity : identity string originally used to register the name
// pwzName : name to unregister from PNRP
// pwzCloud : name of the cloud to unregister from, NULL = global cloud
//
// Returns: HRESULT
//
HRESULT PnrpUnregister(PWSTR pwzIdentity, PWSTR pwzName, PWSTR pwzCloud)
{
HRESULT hr = S_OK;
PNRPINFO pnrpInfo = {0};
BLOB blPnrpData = {0};
WSAQUERYSET querySet = {0};
INT iRet;
//
// build the WSAQUERYSET required to unregister
//
pnrpInfo.dwSize = sizeof(pnrpInfo);
pnrpInfo.dwLifetime = 60 * 60 * 8; // 8 hours
pnrpInfo.lpwszIdentity = pwzIdentity;
blPnrpData.cbSize = sizeof(pnrpInfo);
blPnrpData.pBlobData = (BYTE*)&pnrpInfo;
querySet.dwSize = sizeof(querySet);
querySet.dwNameSpace = NS_PNRPNAME;
querySet.lpServiceClassId = (LPGUID)&SVCID_PNRPNAME;
querySet.lpszServiceInstanceName = pwzName;
querySet.lpszContext = pwzCloud;
querySet.lpBlob = &blPnrpData;
// unregister the name with PNRP
iRet = WSASetService(&querySet, RNRSERVICE_DELETE, 0);
if (iRet != 0)
{
hr = HRESULT_FROM_WIN32(WSAGetLastError());
}
return hr;
}
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk