Compartir a través de


estructura _BRB_L2CA_ACL_TRANSFER (bthddi.h)

La estructura _BRB_L2CA_ACL_TRANSFER describe un búfer para leer datos asincrónicos de o escribir datos asincrónicos en un canal L2CAP.

Sintaxis

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

Miembros

Hdr

Estructura BRB_HEADER que contiene información sobre el BRB actual.

BtAddress

La dirección del dispositivo remoto.

ChannelHandle

Identificador de canal L2CAP devuelto por la pila de controladores Bluetooth en respuesta a un BRB_L2CA_OPEN_CHANNEL anterior o BRB_L2CA_OPEN_CHANNEL_RESPONSE solicitud.

TransferFlags

Combinación de marcas que especifica el comportamiento básico de la interfaz. Se pueden establecer varias marcas al mismo tiempo. Los valores de marca válidos se describen en la tabla siguiente:

Marca Descripción
ACL_SHORT_TRANSFER_OK Si se establece este bit, la operación de lectura se puede completar antes de que el búfer esté lleno. Esto solo se puede establecer en combinación con ACL_TRANSFER_DIRECTION_IN.
ACL_TRANSFER_DIRECTION_IN Si se establece este bit, los datos se recibirán desde el dispositivo remoto. Esta marca no se puede establecer en combinación con ACL_TRANSFER_DIRECTION_OUT.
ACL_TRANSFER_DIRECTION_OUT Si se establece este bit, los datos se enviarán al dispositivo remoto. Esta marca no se puede establecer en combinación con ACL_TRANSFER_DIRECTION_IN.
ACL_TRANSFER_TIMEOUT La operación de lectura debe detenerse después del número de milisegundos especificado en el miembro Timeout .

BufferSize

Tamaño del búfer en bytes.

Buffer

Puntero al búfer de entrada.

BufferMDL

Puntero al búfer de entrada MDL.

Timeout

La duración, en milisegundos, antes de cancelar la acción de lectura y se pierden los datos consumidos hasta este punto.

RemainingBufferSize

La cantidad de espacio, en bytes, se deja en el búfer después de la llamada BRB.

Comentarios

Para leer datos asincrónicos de o escribir datos asincrónicos en un canal L2CAP, los controladores de perfil deben compilar y enviar una solicitud de BRB_L2CA_ACL_TRANSFER .

Cada conexión L2CAP es bidireccional y se puede leer y escribir simultáneamente.

Si no se especifica ningún tiempo de espera, los BRB asociados a una solicitud de lectura permanecerán pendientes hasta que lleguen los datos o hasta que se cancelen. Los controladores de perfil pueden dejar pendiente una solicitud de lectura para aceptar los datos entrantes del dispositivo remoto.

La pila del controlador Bluetooth proporciona cierto almacenamiento en búfer de los datos entrantes, por lo que no es necesario comprobar continuamente si hay un IRP de lectura pendiente. Un controlador de perfil puede especificar la cantidad de almacenamiento en búfer que se va a proporcionar en el miembro IncomingQueueDepth asociado a una solicitud de BRB_L2CA_OPEN_CHANNEL .

Si la marca ACL_TRANSFER_TIMEOUT se establece en el miembro TransferFlags y la duración especificada en el miembro Timeout expira, la solicitud de BRB_L2CA_ACL_TRANSFER se completará y devolverá un error.

Requisitos

Requisito Value
Cliente mínimo compatible Versions:_Supported en Windows Vista y versiones posteriores.
Encabezado bthddi.h (incluya Bthddi.h)

Consulte también

BRB_HEADER

BRB_L2CA_ACL_TRANSFER

BRB_L2CA_OPEN_CHANNEL

BRB_L2CA_OPEN_CHANNEL_RESPONSE