サービスを設定するためのBluetoothとWSAQUERYSET
Bluetoothでは、Bluetooth名前空間のデバイスとサービスの検出を容易にするために、WSAQUERYSET構造体を使用してNS_BTHします。
WSASetService関数は、WSAQUERYSET構造体を使用して、Bluetooth名前空間のサービスインスタンスを登録または削除します。 次の表に、WSAQUERYSET構造体のメンバー値を示します。
メンバー | 必須の値 (入力) | 出力 |
---|---|---|
dwSize | sizeof(WSAQUERYSET) に設定する必要があります。 バージョン管理メカニズムとして使用されます。 | なし。 |
dwOutputFlags | 使用しません。 | なし。 |
lpszServiceInstanceName | 省略可能ですが、指定することをお勧めします。 Bluetooth ServiceName属性の構築に使用されます。 | なし。 |
lpServiceClassId | 必須。 サービスクラスに対応するGUID。 この値は、既知のプロファイルのBluetooth割り当て番号ドキュメントのGUID、またはプロファイルベースではないアプリケーションのアプリケーションで生成された一意のUUIDに対応する必要があります。 これを唯一のメンバーとしてServiceClassIdList属性シーケンスを構築するために使用されます。 | なし。 |
lpVersion | 使用しません。 | なし。 |
lpszComment | 省略可能。 Bluetooth ServiceDescription属性の構築に使用されます。 | なし。 |
dwNameSpace | サービスを制限する名前空間。 NS_BTHにする必要があります。 | なし。 |
lpNSProviderId | 不要。 | なし。 |
lpszContext | 使用しません。 | なし。 |
dwNumberOfProtocols | 使用しません。 | なし。 |
lpafpプロトコル | 使用しません。 | なし。 |
lpszQueryString | 使用しません。 | なし。 |
dwNumberOfCsAddrs | 登録するアドレスの数。 1 にする必要があります。 | なし。 |
lpcsaBuffer | lpBlobに生のSDPストリームが設定されていない場合は必須です。 サーバーが接続をリッスンしているSOCKADDR_BTHを指すLocalAddr.lpSockaddrメンバーを持つCSADDR_INFO構造体へのポインター。 Getsockname関数を使用すると、バインドされたソケットのSOCKADDR_BTH構造体を返すことができます。 LpcsaBufferメンバーの情報は、Bluetooth ProtocolDescriptorList SDP属性を構築するためにシステムによって使用されます。 LpcsaBufferで提供されるプロトコルとポートは一意である必要があります (以前に登録されていない) 。また、後続の呼び出しで削除するレコードのインデックスを作成するために使用されます。 SDPレコードのBluetooth ProtocolDescriptorList属性を構築するために使用されます。 | なし。 |
lpBlob | 省略可能。 BTH_SET_SERVICE構造体を指すBLOB構造体へのポインター。これにより、クライアントは、アプリケーションによって構築されたバイナリSDPレコードを含むBluetooth固有の構造体を提供できます。 LpBlobがWSASetService関数に指定されている場合、dwSizeとdwNameSpaceを除くWSAQUERYSET構造体の他のすべてのメンバーは無視されます。 詳細については、 「BluetoothとBLOB」 を参照してください。 限られた数のSDP属性をWSAQUERYSET構造体から変換でき、文字列は既定の言語UTF-8エンコードにのみ変換されるため、多くの場合、バイナリSDPレコードを送信する必要があります。 | 省略可能なBLOBとBTH_SET_SERVICE構造体が入力時に指定されている場合は、BTH_SET_SERVICEによってポイントされる必要があるULONGバージョンとハンドル値と共に、Bluetooth Windows SocketsプロバイダーのBTH_SDP_VERSION値を含むようにバージョンが更新され、ハンドルが提供されます。これは、後でレコードを削除するために必要です。 |
Note
サービスを削除するには、BTH_SET_SERVICE構造体に必要なメンバーは、pSdpVersionメンバーとpRecordHandleメンバーだけです。
関連トピック