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) |