функцію вивантаження, так як інфраструктура надає її за замовчуванням. p align="justify"> DriverEntryDriverEntry
(PDRIVER_OBJECT DriverObject,// ​​покажчик на об'єкт драйвера WDM PUNICODE_STRING RegistryPath// покажчик на шлях в реєстрі
)
{...}
Це перша функція, що викликається при завантаженні драйвера в ОС. Її викликає диспетчер введення/виведення; функція викликається тільки один раз. Вона повинна виконувати наступні дії:
В· Створення об'єкта драйвера (WDFDRIVER), який представляє завантажений в пам'ять примірник драйвера; створення цього об'єкта реєструє драйвер в інфраструктурі.
В· Реєстрація функції зворотного виклику EvtDriverDeviceAdd.
В· виділення необхідних глобально для драйвера ресурсів.
В· Реєстрація функції зворотного виклику EvtDriverUnload, якщо безпосередньо перед вивантаженням драйверу необхідно здійснити будь-які операції.
У разі успішного завершення функція повертає STATUS_SUCCESS, в іншому випадку - код помилки.
Функція зворотного виклику по події EvtDriverDeviceAdd
NTSTATUS KbFilter_EvtDeviceAdd
(WDFDRIVER Driver,// ​​дескриптор об'єкта драйвера PWDFDEVICE_INIT DeviceInit// покажчик на структуру ініціалізації
)
{...}
Функція відповідає за створення та ініціалізацію об'єкта пристрої (WDFDEVICE) і пов'язаних з ним ресурсів. Викликається інфраструктурою при одержанні повідомлення від менеджера PnP про виявлення нового підключеного пристрою, контрольованого драйвером. p align="justify"> Ця функція виконує наступний набір операцій:
В· заповнення структури ініціалізації інформацією, необхідною для створення об'єкта пристрої;
В· організація області контексту об'єкта пристрою (створення структури розширення);
В· створення об'єкта пристрої;
В· реєстрація функцій зворотного виклику для подій введення/виводу і створення черг введення/виведення для об'єкта пристрої;
В· створення інтерфейсу пристрою, якщо це потрібно;
В· створення об'єкта переривань, якщо пристрій підтримує переривання;
В· створення об'єктів WMI.
У разі успішного завершення функція повертає STATUS_SUCCESS, в іншо...