共用方式為


_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值。

如果 BRB 傳回狀態為 STATUS_REQUEST_NOT_ACCEPTED, 則 Response 會包含來自遠端主機的負回應。

ResponseStatus

如果 Response 等於 CONNECT_RSP_RESULT_PENDING,則此欄位有效。 使用其中一個CONNECT_RSP_STATUS_XXX值。

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

線上預定之裝置的藍牙位址。

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 成員中包含的數位項目數目。 對大部分用戶端而言,此值應該是零。

ConfigOut.ExtraOptions

額外的選項。 對大部分用戶端而言,此值應該是零。

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時,這個結構必須是零。

RetransmissionAndFlowMode子成員應設定為0。 使用 RetransmissionAndFlowModeConfig 子成員,指定要開啟的通道類型。

ConfigOut.Fcs

指定FCS是否應該用於增強的 L2CAP 通道。 只有在 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 BR 搭配使用。
CALLBACK_CONFIG_EXTRA_OUT 如果設定,當遠端裝置拒絕 來自BRB_L2CA_OPEN_ENHANCED_CHANNEL 要求的額外組態選項時,將會呼叫回呼例程。 如果未設定,且遠端裝置因為額外選項而拒絕設定要求,將會關閉連線。
CALLBACK_CONFIG_QOS 如果設定,當遠端裝置傳送包含 QOS 值的組態要求時,將會呼叫回呼例程。 如果未設定此旗標,而且遠端裝置會在設定要求中傳送 QOS 參數,或拒絕配置檔驅動程式所要求的 QOS 參數,則會中斷連線。
CALLBACK_DISCONNECT 如果設定,當遠端裝置與增強的 L2CAP 通道中斷連線時,將會呼叫回呼例程。
CALLBACK_RECV_PACKET 如果設定,當配置文件驅動程式收到傳入的增強 L2CAP 封包時,將會呼叫回呼例程。

Callback

配置檔驅動程式所實作的 增強 L2CAP 回呼函 式,藍牙驅動程式堆疊應該呼叫 ,以通知配置檔驅動程式有關增強式 L2CAP 連線的任何變更。

CallbackContext

要傳遞至 Callback 成員中所指定回呼函式的內容。 配置檔案驅動程式會定義此值。

ReferenceObject

要傳遞至 ObReferenceObjectObDereferenceObject 之物件的指標,要維護參考計數。

OutResults

CHANNEL_CONFIG_RESULTS_ENHANCED結構,其中包含針對輸出要求交涉的組態參數。

InResults

CHANNEL_CONFIG_RESULTS_ENHANCED結構,其中包含針對輸入要求交涉的組態參數。

IncomingQueueDepth

指定訊息傳輸單位中的傳入佇列長度, (MTU) 。

Reserved

保留的成員。 請勿使用。

回應

這個成員會作為 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 期間,響應成員會設定為 CONNECT_RSP_RESULT_PENDING,則此成員有效且包含下列其中一個值:

  • CONNECT_RSP_STATUS_AUTHENTICATION_PENDING
  • CONNECT_RSP_STATUS_AUTHORIZATION_PENDING
  • CONNECT_RSP_STATUS_NO_INFORMATION

備註

配置文件驅動程式可以使用CM_BASIC | CM_RETRANSMISSION_AND_FLOW成員的 CM_BASIC | CM_STREAMING 或模式。 這表示可以開啟增強的重新傳輸模式,或儘可能開啟串流模式通道,如果無法回復為基本模式通道,則為 。 不支援的值 CM_RETRANSMISSION_AND_FLOW | CM_STREAMING

規格需求

需求
最低支援的用戶端 版本:Windows 8 和更新版本的 Windows 中的版本:_Supported
標頭 bthddi.h (包含 Bthddi.h)