Поделиться через


Написание подпрограммы для 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, поэтому она будет удалена. Используйте директиву pragma alloc_text , как показано в примерах драйверов, предоставляемых комплектом драйверов Windows (WDK).

В этом разделе содержатся следующие разделы:

Обязательные функции DriverEntry

Необязательные функции DriverEntry

Возвращаемые значения функции DriverEntry