다음을 통해 공유


_BRB_SCO_TRANSFER 구조체(bthddi.h)

_BRB_SCO_TRANSFER 구조는 등시 데이터를 읽거나 SCO 채널에 등시 데이터를 쓰는 버퍼를 설명합니다.

구문

struct _BRB_SCO_TRANSFER {
  BRB_HEADER         Hdr;
  BTH_ADDR           BtAddress;
  SCO_CHANNEL_HANDLE ChannelHandle;
  ULONG              TransferFlags;
  ULONG              BufferSize;
  PVOID              Buffer;
  PMDL               BufferMDL;
  ULONGLONG          DataTag;
};

멤버

Hdr

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

BtAddress

원격 디바이스의 Bluetooth 주소입니다.

ChannelHandle

이전 BRB_SCO_OPEN_CHANNEL 또는 BRB_SCO_OPEN_CHANNEL_RESPONSE 요청에 대한 응답으로 Bluetooth 드라이버 스택에서 반환된 SCO 채널 핸들입니다.

TransferFlags

BRB의 기본 동작을 지정하는 플래그입니다. 유효한 플래그 값은 다음 표에 나와 있습니다.

플래그 설명
SCO_TRANSFER_DIRECTION_IN 이 비트가 설정되면 BRB는 SCO 채널을 통해 원격 디바이스에서 등시 데이터를 읽습니다.
SCO_TRANSFER_DIRECTION_OUT 이 비트가 설정되면 BRB는 SCO 채널을 통해 원격 디바이스에 등시 데이터를 씁니다.

BufferSize

이 구조체의 Buffer 멤버가 설명한 입력 버퍼의 크기(바이트)입니다.

Buffer

입력 버퍼에 대한 포인터입니다. Buffer 멤버를 사용하지 않는 경우 이 값은 NULL이어야 합니다.

BufferMDL

MDL 입력 버퍼에 대한 포인터입니다. BufferMDL 멤버를 사용하지 않는 경우 이 값은 NULL이어야 합니다.

DataTag

SCO 쓰기

설명

SCO 연결에서 등시 데이터를 읽거나 동시 데이터를 쓰려면 프로필 드라이버가 BRB_SCO_TRANSFER 요청을 빌드하고 보내야 합니다.

각 SCO 연결은 양방향이며 에서 읽고 동시에 쓸 수 있습니다.

데이터가 도착할 때까지 또는 프로필 드라이버가 플러시할 때까지 읽기 BRB는 보류 상태로 유지됩니다. 상위 수준 드라이버는 원격 디바이스에서 들어오는 데이터를 허용하기 위해 언제든지 두 개 이상의 보류 중인 읽기 BRB가 열려 있는 것이 좋습니다.

Bluetooth 드라이버 스택은 들어오는 등시 데이터에 대한 버퍼링을 제공하지 않습니다. 따라서 하나의 읽기 IRP를 완료하고 다음 IRP를 제출하는 것 사이의 작은 간격으로 인해 데이터가 손실될 수 있습니다.

BufferBufferMDLNULL이 아닌 값이 모두 포함된 경우 BufferMDL이 우선합니다.

요구 사항

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

추가 정보

BRB_HEADER

BRB_SCO_OPEN_CHANNEL

BRB_SCO_OPEN_CHANNEL_RESPONSE

BRB_SCO_TRANSFER