_BRB_L2CA_ACL_TRANSFER 구조체(bthddi.h)
_BRB_L2CA_ACL_TRANSFER 구조는 비동기 데이터를 L2CAP 채널에서 읽거나 L2CAP 채널에 쓰는 버퍼를 설명합니다.
통사론
struct _BRB_L2CA_ACL_TRANSFER {
BRB_HEADER Hdr;
BTH_ADDR BtAddress;
L2CAP_CHANNEL_HANDLE ChannelHandle;
ULONG TransferFlags;
ULONG BufferSize;
PVOID Buffer;
PMDL BufferMDL;
LONGLONG Timeout;
ULONG RemainingBufferSize;
};
회원
Hdr
현재 BRB에 대한 정보를 포함하는 BRB_HEADER 구조체입니다.
BtAddress
원격 디바이스의 주소입니다.
ChannelHandle
이전 BRB_L2CA_OPEN_CHANNEL 대한 응답으로 Bluetooth 드라이버 스택에서 반환된 L2CAP 채널 핸들 또는 BRB_L2CA_OPEN_CHANNEL_RESPONSE 요청입니다.
TransferFlags
인터페이스의 기본 동작을 지정하는 플래그의 조합입니다. 여러 플래그를 동시에 설정할 수 있습니다. 유효한 플래그 값은 다음 표에 설명되어 있습니다.
기 | 묘사 |
---|---|
ACL_SHORT_TRANSFER_OK | 이 비트가 설정되면 버퍼가 가득 찼기 전에 읽기 작업을 완료할 수 있습니다. ACL_TRANSFER_DIRECTION_IN 함께 설정할 수 있습니다. |
ACL_TRANSFER_DIRECTION_IN | 이 비트를 설정하면 원격 디바이스에서 데이터가 수신됩니다. 이 플래그는 ACL_TRANSFER_DIRECTION_OUT 함께 설정할 수 없습니다. |
ACL_TRANSFER_DIRECTION_OUT | 이 비트를 설정하면 데이터가 원격 디바이스로 전송됩니다. 이 플래그는 ACL_TRANSFER_DIRECTION_IN 함께 설정할 수 없습니다. |
ACL_TRANSFER_TIMEOUT | 읽기 작업은 시간 제한 멤버에 지정된 시간(밀리초) 후에 중지되어야 합니다. |
BufferSize
버퍼의 크기(바이트)입니다.
Buffer
입력 버퍼에 대한 포인터입니다.
BufferMDL
MDL 입력 버퍼에 대한 포인터입니다.
Timeout
읽기 작업이 취소되고 이 시점에 사용된 모든 데이터가 손실되기 전의 기간(밀리초)입니다.
RemainingBufferSize
BRB 호출 후 버퍼에 남아 있는 공간(바이트)입니다.
발언
L2CAP 채널에서 비동기 데이터를 읽거나 L2CAP 채널에 비동기 데이터를 쓰려면 프로필 드라이버가 BRB_L2CA_ACL_TRANSFER 요청을 빌드하고 보내야.
각 L2CAP 연결은 양방향이며 동시에 읽고 쓸 수 있습니다.
시간 제한을 지정하지 않으면 읽기 요청과 연결된 BRB는 데이터가 도착할 때까지 또는 취소될 때까지 보류 상태로 유지됩니다. 프로필 드라이버는 원격 디바이스에서 들어오는 데이터를 허용하기 위해 읽기 요청을 보류 상태로 둘 수 있습니다.
Bluetooth 드라이버 스택은 들어오는 데이터의 일부 버퍼링을 제공하므로 읽기 IRP가 보류 중인지 지속적으로 확인할 필요가 없습니다. 프로필 드라이버는 BRB_L2CA_OPEN_CHANNEL 요청과 연결된 IncomingQueueDepth 멤버에 제공할 버퍼링의 양을 지정할 수 있습니다.
ACL_TRANSFER_TIMEOUT 플래그가 TransferFlags 멤버에 설정되고 Timeout 멤버에 지정된 기간이 만료되면 BRB_L2CA_ACL_TRANSFER 요청이 완료되고 오류가 반환됩니다.
요구 사항
요구 | 값 |
---|---|
지원되는 최소 클라이언트 | 버전:windows Vista 이상에서 _Supported. |
헤더 | bthddi.h(Bthddi.h 포함) |