Condividi tramite


Accettazione delle connessioni L2CAP in un driver di profilo Bluetooth

Un driver del profilo server L2CAP risponde alle richieste di connessione L2CAP (Logical Link Control e Adaptation Protocol) in ingresso dai dispositivi remoti. Ad esempio, un driver del profilo server L2CAP per un PDA risponde a una richiesta di connessione in ingresso dal PDA.

Per ricevere richieste di connessione L2CAP in ingresso

  1. Per ricevere richieste di connessione L2CAP in ingresso daqualsiasidispositivo remoto per un determinato PSM, i driver di profilo devono prima compilare e inviare una richiesta di BRB_L2CA_REGISTER_SERVER , specificando NULL nel membro BtAddress e 0 nel membro Psm della struttura _BRB_L2CA_REGISTER_SERVER della richiesta. I driver di profilo devono anche registrare una funzione di callback L2CAP con lo stack di driver Bluetooth quando si invia la richiesta di BRB_L2CA_REGISTER_SERVER . In questo modo lo stack di driver Bluetooth può notificare al driver del profilo le richieste di connessione L2CAP in ingresso.

    I driver di profilo devono quindi compilare e inviare una richiesta di BRB_REGISTER_PSM in modo che lo stack di driver Bluetooth accetti le connessioni dal PSM registrato dalla richiesta. In caso contrario, lo stack di driver Bluetooth rifiuta tutte le richieste di connessione con richieste di connessione sconosciute (non registrate). Per altre informazioni sui psm, vedere la struttura _BRB_PSM .

  2. Per ricevere richieste di connessione L2CAP in ingresso da una coppia di dispositivi/PSM remotaspecifica, i driver di profilo devono compilare e inviare una richiesta di BRB_L2CA_REGISTER_SERVER, specificando l'indirizzo del dispositivo remoto nel membro BtAddress e PSM nel membro Psm, della struttura di _BRB_L2CA_REGISTER_SERVER associata alla richiesta. I driver di profilo devono anche registrare una funzione di callback L2CAP con lo stack di driver Bluetooth quando si invia la richiesta di BRB_L2CA_REGISTER_SERVER . In questo modo lo stack di driver Bluetooth può notificare al driver del profilo le richieste di connessione L2CAP in ingresso.

  3. Il driver del profilo deve eseguire un IOCTL_BTH_SDP_SUBMIT_RECORD. Il driver del profilo può quindi registrare un record SDP che descrive il servizio supportato dal driver del profilo, in modo che i sistemi remoti possano individuare il nuovo servizio usando SDP.

  4. Quando lo stack di driver Bluetooth riceve una richiesta di connessione L2CAP in ingresso da un dispositivo remoto, lo stack di driver Bluetooth chiama la funzione di callback L2CAP registrata in precedenza dal driver del profilo. Lo stack di driver Bluetooth passa il valore IndicationRemoteConnect al parametro Indication della funzione di callback.

  5. Per rispondere alle richieste di connessione in ingresso, i driver di profilo devono compilare e inviare una richiesta di BRB_L2CA_OPEN_CHANNEL_RESPONSE . Il driver del profilo server usa il valore passato dallo stack di driver Bluetooth nel parametro Parameters della funzione di callback per negoziare le impostazioni di connessione con il dispositivo remoto. In base al valore del membro Response della struttura _BRB_L2CA_OPEN_CHANNEL passata con questa richiesta, il driver del profilo server accetta o rifiuta la richiesta di connessione.

  6. Se il driver del profilo server accetta la connessione, lo stack di driver Bluetooth può quindi chiamare la funzione di callback L2CAP come specificato nel membro Callback della struttura _BRB_L2CA_OPEN_CHANNEL . Lo stack di driver Bluetooth usa questa funzione per notificare al driver del profilo del server le modifiche apportate alla connessione L2CAP.

Nota

  • Un singolo driver del profilo può registrarsi per ricevere richieste di connessione L2CAP in ingresso da più coppie di dispositivi remoti/PSM creando e inviando più richieste di BRB_L2CA_REGISTER_SERVER per registrare più server L2CAP, specificando coppie di indirizzi di dispositivo remoto e PSM univoci nei membri BtAddress e Psm delle richieste.
  • Un singolo driver del profilo può registrarsi per ricevere richieste di connessione L2CAP in ingresso da qualsiasi dispositivo remoto per un determinato PSM, nonché ricevere richieste di connessione L2CAP in ingresso da più coppie di dispositivi remoti/PSM diverse, registrando prima di tutto per ricevere richieste di connessione L2CAP in ingresso da qualsiasi dispositivo remoto per un particolare PSM, quindi registrando per ricevere richieste di connessione L2CAP in ingresso da una coppia di dispositivi remoti/PSM specifica, purché il psm specifico registrato nel primo passaggio non viene registrato di nuovo.
  • Non è possibile registrare più driver di profilo per ricevere richieste di connessione L2CAP in ingresso da qualsiasi dispositivo remoto per lo stesso PSM. Lo stack di driver Bluetooth consente solo a un driver di profilo di ricevere richieste di connessione L2CAP in ingresso da qualsiasi dispositivo remoto per un determinato PSM.

Dopo che il driver del profilo accetta una richiesta di connessione, può usare altri BRB per inviare e ricevere dati tramite la connessione L2CAP appena stabilita.

Per interrompere la ricezione delle notifiche dei tentativi di connessione L2CAP del dispositivo remoto, i driver di profilo devono compilare e inviare una richiesta di BRB_L2CA_UNREGISTER_SERVER di annullare la registrazione di un server quando il driver del profilo elabora IRP_MN_REMOVE_DEVICE Plug and Play rimuovere le notifiche.

Per altre informazioni sulle notifiche e sulle funzioni di callback, vedere Supporto delle notifiche degli eventi Bluetooth.