Condividi tramite


struttura _BRB_L2CA_OPEN_ENHANCED_CHANNEL (bthddi.h)

La struttura _BRB_L2CA_OPEN_ENHANCED_CHANNEL viene usata per aprire un canale L2CAP avanzato a un dispositivo remoto o inviare una risposta per accettare/rifiutare una richiesta di connessione L2CAP avanzata in ingresso avviata da un dispositivo remoto.

Sintassi

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;
};

Members

Hdr

Struttura BRB_HEADER che contiene informazioni sull'oggetto BRB corrente.

ChannelHandle

Handle usato per identificare la connessione in caso di connessione riuscita. Quando si invia un BRB_L2CA_OPEN_CHANNEL, l'operazione verrà compilata al termine dell'operazione BRB. Quando si invia una richiesta di BRB_L2CA_OPEN_CHANNEL_RESPONSE , questo deve essere compilato dal server prima di inviare il BRB. Il valore assegnato deve essere INDICATION_PARAMETERS::ConnectionHandle passato durante l'oggetto IndicationRemoteConnect.

Response

Usato solo con BRB_L2CA_OPEN_CHANNEL_RESPONSE. Viene usato uno dei valori CONNECT_RSP_RESULT_Xxx.

Se BRB restituisce uno stato di STATUS_REQUEST_NOT_ACCEPTED, Response conterrà la risposta negativa dall'host remoto.

ResponseStatus

Se Response è uguale a CONNECT_RSP_RESULT_PENDING, questo campo è valido. Viene usato uno dei valori CONNECT_RSP_STATUS_XXX.

Psm

Protocollo/servizio Multiplexer (PSM) usato dal canale per connettersi al dispositivo remoto. Se usato con una richiesta di BRB_L2CA_OPEN_ENHANCED_CHANNEL , questo membro viene impostato come campo di input. Se usato con una richiesta di BRB_L2CA_OPEN_ENHANCED_CHANNEL_RESPONSE , questo membro viene usato come campo di output.

ChannelFlags

Flag che specificano i requisiti per l'apertura del canale. I valori di flag validi sono elencati nella tabella seguente:

Flag Descrizione
CF_LINK_AUTHENTICATED Il collegamento deve essere autenticato.
CF_LINK_ENCRYPTED Il collegamento deve essere crittografato. L'impostazione di questo flag imposta anche il flag di CF_LINK_AUTHENTICATED.
CF_LINK_SUPPRESS_PIN Il driver del profilo indica la preferenza che gli utenti non devono essere richiesti per un PIN.

BtAddress

Indirizzo Bluetooth del dispositivo per il quale è prevista la connessione.

ConfigOut

Sottostruttura che contiene le impostazioni dei parametri per un BRB_L2CA_OPEN_ENHANCED_CHANNEL BRB inviato a un dispositivo remoto.

ConfigOut.Flags

Flag che specificano i requisiti per l'apertura del canale. I valori di flag validi sono elencati nella tabella seguente:

Flag Descrizione
CF_LINK_AUTHENTICATED Il collegamento deve essere autenticato.
CF_LINK_ENCRYPTED Il collegamento deve essere crittografato. L'impostazione di questo flag imposta anche il flag di CF_LINK_AUTHENTICATED.
CF_LINK_SUPPRESS_PIN Il driver del profilo indica la preferenza che gli utenti non devono essere richiesti per un PIN.
CFG_ENHANCED Specifica che la struttura ModeConfig è valida.
CFG_FCS Specifica che il valore fcs è valido.

ConfigOut.Mtu

Intervallo di unità di trasferimento messaggi (MTU) usate per negoziare le dimensioni della metà del canale in uscita.

ConfigOut.FlushTO

Intervallo di valori possibili da usare per il timeout di scaricamento per la metà in uscita del canale.

ConfigOut.Flow

Riservato per utilizzi futuri. Non usare.

ConfigOut.LinkTO

Timeout del collegamento gestione collegamenti.

ConfigOut.NumExtraOptions

Numero di elementi della matrice contenuti nel membro ExtraOptions . Questo valore deve essere zero per la maggior parte dei client.

ConfigOut.ExtraOptions

Opzioni aggiuntive. Questo valore deve essere zero per la maggior parte dei client.

ConfigOut.LocalQos

