다음을 통해 공유


_BRB_L2CA_OPEN_ENHANCED_CHANNEL 구조체(bthddi.h)

_BRB_L2CA_OPEN_ENHANCED_CHANNEL 구조는 원격 디바이스에 대한 향상된 L2CAP 채널을 열거나 원격 디바이스에서 시작된 들어오는 향상된 L2CAP 연결 요청을 수락/거부하는 응답을 보내는 데 사용됩니다.

구문

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

멤버

Hdr

현재 BRB에 대한 정보를 포함하는 BRB_HEADER 구조체입니다.

ChannelHandle

성공적인 연결 시 연결을 식별하는 데 사용되는 핸들입니다. BRB_L2CA_OPEN_CHANNEL 보낼 때 BRB가 완료되면 채워집니다. BRB_L2CA_OPEN_CHANNEL_RESPONSE 요청을 보낼 때 BRB를 보내기 전에 서버에서 채워야 합니다. 할당된 값은 IndicationRemoteConnect 중에 전달된 값이어야 합니다 INDICATION_PARAMETERS::ConnectionHandle .

Response

BRB_L2CA_OPEN_CHANNEL_RESPONSE 함께만 사용됩니다. CONNECT_RSP_RESULT_Xxx 값 중 하나가 사용됩니다.

BRB가 STATUS_REQUEST_NOT_ACCEPTED 상태 반환하는 경우 응답에는 원격 호스트의 부정적인 응답이 포함됩니다.

ResponseStatus

응답이 CONNECT_RSP_RESULT_PENDING 같으면 이 필드가 유효합니다. CONNECT_RSP_STATUS_XXX 값 중 하나가 사용됩니다.

Psm

채널이 원격 디바이스에 연결하는 데 사용하는 프로토콜/서비스 멀티플렉서(PSM)입니다. BRB_L2CA_OPEN_ENHANCED_CHANNEL 요청과 함께 사용하는 경우 이 멤버는 입력 필드로 설정됩니다. BRB_L2CA_OPEN_ENHANCED_CHANNEL_RESPONSE 요청과 함께 사용할 경우 이 멤버는 출력 필드로 사용됩니다.

ChannelFlags

채널 열기에 대한 요구 사항을 지정하는 플래그입니다. 유효한 플래그 값은 다음 표에 나와 있습니다.

플래그 설명
CF_LINK_AUTHENTICATED 링크를 인증해야 합니다.
CF_LINK_ENCRYPTED 링크를 암호화해야 합니다. 이 플래그를 설정하면 CF_LINK_AUTHENTICATED 플래그도 설정됩니다.
CF_LINK_SUPPRESS_PIN 프로필 드라이버는 사용자에게 PIN을 묻는 메시지가 표시되지 않는 기본 설정을 나타냅니다.

BtAddress

연결이 의도된 디바이스의 Bluetooth 주소입니다.

ConfigOut

원격 디바이스로 전송된 BRB_L2CA_OPEN_ENHANCED_CHANNEL BRB에 대한 매개 변수 설정을 포함하는 하위 구조입니다.

ConfigOut.Flags

채널 열기에 대한 요구 사항을 지정하는 플래그입니다. 유효한 플래그 값은 다음 표에 나와 있습니다.

플래그 설명
CF_LINK_AUTHENTICATED 링크를 인증해야 합니다.
CF_LINK_ENCRYPTED 링크를 암호화해야 합니다. 이 플래그를 설정하면 CF_LINK_AUTHENTICATED 플래그도 설정됩니다.
CF_LINK_SUPPRESS_PIN 프로필 드라이버는 사용자에게 PIN을 묻는 메시지가 표시되지 않는 기본 설정을 나타냅니다.
CFG_ENHANCED ModeConfig 구조체가 유효한지 지정합니다.
CFG_FCS Fcs 값이 유효한지 지정합니다.

ConfigOut.Mtu

채널의 아웃바운드 절반 크기를 협상하는 데 사용되는 MTU(메시지 전송 단위) 범위입니다.

ConfigOut.FlushTO

채널의 아웃바운드 절반에 대한 플러시 시간 제한에 사용할 수 있는 값의 범위입니다.

ConfigOut.Flow

다음에 사용하도록 예약됩니다. 사용하지 마십시오.

ConfigOut.LinkTO

링크 관리자 링크 시간 제한입니다.

ConfigOut.NumExtraOptions

ExtraOptions 멤버에 포함된 배열 항목의 수입니다. 이 값은 대부분의 클라이언트에 대해 0이어야 합니다.

ConfigOut.ExtraOptions

추가 옵션. 이 값은 대부분의 클라이언트에 대해 0이어야 합니다.

