Предположим, что драйвер устройства был записан, скомпилирован и загружен ОС.Как программы находят и вызывают процедуры драйверов устройств?
Чтобы вызвать его подпрограммы, Я предполагаю, что нужно знать, какие подпрограммы предоставляются драйверами устройства (знаете, его интерфейс/API, я думаю). Итак, я также предполагаю, что мы знаем об этом интерфейсе тоже (исправьте меня, если я ошибаюсь).
Теперь вопрос заключается в том, как мы должны найти точку входа этих подпрограмм, чтобы называть их; или лучше сказать, какая именно процедура вызова подпрограмм драйвера устройства.
Я предполагаю, что это должно быть что-то вроде загрузки динамической библиотеки, в которой компоновщик, наконец, помещает адреса подпрограмм в адресное пространство вызывающих программ.
ПРИМЕЧАНИЕ
Я новичок в этой области, поэтому любая информация/ссылки/иллюстрации действительно ценится.
Давайте поговорим о нестандартном драйвере устройства для нестандартного устройства, такого как, например, роботизированная рука или что-то в этом роде. В этом случае у вас может быть несколько программ, каждый из которых должен общаться с физическим устройством через свой драйвер. Как найти и вызвать подпрограммы драйвера устройства? –
Как правило, производители драйверов предоставляют документацию для - и иногда кода образцов - как вызвать драйвер, например. через DeviceIOControl. Очевидно, что не может быть стандарта для взаимодействия с нестандартным устройством. –