функция обратного вызова PFLT_CONTEXT_ALLOCATE_CALLBACK (fltkernel.h)
Драйвер мини-фильтра может зарегистрировать подпрограмму типа PFLT_CONTEXT_ALLOCATE_CALLBACK в качестве подпрограммы ContextAllocateCallback драйвера мини-фильтра.
Синтаксис
PFLT_CONTEXT_ALLOCATE_CALLBACK PfltContextAllocateCallback;
PVOID PfltContextAllocateCallback(
[in] POOL_TYPE PoolType,
[in] SIZE_T Size,
[in] FLT_CONTEXT_TYPE ContextType
)
{...}
Параметры
[in] PoolType
Тип пула для выделения. Этот параметр является обязательным и должен иметь один из следующих значений:
NonPagedPool
PagedPool
Значение Должно иметь значение NonPagedPool, если параметр ContextType имеет FLT_VOLUME_CONTEXT.
[in] Size
Размер (в байтах) всего контекста, включая часть, определенную диспетчером фильтров, и часть, определенную драйвером минифильтра.
[in] ContextType
Тип контекста. Этот параметр является обязательным и должен иметь одно из следующих значений:
FLT_FILE_CONTEXT (начиная с Windows Vista)
FLT_INSTANCE_CONTEXT
FLT_STREAM_CONTEXT
FLT_STREAMHANDLE_CONTEXT
FLT_SECTION_CONTEXT (начиная с Windows 8)
FLT_TRANSACTION_CONTEXT (начиная с Windows Vista)
FLT_VOLUME_CONTEXT
Возвращаемое значение
Если для удовлетворения запроса доступно недостаточно свободного пула, эта подпрограмма возвращает указатель NULL . В противном случае возвращается указатель на вновь выделенный контекст.
Комментарии
В редких случаях, когда драйвер минифильтра должен выполнять собственное выделение контекста, он может указать подпрограмму типа PFLT_CONTEXT_ALLOCATE_CALLBACK в качестве подпрограммы ContextAllocateCallback для каждого типа контекста, который он регистрирует при вызове FltRegisterFilter из своей подпрограммы DriverEntry . Чтобы указать эту подпрограмму, драйвер мини-фильтра сохраняет указатель на подпрограмму в элементе ContextAllocateCallback структуры FLT_CONTEXT_REGISTRATION для типа контекста.
Дополнительные сведения о регистрации контекста см. в справочной записи для FLT_CONTEXT_REGISTRATION.
Требования
Требование | Значение |
---|---|
Целевая платформа | Персональный компьютер |
Верхняя часть | fltkernel.h (включая Fltkernel.h) |
IRQL | <=APC_LEVEL |