共用方式為


_BRB_L2CA_ACL_TRANSFER 結構 (bthddi.h)

_BRB_L2CA_ACL_TRANSFER結構描述讀取異步數據的緩衝區,或將異步數據寫入 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

藍牙驅動程式堆疊所傳回的 L2CAP 通道句柄,以回應先前 的 BRB_L2CA_OPEN_CHANNEL 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 讀取作業應該在 Timeout 成員中指定的毫秒數之後停止。

BufferSize

緩衝區的大小 (以位元組為單位)。

Buffer

輸入緩衝區的指標。

BufferMDL

MDL 輸入緩衝區的指標。

Timeout

讀取動作取消之前,以毫秒為單位的持續時間,且任何耗用到此點的數據都將遺失。

RemainingBufferSize

BRB 呼叫之後緩衝區中剩餘的空間量,以位元組為單位。

備註

若要從 L2CAP 通道讀取異步數據,或將異步數據寫入 L2CAP 通道,配置檔驅動程式應該建置並傳送BRB_L2CA_ACL_TRANSFER要求。

每個 L2CAP 連線都是雙向的,而且可以同時讀取和寫入。

如果未指定逾時,與讀取要求相關聯的 BRB 會維持擱置狀態,直到數據送達或取消為止。 配置文件驅動程式可以將讀取要求保留擱置中,以便接受來自遠端裝置的連入數據。

藍牙驅動程式堆疊會提供一些傳入數據的緩衝處理,因此不需要持續檢查讀取 IRP 是否擱置中。 配置文件驅動程式可以指定要在與BRB_L2CA_OPEN_CHANNEL要求相關聯的 IncomingQueueDepth 成員中提供的緩衝量。

如果在 TransferFlags 成員中設定ACL_TRANSFER_TIMEOUT旗標,且 Timeout 成員中指定的持續時間到期, 則BRB_L2CA_ACL_TRANSFER 要求將會完成並傳回錯誤。

規格需求

需求
最低支援的用戶端 Windows Vista 和更新版本中的版本:_Supported。
標頭 bthddi.h (包含 Bthddi.h)

另請參閱

BRB_HEADER

BRB_L2CA_ACL_TRANSFER

BRB_L2CA_OPEN_CHANNEL

BRB_L2CA_OPEN_CHANNEL_RESPONSE