ConfigOut.LocalQos

다음에 사용하도록 예약됩니다. 사용하지 마십시오.

ConfigOut.LocalQos.ServiceType

다음에 사용하도록 예약됩니다. 사용하지 마십시오.

ConfigOut.LocalQos.Latency

다음에 사용하도록 예약됩니다. 사용하지 마십시오.

ConfigOut.ModeConfig

열려는 L2CAP 채널의 유형을 지정합니다. 이 구조체는 CFG_ENHANCED 플래그가 지정된 경우에만 유효합니다.

ConfigOut.ModeConfig.Flags

요청된 L2CAP 채널 모드의 유형을 지정합니다.

플래그 설명
CM_BASIC 기본 모드 채널을 엽니다.
CM_RETRANSMISSION_AND_FLOW 향상된 재전송 모드 채널을 엽니다.
CM_STREAMING 스트리밍 모드 채널을 엽니다.

ConfigOut.ModeConfig.RetransmissionAndFlow

CM_RETRANSMISSION_AND_FLOW 및 CM_STREAMING 모드에 대한 옵션을 지정합니다. Flags 멤버에 CM_BASIC 지정한 경우 이 구조체는 0이어야 합니다.

RetransmissionAndFlow모드 하위 구성원은 0으로 설정해야 합니다. RetransmissionAndFlowModeConfig 하위 구성원을 사용하여 열 채널 유형을 지정합니다.

ConfigOut.Fcs

향상된 L2CAP 채널에 FCS를 사용할지 여부를 지정합니다. 이 값은 flags 멤버에 CM_RETRANSMISSION_AND_FLOW 또는 CM_STREAMING 플래그가 지정된 경우에만 유효합니다.

ConfigOut.ExtendedFlowSpec

지원되지 않습니다.

ConfigOut.ExtendedWindowSize

지원되지 않습니다.

ConfigIn

원격 디바이스에서 전송되는 들어오는 BRB_L2CA_OPEN_ENHANCED_CHANNEL_RESPONSE BRB의 유효성을 검사하기 위한 매개 변수 설정이 포함된 하위 구조입니다.

ConfigIn.Flags

채널 열기에 대한 요구 사항을 지정하는 플래그입니다. 유효한 플래그 값은 다음 표에 나와 있습니다.

플래그 설명
CF_LINK_AUTHENTICATED 링크를 인증해야 합니다.
CF_LINK_ENCRYPTED 링크를 암호화해야 합니다. 이 플래그를 설정하면 CF_LINK_AUTHENTICATED 플래그도 설정됩니다.
CF_LINK_SUPPRESS_PIN 프로필 드라이버는 사용자에게 PIN을 묻는 메시지가 표시되지 않는 기본 설정을 나타냅니다.

ConfigIn.Mtu

채널의 인바운드 절반 크기를 협상하는 데 사용되는 MTU(메시지 전송 단위) 범위입니다.

ConfigIn.FlushTO

채널의 인바운드 절반에 대한 플러시 시간 제한에 사용할 수 있는 값의 범위입니다.

CallbackFlags

이벤트가 발생했음을 프로필 드라이버에 알리기 위해 콜백 루틴을 생성해야 하는 이벤트를 지정하는 플래그입니다. 유효한 플래그 값은 다음 표에 포함되어 있습니다.

플래그 설명
CALLBACK_CONFIG_EXTRA_IN 설정된 경우 원격 디바이스에 대한 구성 요청에 추가 옵션이 포함된 경우 콜백 루틴이 호출됩니다. 설정하지 않으면 추가 구성 옵션이 알 수 없는 옵션으로 거부됩니다. 이 플래그는 BRB_L2CA_OPEN_ENHANCED_CHANNEL_RESPONSE BRB와 함께 사용됩니다.
CALLBACK_CONFIG_EXTRA_OUT 설정된 경우 원격 디바이스가 BRB_L2CA_OPEN_ENHANCED_CHANNEL 요청에서 추가 구성 옵션을 거부할 때 콜백 루틴이 호출됩니다. 설정되지 않고 원격 디바이스가 추가 옵션으로 인해 구성 요청을 거부하는 경우 연결이 닫힙니다.
CALLBACK_CONFIG_QOS 설정된 경우 원격 디바이스가 QOS 값이 포함된 구성 요청을 보낼 때 콜백 루틴이 호출됩니다. 이 플래그가 설정되지 않고 원격 디바이스가 구성 요청에서 QOS 매개 변수를 보내거나 프로필 드라이버의 요청된 QOS 매개 변수를 거부하는 경우 연결이 끊어집니다.
CALLBACK_DISCONNECT 설정된 경우 원격 디바이스가 향상된 L2CAP 채널에서 연결이 끊어지면 콜백 루틴이 호출됩니다.
CALLBACK_RECV_PACKET 설정된 경우 프로필 드라이버가 들어오는 향상된 L2CAP 패킷을 수신할 때 콜백 루틴이 호출됩니다.

