I have the impression that the BASS_MIDI_FONT_XGDRUMS SoundFont flag cannot be changed without reloading the SoundFont, even if the documentation does not say so.
On a SF with both 127:000 and 128:000 drum kits, disabling 128:000 will make the drum stop playing. Enabling then the BASS_MIDI_FONT_XGDRUMS will not let the playback resume, unless I reload the SF.
Could you please confirm?
Then it seems that for XG files the MIDI_EVENT_DRUMS event is not present in additional drum channels. Should I just check for bank numbers in this case?