_BRB_L2CA_OPEN_ENHANCED_CHANNEL 構造体 (bthddi.h)
_BRB_L2CA_OPEN_ENHANCED_CHANNEL構造体は、拡張 L2CAP チャネルをリモート デバイスに開くか、リモート デバイスによって開始された着信拡張 L2CAP 接続要求を受け入れる/拒否するための応答を送信するために使用されます。
構文
struct _BRB_L2CA_OPEN_ENHANCED_CHANNEL {
BRB_HEADER Hdr;
L2CAP_CHANNEL_HANDLE ChannelHandle;
union {
struct {
USHORT Response;
USHORT ResponseStatus;
};
USHORT Psm;
};
ULONG ChannelFlags;
BTH_ADDR BtAddress;
struct {
ULONG Flags;
L2CAP_CONFIG_VALUE_RANGE Mtu;
L2CAP_CONFIG_VALUE_RANGE FlushTO;
L2CAP_FLOWSPEC Flow;
USHORT LinkTO;
ULONG NumExtraOptions;
PL2CAP_CONFIG_OPTION ExtraOptions;
struct {
UCHAR ServiceType;
ULONG Latency;
} LocalQos;
struct {
ULONG Flags;
L2CAP_RETRANSMISSION_AND_FLOW_CONTROL RetransmissionAndFlow;
} ModeConfig;
USHORT Fcs;
L2CAP_EXTENDED_FLOW_SPEC ExtendedFlowSpec;
USHORT ExtendedWindowSize;
} ConfigOut;
struct {
ULONG Flags;
L2CAP_CONFIG_VALUE_RANGE Mtu;
L2CAP_CONFIG_RANGE FlushTO;
} ConfigIn;
ULONG CallbackFlags;
PFNBTHPORT_INDICATION_CALLBACK_ENHANCED Callback;
PVOID CallbackContext;
PVOID ReferenceObject;
CHANNEL_CONFIG_RESULTS_ENHANCED OutResults;
CHANNEL_CONFIG_RESULTS_ENHANCED InResults;
UCHAR IncomingQueueDepth;
PVOID Reserved;
};
メンバー
Hdr
現在の BRB に関する情報を含む BRB_HEADER 構造体。
ChannelHandle
正常な接続時に接続を識別するために使用されるハンドル。 BRB_L2CA_OPEN_CHANNELを送信すると、BRB が完了すると入力されます。 BRB_L2CA_OPEN_CHANNEL_RESPONSE要求を送信する場合は、BRB を送信する前に、サーバーが要求を入力する必要があります。 割り当てられる値は、 INDICATION_PARAMETERS::ConnectionHandle
IndicationRemoteConnect 中に渡された 値である必要があります。
Response
BRB_L2CA_OPEN_CHANNEL_RESPONSEでのみ使用されます。 CONNECT_RSP_RESULT_Xxx値の 1 つが使用されます。
BRB が STATUS_REQUEST_NOT_ACCEPTED の状態で を返す場合、 Response にはリモート ホストからの否定応答が含まれます。
ResponseStatus
Response がCONNECT_RSP_RESULT_PENDINGと等しい場合、このフィールドは有効です。 CONNECT_RSP_STATUS_XXX値の 1 つが使用されます。
Psm
チャネルがリモート デバイスへの接続に使用するプロトコル/サービス マルチプレクサー (PSM)。 BRB_L2CA_OPEN_ENHANCED_CHANNEL要求と共に使用すると、このメンバーは入力フィールドとして設定されます。 BRB_L2CA_OPEN_ENHANCED_CHANNEL_RESPONSE要求と共に使用する場合、このメンバーは出力フィールドとして使用されます。
ChannelFlags
開くチャネルの要件を指定するフラグ。 有効なフラグ値を次の表に示します。
フラグ | 説明 |
---|---|
CF_LINK_AUTHENTICATED | リンクを認証する必要があります。 |
CF_LINK_ENCRYPTED | リンクは暗号化する必要があります。 このフラグを設定すると、CF_LINK_AUTHENTICATED フラグも設定されます。 |
CF_LINK_SUPPRESS_PIN | プロファイル ドライバーは、ユーザーに PIN の入力を求めないことを示します。 |
BtAddress
接続の対象となるデバイスの Bluetooth アドレス。
ConfigOut
リモート デバイスに送信される BRB_L2CA_OPEN_ENHANCED_CHANNEL BRB のパラメーター設定を含むサブ構造体。
ConfigOut.Flags
開くチャネルの要件を指定するフラグ。 有効なフラグ値を次の表に示します。
フラグ | 説明 |
---|---|
CF_LINK_AUTHENTICATED | リンクを認証する必要があります。 |
CF_LINK_ENCRYPTED | リンクは暗号化する必要があります。 このフラグを設定すると、CF_LINK_AUTHENTICATED フラグも設定されます。 |
CF_LINK_SUPPRESS_PIN | プロファイル ドライバーは、ユーザーに PIN の入力を求めないことを示します。 |
CFG_ENHANCED | ModeConfig 構造体が有効であることを指定します。 |
CFG_FCS | Fcs 値が有効であることを指定します。 |
ConfigOut.Mtu
チャネルの送信半分のサイズをネゴシエートするために使用されるメッセージ転送ユニット (MTU) の範囲。
ConfigOut.FlushTO
チャネルの送信半分のフラッシュ タイムアウトに使用できる値の範囲。
ConfigOut.Flow
将来利用するために予約されています。 使用しないでください。
ConfigOut.LinkTO
リンク マネージャーのリンクタイムアウト。
ConfigOut.NumExtraOptions
ExtraOptions メンバーに含まれる配列項目の数。 ほとんどのクライアントでは、この値は 0 にする必要があります。
ConfigOut.ExtraOptions
その他のオプション。 ほとんどのクライアントでは、この値は 0 にする必要があります。
ConfigOut.LocalQos
将来利用するために予約されています。 使用しないでください。
ConfigOut.LocalQos.ServiceType
将来利用するために予約されています。 使用しないでください。
ConfigOut.LocalQos.Latency
将来利用するために予約されています。 使用しないでください。
ConfigOut.ModeConfig
開く L2CAP チャネルの種類を指定します。 この構造体は、CFG_ENHANCED フラグが指定されている場合にのみ有効です。
ConfigOut.ModeConfig.Flags
要求される L2CAP チャネル モードの種類を指定します。
フラグ | 説明 |
---|---|
CM_BASIC | 基本モード チャネルを開きます。 |
CM_RETRANSMISSION_AND_FLOW | 拡張再送信モード チャネルを開きます。 |
CM_STREAMING | ストリーミング モード チャネルを開きます。 |
ConfigOut.ModeConfig.RetransmissionAndFlow
CM_RETRANSMISSION_AND_FLOWモードとCM_STREAMINGモードのオプションを指定します。 Flags メンバーでCM_BASICのみが指定されている場合、この構造体は 0 である必要があります。
RetransmissionAndFlow の Mode サブメンバーを 0 に設定する必要があります。 開くチャネルの種類を指定するには、RetransmissionAndFlow の ModeConfig サブメンバーを使用します。
ConfigOut.Fcs
拡張 L2CAP チャネルに FCS を使用するかどうかを指定します。 この値は、 flags メンバーで CM_RETRANSMISSION_AND_FLOW または CM_STREAMING フラグが指定されている場合にのみ有効です。
ConfigOut.ExtendedFlowSpec
サポートされていません。
ConfigOut.ExtendedWindowSize
サポートされていません。
ConfigIn
リモート デバイスから送信される受信 BRB_L2CA_OPEN_ENHANCED_CHANNEL_RESPONSE BRB を検証するためのパラメーター設定を含むサブ構造体。
ConfigIn.Flags
開くチャネルの要件を指定するフラグ。 有効なフラグ値を次の表に示します。
フラグ | 説明 |
---|---|
CF_LINK_AUTHENTICATED | リンクを認証する必要があります。 |
CF_LINK_ENCRYPTED | リンクは暗号化する必要があります。 このフラグを設定すると、CF_LINK_AUTHENTICATED フラグも設定されます。 |
CF_LINK_SUPPRESS_PIN | プロファイル ドライバーは、ユーザーに PIN の入力を求めないことを示します。 |
ConfigIn.Mtu
チャネルの受信半分のサイズをネゴシエートするために使用されるメッセージ転送ユニット (MTU) の範囲。
ConfigIn.FlushTO
チャネルの受信半分のフラッシュ タイムアウトに使用できる値の範囲。
CallbackFlags
イベントが発生したことをプロファイル ドライバーに通知するコールバック ルーチンを生成する必要があるイベントを指定するフラグ。 有効なフラグ値を次の表に示します。
フラグ | 説明 |
---|---|
CALLBACK_CONFIG_EXTRA_IN | 設定した場合、リモート デバイスの構成要求に追加のオプションが含まれている場合、コールバック ルーチンが呼び出されます。 設定されていない場合、追加の構成オプションは不明なオプションとして拒否されます。 このフラグは、 BRB_L2CA_OPEN_ENHANCED_CHANNEL_RESPONSE BRB と共に使用されます。 |
CALLBACK_CONFIG_EXTRA_OUT | 設定した場合、リモート デバイスが BRB_L2CA_OPEN_ENHANCED_CHANNEL 要求から追加の構成オプションを拒否すると、コールバック ルーチンが呼び出されます。 が設定されておらず、リモート デバイスが追加のオプションのために構成要求を拒否した場合、接続は閉じられます。 |
CALLBACK_CONFIG_QOS | 設定すると、リモート デバイスが QOS 値を含む構成要求を送信するときにコールバック ルーチンが呼び出されます。 このフラグが設定されておらず、リモート デバイスが構成要求で QOS パラメーターを送信するか、プロファイル ドライバーの要求された QOS パラメーターを拒否した場合、接続は切断されます。 |
CALLBACK_DISCONNECT | 設定した場合、リモート デバイスが拡張 L2CAP チャネルから切断されると、コールバック ルーチンが呼び出されます。 |
CALLBACK_RECV_PACKET | 設定した場合、プロファイル ドライバーが着信拡張 L2CAP パケットを受信すると、コールバック ルーチンが呼び出されます。 |
Callback
プロファイル ドライバーによって実装される 拡張 L2CAP コールバック関数 。Bluetooth ドライバー スタックがを呼び出して、拡張 L2CAP 接続に対する変更についてプロファイル ドライバーに通知する必要があります。
CallbackContext
Callback メンバーで指定されたコールバック関数に渡すコンテキスト。 プロファイル ドライバーは、この値を定義します。
ReferenceObject
参照カウントを保持する ObReferenceObject および ObDereferenceObject に渡すオブジェクトへのポインター。
OutResults
送信要求に対してネゴシエートされた構成パラメーターを含む CHANNEL_CONFIG_RESULTS_ENHANCED 構造体。
InResults
受信要求に対してネゴシエートされる構成パラメーターを含むCHANNEL_CONFIG_RESULTS_ENHANCED構造体。
IncomingQueueDepth
メッセージ転送ユニット (MTU) での受信キューの長さを指定します。
Reserved
予約済みメンバー。 使用しないでください。
Response
このメンバーは、BRB_L2CA_OPEN_ENHANCED_CHANNEL要求の入力パラメーターと、BRB_L2CA_OPEN_ENHANCED_CHANNEL_RESPONSE要求の出力パラメーターとして使用されます。
BRB_L2CA_OPEN_ENHANCED_CHANNEL_RESPONSE要求の場合、このメンバーは、リモート デバイスに対するプロファイル ドライバーの応答を示すフラグを保持します。 有効なフラグ値を次の表に示します。
フラグ | 説明 |
---|---|
CONNECT_RSP_RESULT_NO_RESOURCES | リソースが不足しているため、プロファイル ドライバーが接続を拒否しました。 |
CONNECT_RSP_RESULT_PENDING | プロファイル ドライバーは現在ビジー状態であり、接続を受け入れることができません。 後で再試行してください。 |
CONNECT_RSP_RESULT_PSM_NEG | PSM がサポートされていないため、プロファイル ドライバーは接続を拒否しました。 |
CONNECT_RSP_RESULT_SECURITY_BLOCK | プロファイル ドライバーは、セキュリティ上の理由から接続を拒否しました。 |
CONNECT_RSP_RESULT_SUCCESS | プロファイル ドライバーが接続を受け入れた。 |
BRB_L2CA_OPEN_ENHANCED_CHANNEL BRB の場合、このメンバーには、プロファイル ドライバーが接続しようとしたリモート デバイスからの応答が含まれます。 有効なフラグ値を次の表に示します。
フラグ | 説明 |
---|---|
CONNECT_RSP_RESULT_NO_RESOURCES | リソースが不足しているため、リモート デバイスは接続を拒否しました。 |
CONNECT_RSP_RESULT_PSM_NEG | リモート デバイスが接続を拒否しました。 |
CONNECT_RSP_RESULT_SECURITY_BLOCK | リモート デバイスは、セキュリティ上の理由から接続を拒否しました。 |
CONNECT_RSP_RESULT_SUCCESS | リモート デバイスが接続を受け入れた。 |
ResponseStatus
BRB_L2CA_OPEN_ENHANCED_CHANNEL_RESPONSE BRB の呼び出し中に Response メンバーが CONNECT_RSP_RESULT_PENDING に設定されている場合、このメンバーは有効であり、次のいずれかの値が含まれます。
- CONNECT_RSP_STATUS_AUTHENTICATION_PENDING
- CONNECT_RSP_STATUS_AUTHORIZATION_PENDING
- CONNECT_RSP_STATUS_NO_INFORMATION
注釈
プロファイル ドライバーでは、Flags メンバーに 、、または CM_BASIC | CM_STREAMING
モードを使用CM_BASIC | CM_RETRANSMISSION_AND_FLOW
できます。 これは、拡張再送信モード、または可能な場合はストリーミング モード チャネルを開き、基本モード チャネルにフォールバックしない場合はを示します。
の CM_RETRANSMISSION_AND_FLOW | CM_STREAMING
値はサポートされていません。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | バージョン:Windows 8 以降のバージョンの Windows の_Supported |
Header | bthddi.h (Bthddi.h を含む) |