Riservato per utilizzi futuri. Non usare.

ConfigOut.LocalQos.ServiceType

Riservato per utilizzi futuri. Non usare.

ConfigOut.LocalQos.Latency

Riservato per utilizzi futuri. Non usare.

ConfigOut.ModeConfig

Specifica il tipo di canale L2CAP aperto. Questa struttura è valida solo se viene specificato CFG_ENHANCED flag.

ConfigOut.ModeConfig.Flags

Specifica il tipo di modalità canale L2CAP richiesta.

Flag Descrizione
CM_BASIC Aprire un canale in modalità di base.
CM_RETRANSMISSION_AND_FLOW Aprire un canale in modalità ritrasmissione avanzata.
CM_STREAMING Aprire un canale in modalità streaming.

ConfigOut.ModeConfig.RetransmissionAndFlow

Specifica le opzioni per le modalità CM_RETRANSMISSION_AND_FLOW e CM_STREAMING. Questa struttura deve essere zero se nel membro Flags è specificato solo CM_BASIC.

Il sottomember Mode di RetransmissionAndFlow deve essere impostato su 0. Usare il sottomember ModeConfig di RetransmissionAndFlow per specificare il tipo di canale da aprire.

ConfigOut.Fcs

Specifica se il cluster di failover deve essere usato per il canale L2CAP avanzato. Questo valore è valido solo se CM_RETRANSMISSION_AND_FLOW o CM_STREAMING flag viene specificato nel membro Flags .

ConfigOut.ExtendedFlowSpec

Non supportato.

ConfigOut.ExtendedWindowSize

Non supportata.

ConfigIn

Sottostruttura che contiene le impostazioni dei parametri per convalidare i database di BRB_L2CA_OPEN_ENHANCED_CHANNEL_RESPONSE in ingresso inviati da un dispositivo remoto.

ConfigIn.Flags

Flag che specificano i requisiti per l'apertura del canale. I valori di flag validi sono elencati nella tabella seguente:

Flag Descrizione
CF_LINK_AUTHENTICATED Il collegamento deve essere autenticato.
CF_LINK_ENCRYPTED Il collegamento deve essere crittografato. L'impostazione di questo flag imposta anche il flag di CF_LINK_AUTHENTICATED.
CF_LINK_SUPPRESS_PIN Il driver del profilo indica la preferenza che gli utenti non devono essere richiesti per un PIN.

ConfigIn.Mtu

Intervallo di unità di trasferimento messaggi (MTU) usate per negoziare le dimensioni della metà del canale in ingresso.

ConfigIn.FlushTO

Intervallo di valori possibili da usare per il timeout di scaricamento per la metà in ingresso del canale.

CallbackFlags

Flag che specifica quali eventi devono generare una routine di callback per notificare al driver del profilo che l'evento si è verificato. I valori di flag validi sono contenuti nella tabella seguente.

Flag Descrizione
CALLBACK_CONFIG_EXTRA_IN Se impostato, la routine di callback verrà chiamata quando la richiesta di configurazione per il dispositivo remoto contiene opzioni aggiuntive. Se non è impostato, le opzioni di configurazione aggiuntive verranno rifiutate come opzioni sconosciute. Questo flag viene usato con BRB_L2CA_OPEN_ENHANCED_CHANNEL_RESPONSE BRBs.
CALLBACK_CONFIG_EXTRA_OUT Se impostata, la routine di callback verrà chiamata quando il dispositivo remoto rifiuta un'opzione di configurazione aggiuntiva da una richiesta di BRB_L2CA_OPEN_ENHANCED_CHANNEL . Se non è impostato e il dispositivo remoto rifiuta la richiesta di configurazione a causa di un'opzione aggiuntiva, la connessione verrà chiusa.
CALLBACK_CONFIG_QOS Se impostato, la routine di callback verrà chiamata quando un dispositivo remoto invia una richiesta di configurazione contenente un valore QOS. Se questo flag non è impostato e il dispositivo remoto invia parametri QOS in una richiesta di configurazione o rifiuta i parametri QOS richiesti dal driver del profilo, la connessione viene disconnessa.
CALLBACK_DISCONNECT Se impostata, la routine di callback verrà chiamata quando un dispositivo remoto si disconnette dal canale L2CAP avanzato.
CALLBACK_RECV_PACKET Se impostata, la routine di callback verrà chiamata quando il driver del profilo riceve un pacchetto L2CAP avanzato in ingresso.

