_BRB_L2CA_OPEN_ENHANCED_CHANNEL-Struktur (bthddi.h)
Die _BRB_L2CA_OPEN_ENHANCED_CHANNEL-Struktur wird verwendet, um einen erweiterten L2CAP-Kanal für ein Remotegerät zu öffnen oder eine Antwort zum Akzeptieren/Ablehnen einer eingehenden erweiterten L2CAP-Verbindungsanforderung zu senden, die von einem Remotegerät initiiert wurde.
Syntax
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;
};
Member
Hdr
Eine BRB_HEADER-Struktur , die Informationen zum aktuellen BRB enthält.
ChannelHandle
Handle, das verwendet wird, um die Verbindung bei einer erfolgreichen Verbindung zu identifizieren. Wenn Sie eine BRB_L2CA_OPEN_CHANNEL senden, wird diese ausgefüllt, wenn der BRB abgeschlossen ist. Beim Senden einer BRB_L2CA_OPEN_CHANNEL_RESPONSE-Anforderung muss diese vom Server ausgefüllt werden, bevor der BRB gesendet wird. Der zugewiesene Wert sollte sein INDICATION_PARAMETERS::ConnectionHandle
, der während der IndicationRemoteConnect übergeben wurde.
Response
Wird nur mit BRB_L2CA_OPEN_CHANNEL_RESPONSE verwendet. Einer der CONNECT_RSP_RESULT_Xxx-Werte wird verwendet.
Wenn der BRB mit einer status von STATUS_REQUEST_NOT_ACCEPTED zurückgibt, enthält Response die negative Antwort vom Remotehost.
ResponseStatus
Wenn Antwort gleich CONNECT_RSP_RESULT_PENDING ist, ist dieses Feld gültig. Einer der CONNECT_RSP_STATUS_XXX-Werte wird verwendet.
Psm
Der Protokoll-/Dienstmultixer (PSM), den der Kanal zum Herstellen einer Verbindung mit dem Remotegerät verwendet. Bei Verwendung mit einer BRB_L2CA_OPEN_ENHANCED_CHANNEL-Anforderung wird dieses Element als Eingabefeld festgelegt. Bei Verwendung mit einer BRB_L2CA_OPEN_ENHANCED_CHANNEL_RESPONSE-Anforderung wird dieses Element als Ausgabefeld verwendet.
ChannelFlags
Flags, die die Anforderungen für den zu öffnenden Kanal angeben. Gültige Flagwerte sind in der folgenden Tabelle aufgeführt:
Flag | Beschreibung |
---|---|
CF_LINK_AUTHENTICATED | Der Link muss authentifiziert werden. |
CF_LINK_ENCRYPTED | Der Link muss verschlüsselt sein. Durch Festlegen dieses Flags wird auch das flag CF_LINK_AUTHENTICATED festgelegt. |
CF_LINK_SUPPRESS_PIN | Der Profiltreiber gibt an, dass Benutzer nicht zur Eingabe einer PIN aufgefordert werden. |
BtAddress
Die Bluetooth-Adresse des Geräts, für das die Verbindung vorgesehen ist.
ConfigOut
Die Unterstruktur, die Parametereinstellungen für eine an ein Remotegerät gesendete BRB_L2CA_OPEN_ENHANCED_CHANNEL BRB enthält.
ConfigOut.Flags
Flags, die die Anforderungen für den zu öffnenden Kanal angeben. Gültige Flagwerte sind in der folgenden Tabelle aufgeführt:
Flag | Beschreibung |
---|---|
CF_LINK_AUTHENTICATED | Der Link muss authentifiziert werden. |
CF_LINK_ENCRYPTED | Der Link muss verschlüsselt sein. Durch Festlegen dieses Flags wird auch das flag CF_LINK_AUTHENTICATED festgelegt. |
CF_LINK_SUPPRESS_PIN | Der Profiltreiber gibt an, dass Benutzer nicht zur Eingabe einer PIN aufgefordert werden. |
CFG_ENHANCED | Gibt an, dass die ModeConfig-Struktur gültig ist. |
CFG_FCS | Gibt an, dass der Fcs-Wert gültig ist. |
ConfigOut.Mtu
Der Bereich der Nachrichtenübertragungseinheiten (Message Transfer Units, MTUs), der verwendet wird, um die Größe der ausgehenden Hälfte des Kanals auszuhandeln.
ConfigOut.FlushTO
Der Bereich der möglichen Werte, die für das Leerungstimeout für die ausgehende Hälfte des Kanals verwendet werden sollen.
ConfigOut.Flow
Für die zukünftige Verwendung reserviert. Nicht verwenden.
ConfigOut.LinkTO
Das Link-Manager-Linktimeout.
ConfigOut.NumExtraOptions
Die Anzahl der Arrayelemente, die im ExtraOptions-Member enthalten sind. Dieser Wert sollte für die meisten Clients null sein.
ConfigOut.ExtraOptions
Zusätzliche Optionen. Dieser Wert sollte für die meisten Clients null sein.
ConfigOut.LocalQos
Für die zukünftige Verwendung reserviert. Nicht verwenden.
ConfigOut.LocalQos.ServiceType
Für die zukünftige Verwendung reserviert. Nicht verwenden.
ConfigOut.LocalQos.Latency
Für die zukünftige Verwendung reserviert. Nicht verwenden.
ConfigOut.ModeConfig
Gibt den Typ des L2CAP-Kanals an, der geöffnet wird. Diese Struktur ist nur gültig, wenn CFG_ENHANCED Flag angegeben ist.
ConfigOut.ModeConfig.Flags
Gibt den Typ des angeforderten L2CAP-Kanalmodus an.
Flag | Beschreibung |
---|---|
CM_BASIC | Öffnen Sie einen Kanal im einfachen Modus. |
CM_RETRANSMISSION_AND_FLOW | Öffnen Sie einen Erweiterten Kanal für den Erneutübertragungsmodus. |
CM_STREAMING | Öffnen Sie einen Kanal im Streamingmodus. |
ConfigOut.ModeConfig.RetransmissionAndFlow
Gibt die Optionen für CM_RETRANSMISSION_AND_FLOW- und CM_STREAMING-Modi an. Diese Struktur muss null sein, wenn nur CM_BASIC im Flags-Member angegeben ist.
Der Mode-Unterteil von RetransmissionAndFlow sollte auf 0 festgelegt werden. Verwenden Sie den ModeConfig-Unternamen von RetransmissionAndFlow , um den Typ des zu öffnenden Kanals anzugeben.
ConfigOut.Fcs
Gibt an, ob FCS für den erweiterten L2CAP-Kanal verwendet werden soll. Dieser Wert ist nur gültig, wenn im Flags-Element CM_RETRANSMISSION_AND_FLOW oder CM_STREAMING Flag angegeben ist.
ConfigOut.ExtendedFlowSpec
Wird nicht unterstützt.
ConfigOut.ExtendedWindowSize
Wird nicht unterstützt.
ConfigIn
Die Unterstruktur, die Parametereinstellungen zum Überprüfen eingehender BRB_L2CA_OPEN_ENHANCED_CHANNEL_RESPONSE BRBs enthält, die von einem Remotegerät gesendet werden.
ConfigIn.Flags
Flags, die die Anforderungen für den zu öffnenden Kanal angeben. Gültige Flagwerte sind in der folgenden Tabelle aufgeführt:
Flag | Beschreibung |
---|---|
CF_LINK_AUTHENTICATED | Der Link muss authentifiziert werden. |
CF_LINK_ENCRYPTED | Der Link muss verschlüsselt sein. Durch Festlegen dieses Flags wird auch das flag CF_LINK_AUTHENTICATED festgelegt. |
CF_LINK_SUPPRESS_PIN | Der Profiltreiber gibt an, dass Benutzer nicht zur Eingabe einer PIN aufgefordert werden. |
ConfigIn.Mtu
Der Bereich der Nachrichtenübertragungseinheiten (Message Transfer Units, MTUs), der zum Aushandeln der Größe der eingehenden Hälfte des Kanals verwendet wird.
ConfigIn.FlushTO
Der Bereich der möglichen Werte, die für das Leerungstimeout für die eingehende Hälfte des Kanals verwendet werden sollen.
CallbackFlags
Ein Flag, das angibt, welche Ereignisse eine Rückrufroutine generieren sollen, um den Profiltreiber zu benachrichtigen, dass das Ereignis aufgetreten ist. Gültige Flagwerte sind in der folgenden Tabelle enthalten.
Flag | Beschreibung |
---|---|
CALLBACK_CONFIG_EXTRA_IN | Falls festgelegt, wird die Rückrufroutine aufgerufen, wenn die Konfigurationsanforderung für das Remotegerät zusätzliche Optionen enthält. Wenn sie nicht festgelegt sind, werden die zusätzlichen Konfigurationsoptionen als unbekannte Optionen abgelehnt. Dieses Flag wird mit BRB_L2CA_OPEN_ENHANCED_CHANNEL_RESPONSE BRBs verwendet. |
CALLBACK_CONFIG_EXTRA_OUT | Wenn diese Option festgelegt ist, wird die Rückrufroutine aufgerufen, wenn das Remotegerät eine zusätzliche Konfigurationsoption aus einer BRB_L2CA_OPEN_ENHANCED_CHANNEL-Anforderung ablehnt. Wenn sie nicht festgelegt ist und das Remotegerät die Konfigurationsanforderung aufgrund einer zusätzlichen Option ablehnt, wird die Verbindung geschlossen. |
CALLBACK_CONFIG_QOS | Falls festgelegt, wird die Rückrufroutine aufgerufen, wenn ein Remotegerät eine Konfigurationsanforderung sendet, die einen QOS-Wert enthält. Wenn dieses Flag nicht festgelegt ist und das Remotegerät entweder QOS-Parameter in einer Konfigurationsanforderung sendet oder die vom Profiltreiber angeforderten QOS-Parameter ablehnt, wird die Verbindung getrennt. |
CALLBACK_DISCONNECT | Wenn diese Option festgelegt ist, wird die Rückrufroutine aufgerufen, wenn ein Remotegerät die Verbindung mit dem erweiterten L2CAP-Kanal trennt. |
CALLBACK_RECV_PACKET | Wenn festgelegt, wird die Rückrufroutine aufgerufen, wenn der Profiltreiber ein eingehendes erweitertes L2CAP-Paket empfängt. |
Callback
Die vom Profiltreiber implementierte erweiterte L2CAP-Rückruffunktion , die der Bluetooth-Treiberstapel aufrufen sollte, um den Profiltreiber über Alle Änderungen an der erweiterten L2CAP-Verbindung zu informieren.
CallbackContext
Der Kontext, der an die Rückruffunktion übergeben werden soll, die im Rückrufelement angegeben ist. Der Profiltreiber definiert diesen Wert.
ReferenceObject
Ein Zeiger auf ein Objekt, das an ObReferenceObject und ObDereferenceObject übergeben werden soll , für die eine Verweisanzahl beibehalten werden soll.
OutResults
Eine CHANNEL_CONFIG_RESULTS_ENHANCED-Struktur , die Konfigurationsparameter enthält, die für die ausgehende Anforderung ausgehandelt wurden.
InResults
Eine CHANNEL_CONFIG_RESULTS_ENHANCED Struktur, die Konfigurationsparameter enthält, die für die eingehende Anforderung ausgehandelt werden.
IncomingQueueDepth
Gibt die Länge der eingehenden Warteschlange in Nachrichtenübertragungseinheiten (Message Transfer Units, MTUs) an.
Reserved
Reserviertes Mitglied. Nicht verwenden.
Antwort
Dieser Member wird als Eingabeparameter für eine BRB_L2CA_OPEN_ENHANCED_CHANNEL-Anforderung und als Ausgabeparameter für die BRB_L2CA_OPEN_ENHANCED_CHANNEL_RESPONSE-Anforderung verwendet.
Für eine BRB_L2CA_OPEN_ENHANCED_CHANNEL_RESPONSE-Anforderung enthält dieses Mitglied ein Flag, das die Antwort des Profiltreibers an das Remotegerät angibt. Gültige Flagwerte sind in der folgenden Tabelle enthalten.
Flag | Beschreibung |
---|---|
CONNECT_RSP_RESULT_NO_RESOURCES | Der Profiltreiber hat die Verbindung aufgrund fehlender Ressourcen abgelehnt. |
CONNECT_RSP_RESULT_PENDING | Der Profiltreiber ist derzeit ausgelastet und kann die Verbindung nicht akzeptieren. Versuchen Sie es später noch einmal. |
CONNECT_RSP_RESULT_PSM_NEG | Der Profiltreiber hat die Verbindung abgelehnt, weil der PSM nicht unterstützt wird. |
CONNECT_RSP_RESULT_SECURITY_BLOCK | Der Profiltreiber lehnte die Verbindung aus Sicherheitsgründen ab. |
CONNECT_RSP_RESULT_SUCCESS | Der Profiltreiber hat die Verbindung akzeptiert. |
Für die BRB_L2CA_OPEN_ENHANCED_CHANNEL BRB enthält dieses Element die Antwort des Remotegeräts, mit dem der Profiltreiber versucht hat, eine Verbindung herzustellen. Gültige Flagwerte sind in der folgenden Tabelle enthalten.
Flag | Beschreibung |
---|---|
CONNECT_RSP_RESULT_NO_RESOURCES | Das Remotegerät lehnte die Verbindung aufgrund fehlender Ressourcen ab. |
CONNECT_RSP_RESULT_PSM_NEG | Das Remotegerät hat die Verbindung verweigert. |
CONNECT_RSP_RESULT_SECURITY_BLOCK | Das Remotegerät lehnte die Verbindung aus Sicherheitsgründen ab. |
CONNECT_RSP_RESULT_SUCCESS | Das Remotegerät hat die Verbindung akzeptiert. |
ResponseStatus
Wenn während eines Aufrufs des BRB_L2CA_OPEN_ENHANCED_CHANNEL_RESPONSE BRB das Response-Element auf CONNECT_RSP_RESULT_PENDING festgelegt ist, ist dieser Member gültig und enthält einen der folgenden Werte:
- CONNECT_RSP_STATUS_AUTHENTICATION_PENDING
- CONNECT_RSP_STATUS_AUTHORIZATION_PENDING
- CONNECT_RSP_STATUS_NO_INFORMATION
Hinweise
Profiltreiber können den Modus oder CM_BASIC | CM_STREAMING
für das Flags-Element verwendenCM_BASIC | CM_RETRANSMISSION_AND_FLOW
. Dies bedeutet, dass sie nach Möglichkeit einen erweiterten Modus für die erneute Übertragung oder einen Streamingmoduskanal öffnen und, falls nicht, auf den Standardmoduskanal zurückgreifen.
Der Wert wird CM_RETRANSMISSION_AND_FLOW | CM_STREAMING
nicht unterstützt.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Versionen:_Supported in Windows 8 und höheren Versionen von Windows |
Kopfzeile | bthddi.h (include Bthddi.h) |