Aracılığıyla paylaş


PNRP ve WSALookupServiceBegin

PNRP, bir uygulamanın aşağıdakileri yapmasına izin veren işlemi başlatmak için WSALookupServiceBegin işlevini kullanır:

İşlevlerden birini gerçekleştirmeye çalışan istemciler WSALookupServiceBegin, WSALookupServiceNextve WSALookupServiceEnd işlevlerinikullanır.

WSANSPIoctl kullanılarak arama hizmeti zaman uyumsuz olarak kullanılabilir. Arama hizmeti işlevlerini zaman uyumsuz olarak kullanma hakkında bilgi için bkz. PNRP ve WSANSPIoctl .

Eş adlarla çalışma süreci bulutlarla çalışmaktan farklıdır. Her işlem bu konu başlığında ayrı olarak açıklanmıştır.

Bir Adı Çözümleme

Bir uygulama, başka bir bilgisayarda kayıtlı bir eş hizmetin IP adresini, bağlantı noktasını ve protokollerini almak için WSALookupServiceBegin kullanır. WSALookupServiceBegin işlevi, ad çözümleme işlemini başlatmak ve parametreleri ve kısıtlamaları ayarlamak için kullanılır. Bir tanıtıcı döndürülür ve WSALookupServiceNext ve WSANSPIoctlçağrılırken kullanılmalıdır.

lpqsRestrictions

Bir eş adı çözümlendiğinde, lpqsRestrictions parametre başvurularının içerdiği LPWSAQUERYSET yapısı aşağıdaki değerleri içermelidir:

dwSize

Bu yapının boyutunu belirtir.

lpszServiceInstanceName

Çözümlenmesi gereken bir eş adı belirtir.

lpServiceClassID

SVCID_PNRPNAMEolmalıdır.

lpVersion

Ayrılmış, null olmalıdır.

lpszComment

Ayrılmış, null olmalıdır.

dwNameSpace

NS_PNRPNAME veya NS_ALLolmalıdır.

lpNSProviderID

null NS_PROVIDER_PNRPNAME veyaolmalıdır.

lpszContext

bir bulut adı, boş dize veya NULLolmalıdır. Bu değer NULL veya boş bir dize ise varsayılan bulut olan "Global_" kullanılır. Aksi takdirde geçerli bir bulut adına işaret etmelidir.

dwNumberOfProtocols

Ayrılmış, sıfır (0) olmalıdır.

lpszQueryString

Ayrılmış, null olmalıdır.

dwNumberOfCsAddrs

Ayrılmış, sıfır (0) olmalıdır.

lpcsaBuffer

Ayrılmış, null olmalıdır.

dwOutputFlags

Ayrılmış, sıfır (0) olmalıdır.

lpBlob

BLOB yapısının işaretçisi veya NULL olmalıdır. NULL ise varsayılan değerler kullanılır. Ayarlanırsa lpBlobPNRPINFO yapısına işaret eder ve PNRPINFO yapısındaki belirli parametreler ayarlanmalıdır. Daha fazla bilgi için PNRPINFO Yapısı için aşağıdaki açıklamalara bakın.

PNRPINFO Yapısı

LPWSAQUERYSET yapısının lpBlob üyesi ayarlanırsa, PNRPINFO yapısının aşağıdaki üyeleri ayarlanmalıdır:

dwSize

Bu yapının boyutunu belirtir.

lpwszIdentity

Ayrılmış, null olmalıdır.

nMaxResolve

İstenen çözüm sayısını belirtir.

dwTimeout

Yanıtları beklemek için istenen zaman aşımı süresini belirtir. Varsayılan değer 30 saniyedir. Maksimum değer 600 saniyedir (10 dakika).

dwLifetime

Ayrılmış, sıfır (0) olmalıdır.

enResolveCriteria

