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


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

Драйвер DRIVER_DISPATCH IRP с кодами функций ввода-вывода IRP_MJ_CREATE и IRP_MJ_CLOSE соответственно. Кроме того, объединенная подпрограмма DispatchCreateClose может обрабатывать irP для обоих этих кодов функций ввода-вывода.

Запрос на создание может исходить либо из попытки подсистемы пользовательского режима получить дескриптор к объекту файла, представляющего устройство (возможно, от имени приложения или драйвера уровня подсистемы), либо при вызове драйвера более высокого уровня к IoGetDeviceObjectPointer или IoAttachDevice.

Обратный запрос на закрытие исходит от закрытия подсистемы пользовательского режима дескриптора файлового объекта, связанного с объектом устройства драйвера.

Каждый из этих запросов по своей природе является синхронным.