共用方式為


_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旗標,且 逾時 成員中指定的持續時間到期,則 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