İzin verilen değerlerden biri olmalıdır. Varsayılan değer PNRP_RESOLVE_CRITERIA_NON_CURRENT_PROCESS_PEER_NAME. Geçerli değerler PNRP_RESOLVE_CRITERIAtarafından belirtilir.

dwFlags

Sıfır (0) veya PNRPINFO_HINTolmalıdır. Varsayılan değer sıfırdır (0).

saHint

İpucunun IP adresini belirtir. İpucu, en yakın eş adı bulmaya çalışırken kullanılır. İpucunun biçimi bir IPv6 adresidir. En yakın eş adı bulunurken saHint belirtilmezse, bunun yerine yerel bilgisayarın IPv6 adresi kullanılır. dwFlags ayarlanmadıysa bu üye yoksayılır.

enNameState

Ayrılmış, sıfır (0) olmalıdır.

dwControlFlags

Aşağıdaki LUP_RETURN_* bayrakları PNRP tarafından desteklenir:

Değer Açıklama
LUP_RETURN_NAME Bir ad ve bağlam döndürür.
LUP_RETURN_COMMENT Adla ilişkilendirilmiş bir açıklama döndürür.
LUP_RETURN_ADDR Adla ilişkilendirilmiş bir adres döndürür.

 

Ağ Bulutlarını Numaralandırma

lpqsRestrictions

Bulutları numaralandırırken, lpqsRestrictions parametre başvurularının aşağıdaki değerleri içermesi gereken LPWSAQUERYSET yapısı:

dwSize

Bu yapının boyutunu belirtir.

lpszServiceInstanceName

null olmalıdır.

lpServiceClassID

SVCID_PNRPCLOUDolmalıdır.

lpVersion

Ayrılmış, null olmalıdır.

lpszComment

Ayrılmış, null olmalıdır.

dwNameSpace

NS_PNRPCLOUDolmalıdır.

lpNSProviderID

null NS_PROVIDER_PNRPCLOUD veyaolmalıdır.

lpszContext

Ayrılmış, null olmalıdır.

dwNumberOfProtocols

Ayrılmış, sıfır (0) olmalıdır.

lpszQueryString

Ayrılmış, null olmalıdır.

dwNumberOfCsAddrs

Ayrılmış, sıfır (0) olmalıdır.

lpcsaBuffer

Ayrılmış, null olmalıdır.

dwOutputFlags

Ayrılmış, sıfır (0) olmalıdır.

lpBlob

PNRPCLOUDINFO yapısına işaret eden bir BLOB yapısının işaretçisi. lpBlob null ise, tüm bulutlar numaralandırılır.

PNRPCLOUDINFO Yapısı

Bulutları numaralandırırken, PNRPCLOUDINFO yapısının aşağıdaki üyeleri ayarlanmalıdır:

dwSize

Bu yapının boyutunu belirtir.

Cloud

Arama sonuçlarını filtrelemek için kullanabileceğiniz ölçütleri belirten bir yapıya işaret eder. Cloud.Scope üyesi PNRP_SCOPE_ANY, PNRP_GLOBAL_SCOPE, PNRP_SITE_LOCAL_SCOPEveya PNRP_LINK_LOCAL_SCOPEolabilir. PNRP_SCOPE_ANY belirtilirse tüm bulutlar döndürülür. Aksi takdirde, yalnızca Cloud.Scope eşleşen bulutlar döndürülür.

enCloudState

Ayrılmış, sıfır (0) olmalıdır.

dwControlFlags

Aşağıdaki LUP_RETURN_* bayrakları PNRP tarafından desteklenir:

Değer Açıklama
LUP_RETURN_NAME Bir ad ve bağlam döndürür.
LUP_RETURN_BLOB Bu bulutla ilişkili BLOB döndürür.

 

PNRP ve BLOB

PNRP ve WSALookupServiceEnd

PNRP ve WSALookupServiceNext

PNRP ve WSANSPIoctl

PNRP ve WSAQUERYSET

PNRPCLOUDINFO

PNRPINFO

PNRP NSP Hata Kodları