WSAQUERYSETW 構造体 (winsock2.h)

WSAQUERYSET 構造体は、サービス クラス ID、サービス名、適用可能な名前空間識別子とプロトコル情報、サービスがリッスンするトランスポート アドレスのセットなど、特定のサービスに関する関連情報を提供します。

構文

typedef struct _WSAQuerySetW {
  DWORD         dwSize;
  LPWSTR        lpszServiceInstanceName;
  LPGUID        lpServiceClassId;
  LPWSAVERSION  lpVersion;
  LPWSTR        lpszComment;
  DWORD         dwNameSpace;
  LPGUID        lpNSProviderId;
  LPWSTR        lpszContext;
  DWORD         dwNumberOfProtocols;
  LPAFPROTOCOLS lpafpProtocols;
  LPWSTR        lpszQueryString;
  DWORD         dwNumberOfCsAddrs;
  LPCSADDR_INFO lpcsaBuffer;
  DWORD         dwOutputFlags;
  LPBLOB        lpBlob;
} WSAQUERYSETW, *PWSAQUERYSETW, *LPWSAQUERYSETW;

メンバー

dwSize

型: DWORD

WSAQUERYSET 構造体のサイズ (バイト単位)。 このメンバーは、 WSAQUERYSET 構造体のサイズが新しいバージョンの Windows で変更されたため、バージョン管理メカニズムとして使用されます。

lpszServiceInstanceName

種類: LPTSTR

サービス名を含む NULL で終わる省略可能な文字列へのポインター。 文字列内でワイルドカードを使用するためのセマンティクスは定義されていませんが、特定の名前空間プロバイダーでサポートできます。

lpServiceClassId

種類: LPGUID

サービス クラスに対応する GUID。 このメンバーを設定する必要があります。

lpVersion

型: LPWSAVERSION

名前空間プロバイダーの必要なバージョン番号 (省略可能) へのポインター。 このメンバーは、バージョン比較セマンティクスを提供します (つまり、要求されたバージョンが正確に一致する必要があります。または、version は指定された値より小さくなければなりません)。

lpszComment

種類: LPTSTR

このメンバーはクエリでは無視されます。

dwNameSpace

型: DWORD

クエリを実行する名前空間プロバイダーを決定する名前空間識別子。 特定の名前空間識別子を渡すと、指定した名前空間をサポートする名前空間プロバイダーのみがクエリされます。 NS_ALLを指定すると、すべてのインストール済みおよびアクティブな名前空間プロバイダーが照会されます。

dwNameSpace メンバーのオプションは、Winsock2.h インクルード ファイルに一覧表示されます。 Windows Vista 以降には、いくつかの新しい名前空間プロバイダーが含まれています。 他の名前空間プロバイダーをインストールできるため、次の使用可能な値は一般的に使用できる値のみです。 その他の多くの値を使用できます。

意味
NS_ALL
すべてのインストール済み名前空間とアクティブな名前空間。
NS_BTH
Bluetooth 名前空間。 この名前空間識別子は、Windows Vista 以降でサポートされています。
NS_DNS
ドメイン ネーム システム (DNS) 名前空間。
NS_EMAIL
電子メール名前空間。 この名前空間識別子は、Windows Vista 以降でサポートされています。
NS_NLA
ネットワークロケーション認識 (NLA) 名前空間。 この名前空間識別子は、Windows XP 以降でサポートされています。
NS_PNRPNAME
特定のピア名のピア ツー ピアのネーム スペース。 この名前空間識別子は、Windows Vista 以降でサポートされています。
NS_PNRPCLOUD
ピア名のコレクションのピアツーピア名前空間。 この名前空間識別子は、Windows Vista 以降でサポートされています。

lpNSProviderId

種類: LPGUID

複数の名前空間プロバイダーが NS_DNS などの 1 つの名前空間に登録されている場合にクエリを実行する、特定の名前空間プロバイダーのオプションの GUID へのポインター。 特定の名前空間プロバイダーに GUID を渡すと、指定された名前空間プロバイダーのみがクエリされます。 WSAEnumNameSpaceProviders 関数と WSAEnumNameSpaceProvidersEx 関数を呼び出して、名前空間プロバイダーの GUID を取得できます。

lpszContext

種類: LPTSTR

階層型名前空間内のクエリの任意の開始点へのポインター。

dwNumberOfProtocols

型: DWORD

プロトコル制約配列のサイズ (バイト単位)。 このメンバーは 0 にすることができます。

lpafpProtocols

型: LPAFPROTOCOLS

AFPROTOCOLS 構造体の省略可能な配列へのポインター。 これらのプロトコルを利用するサービスのみが返されます。

lpszQueryString

種類: LPTSTR

NULL で終わる省略可能なクエリ文字列へのポインター。 Whois++ などの一部の名前空間では、単純なテキスト文字列に含まれる強化された SQL のようなクエリがサポートされています。 このパラメーターは、その文字列を指定するために使用されます。

dwNumberOfCsAddrs

型: DWORD

このメンバーはクエリでは無視されます。

lpcsaBuffer

種類: LPCSADDR_INFO

このメンバーはクエリでは無視されます。

dwOutputFlags

型: DWORD

このメンバーはクエリでは無視されます。

lpBlob

型: LPBLOB

プロバイダー固有の名前空間情報のクエリまたは設定に使用されるデータへの省略可能なポインター。 この情報の形式は、名前空間プロバイダーに固有です。

注釈

WSAQUERYSET 構造体は、Windows 95 以降で使用できる元の名前空間プロバイダー バージョン 1 アーキテクチャの一部として使用されます。 新しいバージョン 2 の名前空間アーキテクチャは、Windows Vista 以降で使用できます。

ほとんどの場合、特定のトランスポート プロトコルのみに関心があるアプリケーションでは、名前空間ではなくアドレス ファミリとプロトコルによってクエリを制限する必要があります。 これにより、TCP/IP サービスを検索する必要があるアプリケーションが、たとえば、ローカル ホスト ファイル、DNS、NIS などの使用可能なすべての名前空間によってクエリを処理できるようになります。

注意

winsock2.h ヘッダーは、UNICODE プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択するエイリアスとして WSAQUERYSET を定義します。 encoding-neutral エイリアスの使用を encoding-neutral ではないコードと混在すると、コンパイル エラーまたはランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「 関数プロトタイプの規則」を参照してください。

要件

要件
サポートされている最小のクライアント Windows 2000 Professional [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows 2000 Server [デスクトップ アプリのみ]
Header winsock2.h

こちらもご覧ください

デバイス照会用の Bluetooth と WSAQUERYSET

Bluetooth と WSAQUERYSET for Service Inquiry

Set Service の Bluetooth と WSAQUERYSET

WSAEnumNameSpaceProviders

WSAEnumNameSpaceProvidersEx

WSALookupServiceBegin

WSALookupServiceNext

WSAQUERYSET2

WSASetService