_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으로 설정해야 합니다. RetransmissionAndFlow의 ModeConfig 하위 구성원을 사용하여 열 채널 유형을 지정합니다.
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
참조 횟수를 유지할 ObReferenceObject 및 ObDereferenceObject 에 전달할 개체에 대한 포인터입니다.
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 포함) |