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


Написание диспетчерских программ

Обработка любого пакета запросов ввода-вывода (IRP) начинается в диспетчерской подпрограмме, которую драйвер регистрирует для обработки основного кода функции IRP (IRP_MJ_*XXX). Подпрограмма DriverEntry предоставляет точки входа для диспетчерских подпрограмм в таблице отправки в структуре DRIVER_OBJECT*.

Драйвер может предоставить отдельную подпрограмму отправки для каждого основного кода функции ввода-вывода, который он обрабатывает. Кроме того, подпрограммы отправки можно записать для обработки нескольких кодов функций ввода-вывода.

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

Функциональность диспетчерской рутины

Обязательные диспетчерские процедуры

Необязательные подпрограммы отправки

Диспетчерские подпрограммы и IRQLs

Когда нужно проверить расположение стека ввода-вывода драйвера

Подпрограммы DispatchCreate, DispatchClose и DispatchCreateClose

Подпрограммы DispatchCleanup

Подпрограммы DispatchRead, DispatchWrite и DispatchReadWrite

Процедуры DispatchDeviceControl и DispatchInternalDeviceControl

Рутинные подпрограммы DispatchPnP

Подпрограммы DispatchPower

Подпрограммы DispatchQueryInformation

Подпрограммы DispatchSetInformation

Подпрограммы DispatchFlushBuffers

Подпрограммы завершения работы

Подпрограммы управления системой Dispatch