midiOutPrepareHeader、midiInPrepareHeader は、いくつかのデータ フィールドをセットアップするだけですか?それとも、より時間のかかる処理を行いますか?
必要に応じて MIDIHDR を構築および破棄するか、それらのプールを維持するかを決定しようとしています。
(Windowsソースなしで)伝える方法は2つしかありません。
1)プロファイルします。所要時間の調査結果に応じて、アプリケーションで許容できると思われる時間よりも突然長くかかったときにログに記録するデバッグ専用のスコープタイマーを用意するか、プールソリューションを実行します。ドキュメントには、prepare関数を呼び出した後はバッファを変更しないように記載されていますが、再利用したい場合は、変更する必要があるようです。私は、提案されたソリューションが機能するかどうかをいずれかの方法で言うには、ドキュメントに精通していません。
2)アセンブリをステップスルーし、を参照してください。恐れることはありません。MSFTパブリックシンボルを取得して、フィールドに入力しているだけなのか、それとも複雑なことをしているのかを確認します。