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_FLOW
le 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) |