サービス クエリ

名前サービス クエリには、 NSPLookupServiceBegin という一連の呼び出しが含まれます。その後、 NSPLookupServiceNext への 1 つ以上の呼び出しが続き、 NSPLookupServiceEnd の呼び出しで終わる必要があります。 NSPLookupServiceBegin は、クエリ パラメーターと一連のフラグを定義して検索操作をさらに制御するために 、WSAQUERYSET 構造体を入力として受け取ります。 これは、 NSPLookupServiceNext と NSPLookupServiceEnd の後続の呼び出しで使用されるクエリ ハンドル を返します

名前空間 SPI クライアントは NSPLookupServiceNext を呼び出してクエリ結果を取得し、結果はクライアント提供の WSAQUERYSET バッファーに指定します。 クライアントは、すべての結果が取得されたことを示すエラー コード WSA_E_NO_MOREが返されるまで 、NSPLookupServiceNext を呼び出し続けます。 その後、 NSPLookupServiceEnd の呼び出しによって検索が終了します。 NSPLookupServiceEnd 関数を使用して、別のスレッドから呼び出されたときに、現在保留中の NSPLookupServiceNext を取り消すこともできます。

Windows ソケット 2 では、WSAENOMORE (10102) と WSA_E_NO_MORE (10110) に対して競合するエラー コードが定義されています。 エラー コード WSAENOMORE は将来のバージョンで削除され、WSA_E_NO_MOREのみが残ります。 名前空間プロバイダーは、可能な限り幅広いアプリケーションとの互換性を維持するために、できるだけ早くWSA_E_NO_MOREエラー コードの使用に切り替える必要があります。