Водитель изолированный от сухопутного пространства пользователя, и те функции драйвера устройства существуют в пределах области ядра.
Однако, как правило, есть сопровождающая библиотека, которая разговаривает с водителем, открывая специально обозначенное имя файла, например: XXXXX
, в котором библиотека записывает определенную последовательность байтов в этот файл, чтобы поговорить с драйвером. Тогда этот код API будет доступен для пользовательского пространства земли, кода высокого уровня, такого как, в данном случае, C#.
Например, зарезервированные имена файлов, такие как classi one, являются NUL, который является зарезервированным именем файла (может быть nul), в котором перенаправление на него эквивалентно Unix/Linux /dev/null
.
Драйвер должен явно разоблачить его. Если не через обычное чтение/запись, то через ioctl вы будете вызывать DeviceIoControl() в вашей программе на C#. –