_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)