_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
以前の 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 | 読み取り操作は、 Timeout メンバーで指定されたミリ秒数後に停止する必要があります。 |
BufferSize
バッファーのサイズ (バイト数)。
Buffer
入力バッファーへのポインター。
BufferMDL
MDL 入力バッファーへのポインター。
Timeout
読み取りアクションが取り消され、この時点で使用されたデータが失われるまでの期間 (ミリ秒単位)。
RemainingBufferSize
BRB 呼び出し後にバッファーに残された領域の量 (バイト単位)。
注釈
L2CAP チャネルから非同期データを読み取ったり、L2CAP チャネルに非同期データを書き込んだりするには、プロファイル ドライバーがBRB_L2CA_ACL_TRANSFER要求をビルドして送信する必要があります。
各 L2CAP 接続は双方向であり、読み取りと書き込みが同時に可能です。
タイムアウトが指定されていない場合、データが到着するまで、または取り消されるまで、読み取り要求に関連付けられている BRB は保留中のままになります。 プロファイル ドライバーは、リモート デバイスからの受信データを受け入れるために、読み取り要求を保留中のままにすることができます。
Bluetooth ドライバー スタックは受信データのバッファリングを提供するため、読み取り IRP が保留中かどうかを継続的にチェックする必要はありません。 プロファイル ドライバーは、BRB_L2CA_OPEN_CHANNEL要求に関連付けられている IncomingQueueDepth メンバーで提供するバッファリングの量を指定できます。
TransferFlags メンバーでACL_TRANSFER_TIMEOUT フラグが設定されていて、Timeout メンバーで指定された期間が経過すると、BRB_L2CA_ACL_TRANSFER要求が完了し、エラーが返されます。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows Vista 以降のバージョン:_Supported。 |
Header | bthddi.h (Bthddi.h を含む) |