Написание процедуры DriverEntry
Каждый драйвер должен иметь подпрограмму DriverEntry , которая инициализирует структуры данных и ресурсы для всего драйвера. При загрузке драйвера диспетчер ввода-вывода вызывает подпрограмму DriverEntry .
В драйвере, поддерживающем Plug and Play (PnP), как и все драйверы, подпрограмма DriverEntry отвечает за инициализацию драйвера, а подпрограмма AddDevice (и, возможно, диспетчеризация, обрабатывающая запрос PnP IRP_MN_START_DEVICE) отвечает за инициализацию устройства. Инициализация драйвера включает экспорт других точек входа драйвера, инициализацию определенных объектов, которые использует драйвер, и настройку различных системных ресурсов для каждого драйвера. (Драйверы, не относящиеся к PnP, имеют значительно другие требования, как описано в пакете средств разработки драйверов [DDK] для Microsoft Windows NT 4.0 и более ранних версий.)
Подпрограммы DriverEntry вызываются в контексте системного потока в IRQL = PASSIVE_LEVEL.
Подпрограмма DriverEntry может быть страничной и должна находиться в сегменте INIT, чтобы она была отменена. Используйте директиву alloc_text pragma, как показано в примерах драйверов, которые входят в комплект драйверов Windows (WDK).
В этом разделе рассматриваются следующие вопросы.
Требуемые обязанности DriverEntry