WSALookupServiceNextA 関数 (winsock2.h)
プロバイダーは、lpqsResults バッファー内の WSAQUERYSET 構造体を返します。 クライアントは、wsAQUERYSET がすべて返されたことを示すWSA_E_NO_MOREが返されるまで、この関数
構文
INT WSAAPI WSALookupServiceNextA(
[in] HANDLE hLookup,
[in] DWORD dwControlFlags,
[in, out] LPDWORD lpdwBufferLength,
[out] LPWSAQUERYSETA lpqsResults
);
パラメーター
[in] hLookup
WSALookupServiceBeginを
[in] dwControlFlags
操作を制御するフラグのセット。 WSALookupServiceBegin 関数に dwControlFlags パラメーターで渡される値によって、使用可能な条件が決まります。 dwControlFlags パラメーターで WSALookupServiceNext 関数に渡される値は、サービス参照の条件をさらに制限します。
現在、LUP_FLUSHPREVIOUSは、大きすぎる結果セットに対処するための手段として定義されています。 アプリケーションが十分な大きさのバッファーを提供しない (または提供できない) 場合、LUP_FLUSHPREVIOUS設定は、最後の結果セット (大きすぎた) を破棄し、この呼び出しの次のセットに進むようプロバイダーに指示します。
dwControlFlags パラメーターでサポートされる値は、Winsock2.h ヘッダー ファイルで定義されており、次のオプションを組み合わせて使用できます。
旗 | 意味 |
---|---|
|
最初のレベルではなく、深いクエリ。 |
|
コンテナーのみを返します。 |
|
コンテナーを返さないでください。 |
|
可能であれば、結果を距離の順序で返します。 距離のメジャーはプロバイダー固有です。 |
|
lpszServiceInstanceName |
|
lpServiceClassId |
|
lpVersionとしてバージョン |
|
lpszCommentとしてコメント |
|
lpcsaBuffer |
|
lpBlobとしてプライベート データ |
|
使用可能なエイリアス情報は、WSALookupServiceNext |
|
要求に使用されるクエリ文字列を取得します。 |
|
すべてのLUP_RETURN_* 値を取得するフラグのセット。 |
|
WSALookupServiceNextの |
|
プロバイダーが情報をキャッシュしている場合は、キャッシュを無視し、名前空間自体にクエリを実行します。 |
|
これは、素応答が構造体のリモート部分とローカル部分のどちらにあるかを示 CSADDR_INFO。 どちらの場合も、もう 1 つの部分を使用できる必要があります。 |
[in, out] lpdwBufferLength
入力時に、lpqsResults
[out] lpqsResults
メモリ ブロックへのポインター。このポインターには、WSAQUERYSET 構造体に 1 つの結果セットが含まれます。
戻り値
操作が成功した場合、戻り値は 0 です。 それ以外の場合は、SOCKET_ERROR値が返され、WSAGetLastError
エラー コード | 意味 |
---|---|
この呼び出し 処理中に WSALookupServiceEnd の呼び出しが行われました。 呼び出しが取り消されました。
lpqsResults バッファー内のデータは未定義です。 Windows ソケット バージョン 2 では、WSAECANCELLED (10103) と |
|
使用できるデータはこれ以上ありません。 Windows ソケット バージョン 2 では、WSAENOMORE (10102) と |
|
|
lpqsResults バッファーが小さすぎて、WSAQUERYSET セットを含めできませんでした。 |
|
1 つ以上の必須パラメーターが無効であるか、不足していました。 |
指定されたルックアップ ハンドルが無効です。 | |
|
WS2_32.DLLが初期化されていません。 アプリケーションは、Windows ソケット関数を呼び出す前 WSAStartup を最初に呼び出す必要があります。 |
データベースに名前が見つかりましたが、指定された制限に一致するデータが見つかりませんでした。 | |
操作を実行するためのメモリが不足していました。 |
備考
この関数で指定された
dwControlFlags LUP_FLUSHPREVIOUS とLUP_RES_SERVICE
たとえば、WSALookupServiceBegin でLUP_RETURN_VERSIONが指定 場合、サービス プロバイダーはバージョンを含むレコードを取得します。 WSALookupServiceNext
たとえば、LUP_RETURN_BLOBが WSALookupServiceBegin
クエリ結果の
次の表は、WSAQUERYSET 構造体WSAQUERYSET メンバー | 結果の解釈 |
---|---|
dwSize を |
sizeof( WSAQUERYSET) に設定されます。 これはバージョン管理メカニズムとして使用されます。 |
dwOutputFlags を |
RESULT_IS_ALIASフラグは、これがエイリアスの結果であることを示します。 |
lpszServiceInstanceName を |
参照される文字列には、サービス名が含まれています。 |
lpServiceClassId を |
サービス クラスに対応する GUID。 |
lpVersion | 特定のサービス インスタンスのバージョン番号を参照します。 |
lpszComment を |
サービス インスタンスで指定されたオプションのコメント文字列。 |
dwNameSpace を |
サービス インスタンスが見つかった名前空間。 |
lpNSProviderId を |
このクエリ結果を提供した特定の名前空間プロバイダーを識別します。 |
lpszContext を |
サービスが配置されている階層型名前空間のコンテキスト ポイントを指定します。 |
dwNumberOfProtocols を |
結果に対して未定義です。 |
lpafpProtocols を |
結果に対して未定義の場合、必要なすべてのプロトコル情報は CSADDR_INFO 構造体にあります。 |
lpszQueryString を |
dwControlFlags |
dwNumberOfCsAddrs を |
CSADDR_INFO 構造体の配列内の要素の数を示します。 |
lpcsaBuffer を |
各要素内に 1 つの完全なトランスポート アドレスが含まれる、CSADDR_INFO 構造体の配列へのポインター。 |
lpBlob を |
(省略可能)これは、プロバイダー固有のエンティティへのポインターです。 |
Windows Phone 8:WSALookupServiceNextW 関数は、Windows Phone 8 以降の Windows Phone ストア アプリでサポートされています。
手記
winsock2.h ヘッダーは、UNICODE プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択するエイリアスとして WSALookupServiceNext を定義します。 エンコードに依存しないエイリアスをエンコードに依存しないコードと組み合わせて使用すると、コンパイルエラーやランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「関数プロトタイプの 規則」を参照してください。
必要条件
要件 | 価値 |
---|---|
サポートされる最小クライアント | Windows 8.1、Windows Vista [デスクトップ アプリ |UWP アプリ] |
サポートされる最小サーバー | Windows Server 2003 [デスクトップ アプリ |UWP アプリ] |
ターゲット プラットフォーム の |
ウィンドウズ |
ヘッダー | winsock2.h |
ライブラリ | Ws2_32.lib |
DLL | Ws2_32.dll |
関連項目
Bluetooth と WSALookupServiceNext
WSALookupServiceBegin の
WSALookupServiceEnd を
WSAQUERYSET の