建立遠端裝置的 L2CAP 用戶端連線
L2CAP 用戶端配置檔驅動程式是一種配置檔驅動程式,會要求異步連線連結 (ACL) 遠端裝置的連線。 如果裝置接受連線,L2CAP 用戶端配置檔驅動程式會收到連線任何變更的通知。 例如,L2CAP 用戶端配置檔驅動程式可以要求與遠端印表機的連線,並在印表機接受要求之後,藍牙驅動程式堆疊可以在印表機關閉或移除時通知配置檔驅動程式。
L2CAP 用戶端配置檔驅動程序必須有遠端裝置的相關信息,例如通訊協定/服務多任務器 (PSM) 裝置使用,才能要求裝置的連線。 用戶端配置檔驅動程式可以透過服務探索通訊協定 (SDP) DDI,或透過服務的固定 PSM 來取得此資訊。 如需如何取得此資訊的詳細資訊,請參閱 存取 SDP 服務資訊。
若要起始遠端裝置的 L2CAP 連線,用戶端配置檔驅動程式擁有裝置的必要信息之後,它應該建置並傳送BRB_L2CA_OPEN_CHANNEL要求。
當用戶端配置檔驅動程式建置要求時,它會在與要求相關聯之 IRP 的 Parameters.Others.Argument1 成員中,提供_BRB_L2CA_OPEN_CHANNEL結構的指標。 此結構包含遠端裝置的藍牙位址、為裝置註冊的 PSM,以及其他組態參數。
如果遠端裝置接受開啟通道要求,_BRB_L2CA_OPEN_CHANNEL 結構的 OutResults 和 InResults 成員會包含新建立連線的相關信息。 OutResults 成員會指定通道輸出半部的參數,而 InResults 成員會指定通道輸入半部的參數。
_BRB_L2CA_OPEN_CHANNEL 結構中傳遞的數個組態值,例如 Mtu 成員,可用來與遠端裝置交涉連線。 用戶端配置檔驅動程式應盡可能提供各種範圍,以增加成功通道交涉的機會。 指定最小訊息傳輸單位 (MTU) 大小大於基本藍牙最小 MTU 大小時,才應該在絕對必要的情況下完成。 如果交涉失敗,連線將會失敗。
_BRB_L2CA_OPEN_CHANNEL 結構的 IncomingQueueDepth 成員會指定藍牙驅動程式堆疊在連線上接收和佇列的最大 MTU 數目,然後藍牙驅動程式堆棧開始捨棄它們。 將此值設定為非常小的數位會增加數據遺失的機會,同時將此值設定為非常大量的會增加記憶體需求。 Microsoft 建議將此成員設定為 10。
當配置檔驅動程式不再需要遠端裝置的 L2CAP 連線時,它應該建置並傳送BRB_L2CA_CLOSE_CHANNEL要求。