PNRP と WSALookupServiceNext
PNRP では、 WSALookupServiceNext 関数を使用して、 WSALookupServiceBegin の以前の呼び出しで指定されたクエリと一致します。 WSALookupServiceNext 関数の結果は、最初の WSALookupServiceBegin 関数呼び出しで渡された WSAQUERYSET 構造体の設定によって決まります。 この関数は、次の 2 つの関数を実行するために使用されます。
- ピア名をアドレスの一覧に解決する
- ネットワーク クラウドの列挙
WSANSPIoctl を使用すると、ルックアップ サービスを非同期的に使用できます。 ルックアップ サービス関数を非同期的に使用する方法については、「 PNRP と WSANSPIoctl」を参照してください。
WSANSPIoctl が呼び出された場合でも、WSALookupServiceNext 関数はブロックします。 WSALookupServiceNext を呼び出す前に、ブロックが問題である場合、アプリケーションは通知を受け取るまで待機する必要があります。
ピア名をアドレスの一覧に解決する
ピア名をアドレスのリストに解決する場合、lpqsResults パラメーターで返される LPWSAQUERYSET 構造体には、次の値が含まれます。
-
Dwsize
-
構造体のサイズを返します。
-
lpszServiceInstanceName
-
ピア名 ( LUP_RETURN_NAME、 LUP_RETURN_ALL、または NULL が 指定されている場合) を返します。
-
lpServiceClassID
-
SVCID_PNRPNAMEを返します。
-
lpVersion
-
NULL を返します。
-
lpszComment
-
LUP_RETURN_COMMENT、LUP_RETURN_ALL、または NULL が指定されている場合は、コメントを返します。
-
dwNameSpace
-
NS_PNRPNAMEを返します。
-
lpNSProviderID
-
NS_PROVIDER_PNRPNAMEを返します。
-
lpszContext
-
LUP_RETURN_NAME、LUP_RETURN_ALL、または NULL が指定されている場合は、クラウド名を返します。
-
dwNumberOfProtocols
-
ゼロ (0) を返します。
-
lpszQueryString
-
NULL を返します。
-
dwNumberOfCsAddrs
-
LUP_RETURN_ADDR、LUP_RETURN_ALL、または NULL が指定されている場合に、CSADDR_INFO配列内のエントリ数を返します。 この値と lpcsaBuffer の情報は、この構造体で返される情報のキー ビットです。
-
lpcsaBuffer
-
LUP_RETURN_ADDR、LUP_RETURN_ALL、または NULL が指定されている場合は、CSADDR_INFO構造体の配列へのポインターを返します。 このバッファーと dwNumberOfCsAddrs の値は、この構造体で返されるキー情報ビットです。
-
dwOutputFlags
-
ゼロ (0) を返します。
-
lpBlob
-
NULL を返します。
ネットワーク クラウドの列挙
クラウドを列挙する場合、lpqsResults パラメーターで返される LPWSAQUERYSET 構造体には、次の値が含まれます。
-
Dwsize
-
構造体のサイズを返します。
-
lpszServiceInstanceName
-
クラウド名を返 します。LUP_RETURN_NAME、 LUP_RETURN_ALL、または NULL が 指定されている場合。
-
lpServiceClassID
-
SVCID_PNRPCLOUDを返します。
-
lpVersion
-
NULL を返します。
-
lpszComment
-
NULL を返します。
-
dwNameSpace
-
NS_PNRPCLOUDを返します。
-
lpNSProviderID
-
NS_PROVIDER_PNRPCLOUDを返します。
-
lpszContext
-
NULL を返します。
-
dwNumberOfProtocols
-
ゼロ (0) を返します。
-
lpszQueryString
-
NULL を返します。
-
dwNumberOfCsAddrs
-
ゼロ (0) を返します。
-
lpcsaBuffer
-
NULL を返します。
-
dwOutputFlags
-
ゼロ (0) を返します。
-
lpBlob
-
LUP_RETURN_BLOB、LUP_RETURN_ALL、または NULL が指定されている場合は、PNRPCLOUDINFO 構造体を指す BLOB 構造体へのポインターを返します。
PNRPCLOUDINFO 構造体
クラウド名を列挙すると、 PNRPCLOUDINFO 構造体で次の値が返されます。
-
Dwsize
-
この構造のサイズ。
-
クラウド
-
実際のクラウド値。
-
enCloudState
-
クラウドの現在の状態。 PNRP_CLOUD_STATE 有効な値を指定します。
-
enCloudFlags
-
クラウド名がネットワーク上で有効であるか、現在のコンピューターでのみ有効であることを示します。 PNRP_CLOUD_FLAGS 有効な値を指定します。 一部のクラウド名は、同じネットワーク上の任意のコンピューターで有効です。 その他のクラウド名は、現在のコンピューターでのみ有効であり、一定期間のみ有効な場合があります。
- enCloudFlags が PNRP_CLOUD_NAME_LOCAL に設定されている場合、名前はローカルでのみ有効です。
- enCloudFlags が設定されていない場合は、クラウド名を他のコンピューターに転送できます。
関連トピック