Callback

La funzione di callback L2CAP avanzata implementata dal driver del profilo, che lo stack di driver Bluetooth deve chiamare per notificare al driver del profilo eventuali modifiche apportate alla connessione L2CAP avanzata.

CallbackContext

Contesto da passare alla funzione di callback specificata nel membro Callback . Il driver del profilo definisce questo valore.

ReferenceObject

Puntatore a un oggetto da passare a ObReferenceObject e ObDereferenceObject per cui mantenere un conteggio dei riferimenti.

OutResults

Struttura CHANNEL_CONFIG_RESULTS_ENHANCED che contiene parametri di configurazione negoziati per la richiesta in uscita.

InResults

Struttura CHANNEL_CONFIG_RESULTS_ENHANCED che contiene parametri di configurazione negoziati per la richiesta in ingresso.

IncomingQueueDepth

Specifica la lunghezza della coda in ingresso nelle unità di trasferimento dei messaggi (MTUS).

Reserved

Membro riservato. Non usare.

Risposta

Questo membro viene usato come parametro di input per una richiesta di BRB_L2CA_OPEN_ENHANCED_CHANNEL e un parametro di output per la richiesta di BRB_L2CA_OPEN_ENHANCED_CHANNEL_RESPONSE .

Per una richiesta di BRB_L2CA_OPEN_ENHANCED_CHANNEL_RESPONSE , questo membro contiene un flag che indica la risposta del driver del profilo al dispositivo remoto. I valori del flag validi sono contenuti nella tabella seguente.

Flag Descrizione
CONNECT_RSP_RESULT_NO_RESOURCES Il driver del profilo ha rifiutato la connessione a causa di una mancanza di risorse.
CONNECT_RSP_RESULT_PENDING Il driver del profilo è attualmente occupato e non può accettare la connessione. Riprovare più tardi.
CONNECT_RSP_RESULT_PSM_NEG Il driver del profilo ha rifiutato la connessione perché il PSM non è supportato.
CONNECT_RSP_RESULT_SECURITY_BLOCK Il driver del profilo ha rifiutato la connessione per motivi di sicurezza.
CONNECT_RSP_RESULT_SUCCESS Il driver del profilo ha accettato la connessione.

Per il BRB_L2CA_OPEN_ENHANCED_CHANNEL BRB, questo membro contiene la risposta dal dispositivo remoto a cui il driver del profilo ha tentato di connettersi. I valori del flag validi sono contenuti nella tabella seguente.

Flag Descrizione
CONNECT_RSP_RESULT_NO_RESOURCES Il dispositivo remoto ha rifiutato la connessione a causa di una mancanza di risorse.
CONNECT_RSP_RESULT_PSM_NEG Il dispositivo remoto ha rifiutato la connessione.
CONNECT_RSP_RESULT_SECURITY_BLOCK Il dispositivo remoto ha rifiutato la connessione per motivi di sicurezza.
CONNECT_RSP_RESULT_SUCCESS Il dispositivo remoto ha accettato la connessione.

ResponseStatus

Se durante una chiamata al BRB_L2CA_OPEN_ENHANCED_CHANNEL_RESPONSE BRB il membro Response è impostato su CONNECT_RSP_RESULT_PENDING, questo membro è valido e contiene uno dei valori seguenti:

  • CONNECT_RSP_STATUS_AUTHENTICATION_PENDING
  • CONNECT_RSP_STATUS_AUTHORIZATION_PENDING
  • CONNECT_RSP_STATUS_NO_INFORMATION

Commenti

I driver del profilo possono usare CM_BASIC | CM_RETRANSMISSION_AND_FLOWle modalità o CM_BASIC | CM_STREAMING per il membro Flags . Ciò indica di aprire una modalità di ritrasmissione avanzata o di streaming, se possibile, e se non tornare al canale in modalità di base. Il valore di CM_RETRANSMISSION_AND_FLOW | CM_STREAMING non è supportato.

Requisiti

Requisito Valore
Client minimo supportato Versioni:_Supported in Windows 8 e versioni successive di Windows
Intestazione bthddi.h (include Bthddi.h)