_BRB_L2CA_REGISTER_SERVER 構造体 (bthddi.h)
プロファイル ドライバーは、_BRB_L2CA_REGISTER_SERVER構造を使用して、リモート Bluetooth デバイスから L2CAP 接続を受信できるサーバーとして自身を登録します。
構文
struct _BRB_L2CA_REGISTER_SERVER {
BRB_HEADER Hdr;
BTH_ADDR BtAddress;
USHORT PSM;
ULONG IndicationFlags;
PFNBTHPORT_INDICATION_CALLBACK IndicationCallback;
PVOID IndicationCallbackContext;
PVOID ReferenceObject;
OUT L2CAP_SERVER_HANDLE ServerHandle;
};
メンバー
Hdr
現在の BRB に関する情報を含む BRB_HEADER 構造体。
BtAddress
通知を受信するリモート Bluetooth デバイスのアドレス。 受信接続の通知を受信するBTH_ADDR_NULLを指定します。
PSM
接続要求を受け入れるプロトコル/サービス マルチプレクサー (PSM)。
IndicationFlags
オプションのフラグ、またはプロファイル ドライバーが接続通知に加えてペアリング通知を受け入れるかどうかを示すフラグの組み合わせ。 次の表に、使用可能なフラグの設定を示します。
フラグ | 説明 |
---|---|
INDICATION_PAIR_DEVICE | プロファイル ドライバーは、デバイスがペアリングされたときに通知を受け入れます。 |
INDICATION_UNPAIR_DEVICE | プロファイル ドライバーは、デバイスがペアリング解除されたときに通知を受け入れます。 |
INDICATION_UNPERSONALIZE_DEVICE | プロファイル ドライバーは、デバイスが偽装されていない場合に通知を受け入れます。 |
IndicationCallback
プロファイル ドライバーによって実装される L2CAP コールバック関数。Bluetooth ドライバー スタックが呼び出して、受信 L2CAP 接続についてプロファイル ドライバーに通知する必要があります。
IndicationCallbackContext
IndicationCallback メンバーで指定されたコールバック関数に渡されるコンテキスト。
ReferenceObject
参照カウントを維持するために ObReferenceObject 関数と ObDereferenceObject 関数に渡すオブジェクトへのポインター。 プロファイル ドライバーは、ドライバー スタックが IndicationCallback メンバーで指定されたコールバック関数を呼び出すことができる限り、Bluetooth ドライバー スタックがオブジェクトの数を増やすように、このオブジェクトを提供する必要があります。 プロファイル ドライバーが をビルドして送信 すると、Bluetooth ドライバー スタックによってオブジェクトの参照カウントが減少します。 BRB_L2CA_UNREGISTER_SERVER 要求。
ServerHandle
正常に返された場合は、L2CAP サーバーを処理します。 プロファイル ドライバーがリモート接続の指示を受け取らなくなった場合は、このハンドルを に渡す必要があります BRB_L2CA_UNREGISTER_SERVER。
注釈
自身を L2CAP サーバーとして登録するには、プロファイル ドライバーで をビルドして送信 する必要があります。 BRB_L2CA_REGISTER_SERVER 要求。
プロファイル ドライバー自体を登録した後、Bluetooth ドライバー スタックが PSM からの接続を受け入れるように、BRB_REGISTER_PSM要求をビルドして送信する必要があります。
成功した場合、Bluetooth ドライバー スタックは、リモート デバイスが特定の PSM 上のプロファイル ドライバーへの L2CAP 接続を作成しようとしたときに、プロファイル ドライバーに通知できます。
プロファイル ドライバーは、_BRB_L2CA_REGISTER_SERVER構造体の Psm メンバーを 0 に指定できます。つまり、PSM が指定されていないことを意味します。その後、プロファイル ドライバーは BRB_REGISTER_PSM BRB を発行して、接続通知に登録する動的 PSM を取得します。 PSM の詳細については、「 _BRB_PSM」を参照してください。
プロファイル ドライバー自体が登録されると、Bluetooth ドライバー スタックは、プロファイル ドライバーが実装し、IndicationCallback メンバーで指定する L2CAP コールバック関数を呼び出すことによって、リモート デバイスがそれに接続しようとしたときに通知できます。
L2CAP サーバーと PSM の詳細については、「Bluetooth プロファイル ドライバーでの L2CAP Connectionsの受け入れ」を参照してください。
プロファイル ドライバーは、接続試行の通知を受け取ると、 を ビルドして送信 する必要があります。 BRB_L2CA_OPEN_CHANNEL_RESPONSE BRB は、接続の試行を受け入れるか拒否します。 L2CAP 接続試行の受け入れまたは拒否の詳細については、 _BRB_L2CA_OPEN_CHANNEL 構造体を参照してください。
接続が確立されると、プロファイル ドライバーは他の BRB を発行してリモート デバイスと通信できます。
リモート接続通知の受信を停止するには、プロファイル ドライバーで を ビルドして送信 する必要があります。 BRB_L2CA_UNREGISTER_SERVER 要求。
この手順により、プロファイル ドライバーは受信接続要求を受け入れますが、SDP を使用してサービスを自動的にアドバタイズすることはありません。 SDP を使用してサービスをアドバタイズするには、プロファイル ドライバーが SDP API を使用して SDP レコードを送信する必要があります。 SDP を使用した広告サービスの詳細については、「 SDP サーバーとの通信」を参照してください。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | バージョン:Windows Vista 以降の_Supported。 |
Header | bthddi.h (Bthddi.h を含む) |