# WBTPrepareSendDataCallback

## 定義

  `#include <nitro/wbt.h>`

      typedef	struct
      {
      	u32 block_id;
      	s32 block_seq_no;
      	void *data_ptr;
      	s16 own_packet_size;
      	u16 padd;
      } WBTPrepareSendDataCallback;

## 説明

WBT_RegisterBlock( )でデータバッファを指定しなかった場合のコールバックで渡される構造体です。
各メンバの内容は以下の通りです。

block_id | 要求されているブロックIDです。
block_seq_no | 要求されているシーケンス番号です。
data_ptr | データバッファを指定するポインタです。
own_packet_size | シーケンス番号の単位となるパケットサイズです。

ユーザは、任意のシーケンス番号 N について
N * own_packet_size バイトの位置から own_packet_size バイト分のデータをすでに準備している場合、
コールバックの中で block_seq_no に N を代入し、data_ptr に該当バッファを指定します。
ただちに応答できるシーケンス番号が何もない場合は data_ptr に NULL を代入します。
指定したバッファはコールバックの呼び出し元でただちにコピーされるので、保持しておく必要はありません。
WBTライブラリは、ユーザコールバックに対して
「前回の要求番号が今回準備され、今回の要求番号が次回までに準備される」
という流れにおいて効率良く処理が進むように順次シーケンス番号を要求します。

## 参照

``

## 履歴

2004/09/21 初版