Присоединение ESP к IRP_MJ_CREATE операциям, которые были созданы драйвером в режиме ядра
Чтобы настроить ESP и присоединить их к IRP_MJ_CREATE операции с файлом, необходимо выполнить следующие действия.
Вызовите метод FltAllocateExtraCreateParameterList или FsRtlAllocateExtraCreateParameterList , чтобы выделить память для структуры ECP_LIST . Операционная система не освобождает ECP_LIST структуры автоматически. Вместо этого драйвер минифильтра должен в конечном итоге вызвать FltFreeExtraCreateParameterList или FsRtlFreeExtraCreateParameterList , чтобы освободить память, выделенную для ECP_LIST.
Вызовите Метод FltAllocateExtraCreateParameter или FsRtlAllocateExtraCreateParameter , чтобы выделить пул памяти со страницами для структуры контекста ECP и создать указатель на нее.
Вызовите метод FltInsertExtraCreateParameter или FsRtlInsertExtraCreateParameter , чтобы вставить структуры контекста ECP в структуру ECP_LIST .
Вызовите IoInitializeDriverCreateContext , чтобы инициализировать структуру IO_DRIVER_CREATE_CONTEXT .
Определите структуру IO_DRIVER_CREATE_CONTEXT . В этом определении укажите элемент ExtraCreateParameterIO_DRIVER_CREATE_CONTEXT на структуру ECP_LIST .
Вызовите Метод FltCreateFileEx2 или IoCreateFileEx , чтобы присоединить ECP к операции IRP_MJ_CREATE в файле. В этом вызове передайте указатель на структуру IO_DRIVER_CREATE_CONTEXT в параметр DriverContext .
Вызовите FltFreeExtraCreateParameterList или FsRtlFreeExtraCreateParameterList , чтобы освободить структуру ECP_LIST . Эти функции также автоматически освобождают все оставшиеся элементы списка ECP.