structure _BRB_L2CA_OPEN_ENHANCED_CHANNEL (bthddi.h)
La structure _BRB_L2CA_OPEN_ENHANCED_CHANNEL est utilisée pour ouvrir un canal L2CAP amélioré sur un appareil distant ou envoyer une réponse pour accepter/rejeter une demande de connexion L2CAP améliorée entrante initiée par un appareil distant.
Syntaxe
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;
};
Membres
Hdr
Structure BRB_HEADER qui contient des informations sur le BRB actuel.
ChannelHandle
Handle utilisé pour identifier la connexion lors d’une connexion réussie. Lors de l’envoi d’un BRB_L2CA_OPEN_CHANNEL, celui-ci est renseigné lorsque le BRB se termine. Lors de l’envoi d’une demande de BRB_L2CA_OPEN_CHANNEL_RESPONSE, celle-ci doit être renseignée par le serveur avant d’envoyer le BRB. La valeur affectée doit être INDICATION_PARAMETERS::ConnectionHandle
qui a été passée pendant l’IndicationRemoteConnect.
Response
Utilisé uniquement avec BRB_L2CA_OPEN_CHANNEL_RESPONSE. L’une des valeurs CONNECT_RSP_RESULT_Xxx est utilisée.
Si le BRB retourne un état de STATUS_REQUEST_NOT_ACCEPTED, réponse contiendra la réponse négative de l’hôte distant.
ResponseStatus
Si réponse est égal à CONNECT_RSP_RESULT_PENDING, ce champ est valide. L’une des valeurs CONNECT_RSP_STATUS_XXX est utilisée.
Psm
Protocole/multiplexeur de service (PSM) utilisé par le canal pour se connecter à l’appareil distant. Lorsqu’il est utilisé avec une requête BRB_L2CA_OPEN_ENHANCED_CHANNEL, ce membre est défini en tant que champ d’entrée. Lorsqu’il est utilisé avec une requête BRB_L2CA_OPEN_ENHANCED_CHANNEL_RESPONSE, ce membre est utilisé comme champ de sortie.
ChannelFlags
Indicateurs qui spécifient les conditions requises pour l’ouverture du canal. Les valeurs d’indicateur valides sont répertoriées dans le tableau suivant :
Drapeau | Description |
---|---|
CF_LINK_AUTHENTICATED | Le lien doit être authentifié. |
CF_LINK_ENCRYPTED | Le lien doit être chiffré. La définition de cet indicateur définit également l’indicateur CF_LINK_AUTHENTICATED. |
CF_LINK_SUPPRESS_PIN | Le pilote de profil indique sa préférence que les utilisateurs ne sont pas invités à entrer un code confidentiel. |
BtAddress
Adresse Bluetooth de l’appareil pour lequel la connexion est prévue.
ConfigOut
Sous-structure qui contient les paramètres d’un BRB_L2CA_OPEN_ENHANCED_CHANNEL BRB envoyé à un appareil distant.
ConfigOut.Flags
Indicateurs qui spécifient les conditions requises pour l’ouverture du canal. Les valeurs d’indicateur valides sont répertoriées dans le tableau suivant :
Drapeau | Description |
---|---|
CF_LINK_AUTHENTICATED | Le lien doit être authentifié. |
CF_LINK_ENCRYPTED | Le lien doit être chiffré. La définition de cet indicateur définit également l’indicateur CF_LINK_AUTHENTICATED. |
CF_LINK_SUPPRESS_PIN | Le pilote de profil indique sa préférence que les utilisateurs ne sont pas invités à entrer un code confidentiel. |
CFG_ENHANCED | Spécifie que la structure ModeConfig est valide. |
CFG_FCS | Spécifie que la valeur Fcs est valide. |
ConfigOut.Mtu
Plage d’unités de transfert de messages (MTU) utilisées pour négocier la taille de la moitié sortante du canal.
ConfigOut.FlushTO
Plage de valeurs possibles à utiliser pour le délai d’expiration de vidage pour la moitié sortante du canal.
ConfigOut.Flow
Réservé pour une utilisation ultérieure. N’utilisez pas.
ConfigOut.LinkTO
Délai d’expiration du lien Gestionnaire de liens.
ConfigOut.NumExtraOptions
Nombre d’éléments de tableau contenus dans le membre ExtraOptions. Cette valeur doit être égale à zéro pour la plupart des clients.
ConfigOut.ExtraOptions
Options supplémentaires. Cette valeur doit être égale à zéro pour la plupart des clients.
ConfigOut.LocalQos
Réservé pour une utilisation ultérieure. N’utilisez pas.
ConfigOut.LocalQos.ServiceType
Réservé pour une utilisation ultérieure. N’utilisez pas.
ConfigOut.LocalQos.Latency
Réservé pour une utilisation ultérieure. N’utilisez pas.
ConfigOut.ModeConfig
Spécifie le type de canal L2CAP en cours d’ouverture. Cette structure est valide uniquement si CFG_ENHANCED indicateur est spécifié.
ConfigOut.ModeConfig.Flags
Spécifie le type de mode canal L2CAP demandé.
Drapeau | Description |
---|---|
CM_BASIC | Ouvrez un canal en mode de base. |
CM_RETRANSMISSION_AND_FLOW | Ouvrez un canal de mode de retransmission amélioré. |
CM_STREAMING | Ouvrez un canal en mode streaming. |
ConfigOut.ModeConfig.RetransmissionAndFlow
Spécifie les options des modes CM_RETRANSMISSION_AND_FLOW et CM_STREAMING. Cette structure doit être égale à zéro si seule CM_BASIC est spécifiée dans le membre Indicateurs.
Le sous-membre mode de RetransmissionAndFlow doit être défini sur 0. Utilisez le sous-membre ModeConfig de RetransmissionAndFlow pour spécifier le type de canal à ouvrir.
ConfigOut.Fcs
Spécifie si FCS doit être utilisé pour le canal L2CAP amélioré. Cette valeur est valide uniquement si CM_RETRANSMISSION_AND_FLOW ou CM_STREAMING indicateur est spécifié dans le membre Indicateurs.
ConfigOut.ExtendedFlowSpec
Non pris en charge.
ConfigOut.ExtendedWindowSize
Non pris en charge.
ConfigIn
Sous-structure qui contient les paramètres de paramètre pour valider les BRB_L2CA_OPEN_ENHANCED_CHANNEL_RESPONSE BRB entrants envoyés à partir d’un appareil distant.
ConfigIn.Flags
Indicateurs qui spécifient les conditions requises pour l’ouverture du canal. Les valeurs d’indicateur valides sont répertoriées dans le tableau suivant :
Drapeau | Description |
---|---|
CF_LINK_AUTHENTICATED | Le lien doit être authentifié. |
CF_LINK_ENCRYPTED | Le lien doit être chiffré. La définition de cet indicateur définit également l’indicateur CF_LINK_AUTHENTICATED. |
CF_LINK_SUPPRESS_PIN | Le pilote de profil indique sa préférence que les utilisateurs ne sont pas invités à entrer un code confidentiel. |
ConfigIn.Mtu
Plage d’unités de transfert de messages (MTU) utilisées pour négocier la taille de la moitié entrante du canal.
ConfigIn.FlushTO
Plage de valeurs possibles à utiliser pour le délai d’expiration de vidage pour la moitié entrante du canal.
CallbackFlags
Indicateur qui spécifie les événements qui doivent générer une routine de rappel pour informer le pilote de profil que l’événement s’est produit. Les valeurs d’indicateur valides sont contenues dans le tableau suivant.
Drapeau | Description |
---|---|
CALLBACK_CONFIG_EXTRA_IN | Si elle est définie, la routine de rappel est appelée lorsque la demande de configuration de l’appareil distant contient des options supplémentaires. Si elle n’est pas définie, les options de configuration supplémentaires sont rejetées en tant qu’options inconnues. Cet indicateur est utilisé avec BRB_L2CA_OPEN_ENHANCED_CHANNEL_RESPONSE brb. |
CALLBACK_CONFIG_EXTRA_OUT | Si elle est définie, la routine de rappel est appelée lorsque l’appareil distant rejette une option de configuration supplémentaire à partir d’une demande de BRB_L2CA_OPEN_ENHANCED_CHANNEL. S’il n’est pas défini et que l’appareil distant rejette la demande de configuration en raison d’une option supplémentaire, la connexion est fermée. |
CALLBACK_CONFIG_QOS | Si elle est définie, la routine de rappel est appelée lorsqu’un appareil distant envoie une demande de configuration qui contient une valeur QOS. Si cet indicateur n’est pas défini et que l’appareil distant envoie des paramètres QOS dans une demande de configuration ou rejette les paramètres QOS demandés par le pilote de profil, la connexion est déconnectée. |
CALLBACK_DISCONNECT | Si elle est définie, la routine de rappel est appelée lorsqu’un appareil distant se déconnecte du canal L2CAP amélioré. |
CALLBACK_RECV_PACKET | Si elle est définie, la routine de rappel est appelée lorsque le pilote de profil reçoit un paquet L2CAP amélioré entrant. |
Callback
La fonction de rappel L2CAP améliorée implémentée par le pilote de profil, que la pile des pilotes Bluetooth doit appeler pour avertir le pilote de profil des modifications apportées à la connexion L2CAP améliorée.
CallbackContext
Contexte à passer à la fonction de rappel spécifiée dans le membre rappel. Le pilote de profil définit cette valeur.
ReferenceObject
Pointeur vers un objet à passer à ObReferenceObject et ObDereferenceObject pour lequel conserver un nombre de références.
OutResults
Structure CHANNEL_CONFIG_RESULTS_ENHANCED qui contient des paramètres de configuration négociés pour la requête sortante.
InResults
Structure CHANNEL_CONFIG_RESULTS_ENHANCED qui contient des paramètres de configuration négociés pour la requête entrante.
IncomingQueueDepth
Spécifie la longueur de file d’attente entrante dans les unités de transfert de messages (MTU).
Reserved
Membre réservé. N’utilisez pas.
Réponse
Ce membre est utilisé comme paramètre d’entrée pour une requête BRB_L2CA_OPEN_ENHANCED_CHANNEL et un paramètre de sortie pour la requête BRB_L2CA_OPEN_ENHANCED_CHANNEL_RESPONSE.
Pour une requête BRB_L2CA_OPEN_ENHANCED_CHANNEL_RESPONSE, ce membre contient un indicateur qui indique la réponse du pilote de profil à l’appareil distant. Les valeurs d’indicateur valides sont contenues dans le tableau suivant.
Drapeau | Description |
---|---|
CONNECT_RSP_RESULT_NO_RESOURCES | Le pilote de profil a refusé la connexion en raison d’un manque de ressources. |
CONNECT_RSP_RESULT_PENDING | Le pilote de profil est actuellement occupé et ne peut pas accepter la connexion. Réessayez plus tard. |
CONNECT_RSP_RESULT_PSM_NEG | Le pilote de profil a refusé la connexion, car le psM n’est pas pris en charge. |
CONNECT_RSP_RESULT_SECURITY_BLOCK | Le pilote de profil a refusé la connexion pour des raisons de sécurité. |
CONNECT_RSP_RESULT_SUCCESS | Le pilote de profil a accepté la connexion. |
Pour le BRB_L2CA_OPEN_ENHANCED_CHANNEL BRB, ce membre contient la réponse de l’appareil distant auquel le pilote de profil a tenté de se connecter. Les valeurs d’indicateur valides sont contenues dans le tableau suivant.
Drapeau | Description |
---|---|
CONNECT_RSP_RESULT_NO_RESOURCES | L’appareil distant a refusé la connexion en raison d’un manque de ressources. |
CONNECT_RSP_RESULT_PSM_NEG | L’appareil distant a refusé la connexion. |
CONNECT_RSP_RESULT_SECURITY_BLOCK | L’appareil distant a refusé la connexion pour des raisons de sécurité. |
CONNECT_RSP_RESULT_SUCCESS | L’appareil distant a accepté la connexion. |
ResponseStatus
Si, pendant un appel au BRB_L2CA_OPEN_ENHANCED_CHANNEL_RESPONSE BRB, le membre Response est défini sur CONNECT_RSP_RESULT_PENDING, ce membre est valide et contient l’une des valeurs suivantes :
- CONNECT_RSP_STATUS_AUTHENTICATION_PENDING
- CONNECT_RSP_STATUS_AUTHORIZATION_PENDING
- CONNECT_RSP_STATUS_NO_INFORMATION
Remarques
Les pilotes de profil peuvent utiliser des modes CM_BASIC | CM_RETRANSMISSION_AND_FLOW
ou CM_BASIC | CM_STREAMING
pour le membre des indicateurs de. Cela indique d’ouvrir un mode de retransmission amélioré ou un canal en mode streaming si possible, et si ce n’est pas le cas, revenir au canal en mode de base.
Une valeur de CM_RETRANSMISSION_AND_FLOW | CM_STREAMING
n’est pas prise en charge.
Exigences
Exigence | Valeur |
---|---|
client minimum pris en charge | Versions :_Supported dans Windows 8 et versions ultérieures de Windows |
d’en-tête | bthddi.h (include Bthddi.h) |