Callback

프로필 드라이버에서 구현 한 향상된 L2CAP 콜백 함수 로, Bluetooth 드라이버 스택이 를 호출하여 프로필 드라이버에 향상된 L2CAP 연결의 변경 내용을 알려야 합니다.

CallbackContext

콜백 멤버에 지정된 콜백 함수에 전달할 컨텍스트입니다. 프로필 드라이버는 이 값을 정의합니다.

ReferenceObject

참조 횟수를 유지할 ObReferenceObjectObDereferenceObject 에 전달할 개체에 대한 포인터입니다.

OutResults

아웃바운드 요청에 대해 협상된 구성 매개 변수를 포함하는 CHANNEL_CONFIG_RESULTS_ENHANCED 구조체입니다.

InResults

인바운드 요청에 대해 협상된 구성 매개 변수를 포함하는 CHANNEL_CONFIG_RESULTS_ENHANCED 구조체입니다.

IncomingQueueDepth

들어오는 큐 길이를 MTU(메시지 전송 단위)로 지정합니다.

Reserved

예약된 멤버입니다. 사용하지 마십시오.

응답

이 멤버는 BRB_L2CA_OPEN_ENHANCED_CHANNEL 요청에 대한 입력 매개 변수 및 BRB_L2CA_OPEN_ENHANCED_CHANNEL_RESPONSE요청에 대한 출력 매개 변수로 사용됩니다.

BRB_L2CA_OPEN_ENHANCED_CHANNEL_RESPONSE 요청의 경우 이 멤버는 원격 디바이스에 대한 프로필 드라이버의 응답을 나타내는 플래그를 보유합니다. 유효한 플래그 값은 다음 표에 포함되어 있습니다.

플래그 설명
CONNECT_RSP_RESULT_NO_RESOURCES 프로필 드라이버는 리소스 부족으로 인해 연결을 거부했습니다.
CONNECT_RSP_RESULT_PENDING 프로필 드라이버가 현재 사용 중이며 연결을 수락할 수 없습니다. 나중에 다시 시도하십시오.
CONNECT_RSP_RESULT_PSM_NEG PSM이 지원되지 않으므로 프로필 드라이버가 연결을 거부했습니다.
CONNECT_RSP_RESULT_SECURITY_BLOCK 프로필 드라이버는 보안상의 이유로 연결을 거부했습니다.
CONNECT_RSP_RESULT_SUCCESS 프로필 드라이버가 연결을 수락했습니다.

BRB_L2CA_OPEN_ENHANCED_CHANNEL BRB의 경우 이 멤버는 프로필 드라이버가 연결을 시도한 원격 디바이스의 응답을 포함합니다. 유효한 플래그 값은 다음 표에 포함되어 있습니다.

플래그 설명
CONNECT_RSP_RESULT_NO_RESOURCES 원격 디바이스가 리소스 부족으로 연결을 거부했습니다.
CONNECT_RSP_RESULT_PSM_NEG 원격 디바이스가 연결을 거부했습니다.
CONNECT_RSP_RESULT_SECURITY_BLOCK 원격 디바이스가 보안상의 이유로 연결을 거부했습니다.
CONNECT_RSP_RESULT_SUCCESS 원격 디바이스가 연결을 수락했습니다.

ResponseStatus

BRB_L2CA_OPEN_ENHANCED_CHANNEL_RESPONSE BRB를 호출하는 동안 응답 멤버가 CONNECT_RSP_RESULT_PENDING 설정된 경우 이 멤버는 유효하며 다음 값 중 하나를 포함합니다.

  • CONNECT_RSP_STATUS_AUTHENTICATION_PENDING
  • CONNECT_RSP_STATUS_AUTHORIZATION_PENDING
  • CONNECT_RSP_STATUS_NO_INFORMATION

설명

프로필 드라이버는 Flags 멤버에 대해 또는 CM_BASIC | CM_STREAMING 모드를 사용할 CM_BASIC | CM_RETRANSMISSION_AND_FLOW수 있습니다. 이는 향상된 재전송 모드를 열거나 가능하면 스트리밍 모드 채널을 열고 기본 모드 채널로 대체하지 않을 경우 를 나타냅니다. 값 CM_RETRANSMISSION_AND_FLOW | CM_STREAMING 은 지원되지 않습니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 버전:Windows 8 이상 버전의 Windows에서 _Supported
머리글 bthddi.h(Bthddi.h 포함)