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


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

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

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

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

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