共用方式為


PNRP 和 WSALookupServiceBegin

PNRP 會使用 WSALookupServiceBegin 函式來啟動可讓應用程式執行下列動作的程式:

嘗試執行其中一個函式的用戶端會使用 WSALookupServiceBeginWSALookupServiceNextWSALookupServiceEnd 函式。

藉由使用 WSANSPIoctl,即可異步使用查閱服務。 如需異步使用查閱服務函式的相關信息,請參閱 PNRP 和 WSANSPIoctl

使用對等名稱的程式與使用雲端的程式不同。 本主題會個別描述每個程式。

解析名稱

應用程式會使用 WSALookupServiceBegin,為在另一部計算機上註冊的對等服務取得 IP 位址、埠和通訊協定。 WSALookupServiceBegin 函式可用來啟動名稱解析程式,並設定參數和限制。 會傳回句柄,而且必須在呼叫 WSALookupServiceNextWSANSPIoctl時使用 。

lpqsRestrictions

解析對等名稱時,LPWSAQUERYSET 結構,lpqsRestrictions 參數參考必須包含下列值:

dwSize

指定這個 結構的大小。

lpszServiceInstanceName

指定要解析的對等名稱。

lpServiceClassID

必須是 SVCID_PNRPNAME

lpVersion

保留的 必須 NULL

lpszComment

保留的 必須 NULL

dwNameSpace

必須是 NS_PNRPNAMENS_ALL

lpNSProviderID

必須是 NS_PROVIDER_PNRPNAMENULL

lpszContext

必須是雲端名稱、空字串或 NULL。 如果此值 NULL 或空字串,則會使用預設雲端 “Global_”。 否則,它必須指向有效的雲端名稱。

dwNumberOfProtocols

保留的 必須是零 (0)。

lpszQueryString

保留的 必須 NULL

dwNumberOfCsAddrs

保留的 必須是零 (0)。

lpcsaBuffer

保留的 必須 NULL

dwOutputFlags

保留的 必須是零 (0)。

lpBlob

必須是 BLOB 結構的指標,或 NULL。 如果它是 NULL,則會使用預設值。 如果已設定,lpBlob 指向 PNRPINFO 結構,而且必須設定 PNRPINFO 結構中的特定參數。 如需詳細資訊,請參閱 PNRPINFO 結構的下列描述。

PNRPINFO 結構

如果已設定 LPWSAQUERYSET 結構的 lpBlob 成員,則必須設定 PNRPINFO 結構的下列成員:

dwSize

指定這個 結構的大小。

lpwszIdentity

保留的 必須 NULL

nMaxResolve

指定要求的解析度數目。

dwTimeout

指定要等候回應的要求逾時期間。 預設值為30秒。 最大值為 600 秒(10 分鐘)。

dwLifetime

保留的 必須是零 (0)。

enResolveCriteria

必須是其中一個允許的值。 預設值為 PNRP_RESOLVE_CRITERIA_NON_CURRENT_PROCESS_PEER_NAME。 有效值是由 PNRP_RESOLVE_CRITERIA指定。

dwFlags

必須是零 (0) 或 PNRPINFO_HINT。 預設值為零 (0)。

saHint

指定提示的IP位址。 嘗試尋找最接近的對等名稱時,會使用提示。 提示的格式是 IPv6 位址。 如果在尋找最接近的對等名稱時未指定 saHint,則會改用本機計算機的 IPv6 位址。 如果未設定 dwFlags,則會忽略此成員。

enNameState

保留的 必須是零 (0)。

dwControlFlags

PNRP 支援下列LUP_RETURN_* 旗標:

價值 描述
LUP_RETURN_NAME 傳回名稱和內容。
LUP_RETURN_COMMENT 傳回與名稱相關聯的批注。
LUP_RETURN_ADDR 傳回與名稱相關聯的位址。

 

列舉網路雲端

lpqsRestrictions

列舉雲端時,LPWSAQUERYSET 結構,lpqsRestrictions 參數參考必須包含下列值:

dwSize

指定這個 結構的大小。

lpszServiceInstanceName

必須 NULL

lpServiceClassID

必須是 SVCID_PNRPCLOUD

lpVersion

保留的 必須 NULL

lpszComment

保留的 必須 NULL

dwNameSpace

必須是 NS_PNRPCLOUD

lpNSProviderID

必須是 NS_PROVIDER_PNRPCLOUDNULL

lpszContext

保留的 必須 NULL

dwNumberOfProtocols

保留的 必須是零 (0)。

lpszQueryString

保留的 必須 NULL

dwNumberOfCsAddrs

保留的 必須是零 (0)。

lpcsaBuffer

保留的 必須 NULL

dwOutputFlags

保留的 必須是零 (0)。

lpBlob

指向 PNRPCLOUDINFO 結構的 BLOB 結構的指標。 如果 lpBlobNULL,則會列舉所有雲端。

PNRPCLOUDINFO 結構

列舉雲端時,必須設定下列 PNRPCLOUDINFO 結構的成員:

dwSize

指定這個 結構的大小。

Cloud

指向 結構,指定可用來篩選搜尋結果的準則。 Cloud.Scope 成員可以是 PNRP_SCOPE_ANYPNRP_GLOBAL_SCOPEPNRP_SITE_LOCAL_SCOPEPNRP_LINK_LOCAL_SCOPE。 如果指定 PNRP_SCOPE_ANY,則會傳回所有雲端。 否則,只會傳回符合 Cloud.Scope 的雲端。

enCloudState

保留的 必須是零 (0)。

dwControlFlags

PNRP 支援下列LUP_RETURN_* 旗標:

價值 描述
LUP_RETURN_NAME 傳回名稱和內容。
LUP_RETURN_BLOB 傳回與此雲端相關聯的 BLOB

 

PNRP 和 BLOB

PNRP 和 WSALookupServiceEnd

PNRP 和 WSALookupServiceNext

PNRP 和 WSANSPIoctl

PNRP 和 WSAQUERYSET

PNRPCLOUDINFO

PNRPINFO

PNRP NSP 錯誤碼