次の方法で共有


_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 である必要があります。

RetransmissionAndFlowMode サブメンバーを 0 に設定する必要があります。 開くチャネルの種類を指定するには、RetransmissionAndFlowModeConfig サブメンバーを使用します。

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 を含む)