Мне нужен некоторый совет относительно программирования окон, MIDI и WDM. Я пытаюсь записать небольшое приложение, которое будет находиться в sys лотке и рекламироваться к системе как MIDI В/Устройство вывода том, так, чтобы программы MIDI могли отправить к нему, и это преобразует сообщения в другой формат. Я читал книгу WDM Наклона и обыскивал для получения информации о записи драйверов устройств, но не знаю, спускаюсь ли я по правильному пути. Я еще не вижу как к:-
a) зарегистрируйте мой драйвер как способный MIDI (я прикрепляю касательно к нему в реестре и позволяю ОС, которую прямой MIDI называет к функциональности в dll?)
b) прямые данные MIDI через мой драйвер к моему приложению, которое, вероятно, будет слишком большим, чтобы быть самим драйвером.
Любой совет относительно того, где запустить, очень ценился бы. спасибо, Pete
Устройства перечисляются (или моделируются) драйверами устройств, а не приложениями. На панели задач вы видите значок приложения. Следовательно, вам понадобятся и драйвер, и приложение - у вас не может быть одного бита скомпилированного кода, действующего как оба.
Что касается драйвера, вы, вероятно, захотите взглянуть на документацию MSDN . Это ответит на часть (а) вопроса о йопуре.
Предполагая, что вы все еще хотите продолжить, (b) лучше не делать этого, позволяя вашему приложению извлекать данные из драйвера. Это намного проще, чем наоборот - приложение может легко найти драйвер, но у драйвера большие проблемы с поиском конкретного приложения (процесса)
Если вы ищете более простой способ начать, существует драйвер MIDI loopback, и люди, которые его делают, также предлагают (или раньше предлагали) его версию, которая позволяет вашей программе напрямую взаимодействовать с драйвером. Это дает вам то поведение, которое вы ищете, когда программа отображается как MIDI-устройство. Драйвер loopback находится по адресу http://nerds.de/en/loopbe1.html. Я больше не вижу страницы разработчика, но если вы свяжетесь с ними, то, возможно, сможете приобрести лицензию на драйвер, к которому вы сможете получить доступ напрямую, без шлейфа.