Уточняя уже представленную ранее метафору, что драйвер есть DLL режима ядра, можно сказать, что драйвер представляет собой всего лишь коллекцию процедур, которые вызываются системным программным обеспечением, как правило, Диспетчером ввода/вывода. Драйверные процедуры пассивно ожидают того момента, когда к ним обратится программный код Диспетчера ввода/вывода.
В зависимости от назначения драйвера, Диспетчер ввода/вывода может вызывать процедуры драйвера в следующих ситуациях:
При загрузке драйвера.
При выгрузке драйвера и выполнении отката системы.
В моменты, когда устройство, обслуживаемое драйвером, подключается или удаляется из системной конфигурации.
Программы пользовательского режима выполняют вызовы системных служб для ввода/вывода.
Совместно используемые аппаратные ресурсы становятся доступными для использования драйвером.
В различные моменты во время реального функционирования обслуживаемого устройства (скажем, для обработки прерывания, поступившего от обслуживаемого устройства).
В моменты, связанные с изменениями в энергоснабжении.
При опросе конфигурации устройства PnP Менеджером.
Ниже приводится краткое описание основных категорий процедур, входящих в состав драйвера режима ядра.