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


Присоединение ESP к IRP_MJ_CREATE операциям, которые были созданы драйвером в режиме ядра

Чтобы настроить ESP и присоединить их к IRP_MJ_CREATE операции с файлом, необходимо выполнить следующие действия.

  1. Вызовите метод FltAllocateExtraCreateParameterList или FsRtlAllocateExtraCreateParameterList , чтобы выделить память для структуры ECP_LIST . Операционная система не освобождает ECP_LIST структуры автоматически. Вместо этого драйвер минифильтра должен в конечном итоге вызвать FltFreeExtraCreateParameterList или FsRtlFreeExtraCreateParameterList , чтобы освободить память, выделенную для ECP_LIST.

  2. Вызовите Метод FltAllocateExtraCreateParameter или FsRtlAllocateExtraCreateParameter , чтобы выделить пул памяти со страницами для структуры контекста ECP и создать указатель на нее.

  3. Вызовите метод FltInsertExtraCreateParameter или FsRtlInsertExtraCreateParameter , чтобы вставить структуры контекста ECP в структуру ECP_LIST .

  4. Вызовите IoInitializeDriverCreateContext , чтобы инициализировать структуру IO_DRIVER_CREATE_CONTEXT .

  5. Определите структуру IO_DRIVER_CREATE_CONTEXT . В этом определении укажите элемент ExtraCreateParameterIO_DRIVER_CREATE_CONTEXT на структуру ECP_LIST .

  6. Вызовите Метод FltCreateFileEx2 или IoCreateFileEx , чтобы присоединить ECP к операции IRP_MJ_CREATE в файле. В этом вызове передайте указатель на структуру IO_DRIVER_CREATE_CONTEXT в параметр DriverContext .

  7. Вызовите FltFreeExtraCreateParameterList или FsRtlFreeExtraCreateParameterList , чтобы освободить структуру ECP_LIST . Эти функции также автоматически освобождают все оставшиеся элементы списка ECP.