アプリケーションがストリーム バッファーで動作する場合、midiStreamOut 関数を使用して、すべての (短い) MIDI メッセージと長い MIDI メッセージをデバイスに送信します。 ストリーム・データ・ブロックを指定するには、MIDIHDR および MIDIEVENT 構造体を使用します。 MIDIHDR 構造体には、ロックされたデータ ブロックのアドレス、データ ブロックの長さ、およびいくつかのアソートされたフラグが含まれています。 データは、MIDIEVENT 構造体 形式で格納されます。 システムは、ストリーム バッファーに 64K のサイズ制限を課します。
midiStreamOut を使用してデータのストリームバッファを送信した後、そのデータブロックを解放する前に、デバイスドライバがそのデータブロックの処理を完了するのを待たなければなりません。 複数のデータ ブロックを送信する場合は、追加のブロックを送信するタイミングを把握できるように、各データ ブロックの完了を監視する必要があります。 データブロックの完了を監視するためのさまざまな手法については、「MIDI データブロックの管理」を参照してください。