Что вы подразумеваете под драйвером виртуальной камеры?
Можно написать виртуальное устройство захвата, используя DirectShow.Такое виртуальное устройство захвата может затем использоваться приложениями, такими как Skype и т. Д. Если этого достаточно для ваших нужд, вы можете скачать vcam с http://tmhare.mvps.org/downloads.htm по ссылке «Фильтр источника захвата».
Редактировать: чтобы использовать это устройство захвата в ссылке, которую я разместил, вам необходимо скачать Windows SDK.В Windows SDK есть инструмент под названием «GraphEdit». Если вы выполняете поиск в Интернете, я уверен, что вы сможете найти краткое руководство по GraphEdit.По сути, GraphEdit позволяет создавать мультимедийный конвейер, подключая несколько фильтров.(Это то, что происходит в фоновом режиме, например, когда вы воспроизводите фильм на своем компьютере.) Это может быть что-то вроде
веб-камера -> рендерер
или
файлsource -> некоторый декодер -> renderer
, и вы увидите видео, снятое веб-камерой, или содержимое файла.В загружаемом примере показано, как можно создать виртуальное устройство захвата, т. Е. Похоже, что носители поступают с «реального» устройства захвата, но на самом деле вы можете создать любое видео, которое хотите, если вы адаптируете код к вашим конкретным средствам, например, сделаете скриншот ивыведите это.Такие приложения, как Skype, могут поднять ваше виртуальное устройство захвата, если оно зарегистрировано правильно.
Самый простой способ выяснить, достаточно ли этого для ваших нужд, - это загрузить фильтр источника захвата, зарегистрировать его с помощью команды regsvr32,а затем использовать GraphEdit для вставки источника захвата в график, подключите источник к видеорендереру и нажмите кнопку воспроизведения.Многие из вышеупомянутых концепций / ключевых слов могут показаться вам новыми, но вы можете немного почитать каждую тему, и, возможно, это даст вам возможность начать.
Редактировать 2: Является ли источник захватаПодход фильтра не подходит для ваших требований?1) AFAIR Вы указали в своем (теперь удаленном) ответе, что хотели бы взять снимок экрана и использовать его в качестве устройства виртуальной камеры для использования в таких приложениях, как Skype.
Если это все, что вам нужно, вам НЕ нужно писать драйвер устройства.DirectShow может сделать это превосходно с помощью фильтра источника захвата.Затем вам нужно будет
- изучить некоторые базовые DirectShow
- изменить исходный код фильтра захвата, чтобы получать снимки экрана и т. Д.
НасколькоКниги касаются написания драйвера устройства для достижения того же, я понятия не имею.Я хочу подчеркнуть, что вам нужно определить, действительно ли вам нужно написать драйвер устройства или достаточно просто изменить фильтр захвата с открытым исходным кодом.