共用方式為


在藍牙配置檔驅動程式中接受L2CAP連線

L2CAP 伺服器設定檔驅動程式會回應來自遠端裝置的連入邏輯連結控制和調適通訊協定 (L2CAP) 連線要求。 例如,PDA 的 L2CAP 伺服器設定檔驅動程式會回應來自 PDA 的連入連線要求。

接收傳入 L2CAP 連線要求

  1. 若要接收來自特定 PSM之任何遠端裝置的傳入 L2CAP 連線要求,配置檔驅動程式應該先建置並傳送BRB_L2CA_REGISTER_SERVER要求,並在要求的 _BRB_L2CA_REGISTER_SERVER 結構的 Psm 成員中指定 NULL,並在要求的 psm 成員中指定 NULL。 配置文件驅動程式也必須在傳送BRB_L2CA_REGISTER_SERVER要求時,向藍牙驅動程式堆疊註冊 L2CAP 回呼函式。 這可讓藍牙驅動程式堆疊通知配置檔驅動程式傳入 L2CAP 連線要求。

    然後,配置檔驅動程式應該建置並傳送BRB_REGISTER_PSM要求,讓藍牙驅動程式堆疊接受來自要求註冊之 PSM 的連線。 否則,藍牙驅動程式堆疊會拒絕所有未知 (未註冊) 連線要求的連接要求。 如需 PSM 的詳細資訊,請參閱 _BRB_PSM 結構。

  2. 若要接收來自特定遠端裝置/PSM 配對的傳入 L2CAP 連線要求,配置檔驅動程式應該建置並傳送BRB_L2CA_REGISTER_SERVER要求、在 BtAddress 成員中指定遠端裝置的位址,以及 Psm 成員隨附_BRB_L2CA_REGISTER_SERVER結構的 PSM。 配置文件驅動程式也必須在傳送BRB_L2CA_REGISTER_SERVER要求時,向藍牙驅動程式堆疊註冊 L2CAP 回呼函式。 這可讓藍牙驅動程式堆疊通知配置檔驅動程式傳入 L2CAP 連線要求。

  3. 配置檔驅動程式應該發出 IOCTL_BTH_SDP_SUBMIT_RECORD。 然後,配置檔驅動程式可以註冊 SDP 記錄,描述配置檔驅動程式所支援的服務,讓遠端系統可以使用 SDP 來探索新的服務。

  4. 當藍牙驅動程式堆疊收到來自遠端裝置的傳入 L2CAP 連線要求時,藍牙驅動程式堆疊會呼叫配置檔驅動程式稍早註冊的 L2CAP 回呼函 式。 藍牙驅動程式堆疊會將 指示RemoteConnect 值傳遞至回呼函式的 Indication 參數。

  5. 若要回應連入連線要求,配置檔驅動程式應該建置並傳送BRB_L2CA_OPEN_CHANNEL_RESPONSE要求。 伺服器配置檔驅動程式會使用回呼函式 Parameters 參數中 從藍牙驅動程式堆疊傳遞的值,來與遠端裝置交涉連線設定。 根據與此要求一起傳遞之_BRB_L2CA_OPEN_CHANNEL結構的 Response 成員值,伺服器配置檔驅動程式會接受或拒絕連線要求。

  6. 如果伺服器配置檔驅動程式接受連線,藍牙驅動程式堆疊就可以呼叫 L2CAP 回呼函式,如_BRB_L2CA_OPEN_CHANNEL 結構的 Callback 成員所指定。 藍牙驅動程式堆疊會使用此函式來通知伺服器配置檔驅動程式 L2CAP 連線的任何變更。

注意

  • 單一配置檔驅動程式可以註冊以接收來自多個、不同遠端裝置/PSM 配對的傳入 L2CAP 連線要求,方法是建置並傳送多個 BRB_L2CA_REGISTER_SERVER 要求來註冊多個 L2CAP 伺服器,並在 要求的 BtAddress 和 Psm 成員中指定唯一的遠端裝置位址和 PSM 配對。
  • 單一配置檔驅動程式可以註冊以接收來自特定 PSM 之任何 遠端裝置的連入 L2CAP 連線要求,以及接收來自多個不同遠端裝置/PSM 配對的連入 L2CAP 連線要求,只要註冊特定 PSM 的特定 PSM,即可從任何遠端裝置接收傳入的 L2CAP 連線要求,然後註冊以接收來自特定遠端裝置/PSM 配對的連入 L2CAP 連線要求在第一個步驟中不會再次註冊。
  • 多個配置檔驅動程式無法註冊,以接收來自相同 PSM 之任何遠端裝置的傳入 L2CAP 連線要求。 藍牙驅動程式堆疊只允許一個配置檔驅動程式接收來自特定 PSM 之任何遠端裝置的傳入 L2CAP 連線要求。

配置文件驅動程式接受連線要求之後,就可以使用其他 BRB 透過新建立的 L2CAP 連線來傳送和接收數據。

若要停止接收遠端裝置 L2CAP 連線嘗試的通知,配置檔驅動程式應該建置並傳送BRB_L2CA_UNREGISTER_SERVER要求,以在配置檔驅動程式處理IRP_MN_REMOVE_DEVICE 隨插即用 移除通知時取消註冊伺服器。

如需通知和回呼函式的詳細資訊,請參閱 支援藍牙事件通知