WSAQUERYSETA 構造体 (winsock2.h)
WSAQUERYSET 構造体は、サービス クラス ID、サービス名、適用可能な名前空間識別子とプロトコル情報、サービスがリッスンするトランスポート アドレスのセットなど、特定のサービスに関する関連情報を提供します。
構文
typedef struct _WSAQuerySetA {
DWORD dwSize;
LPSTR lpszServiceInstanceName;
LPGUID lpServiceClassId;
LPWSAVERSION lpVersion;
LPSTR lpszComment;
DWORD dwNameSpace;
LPGUID lpNSProviderId;
LPSTR lpszContext;
DWORD dwNumberOfProtocols;
LPAFPROTOCOLS lpafpProtocols;
LPSTR lpszQueryString;
DWORD dwNumberOfCsAddrs;
LPCSADDR_INFO lpcsaBuffer;
DWORD dwOutputFlags;
LPBLOB lpBlob;
} WSAQUERYSETA, *PWSAQUERYSETA, *LPWSAQUERYSETA;
メンバー
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 以降には、いくつかの新しい名前空間プロバイダーが含まれています。 他の名前空間プロバイダーをインストールできるため、次の使用可能な値は一般的に使用できる値のみです。 その他の多くの値を使用できます。
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