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


функция обратного вызова 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

См. также раздел

FLT_CONTEXT_REGISTRATION

FLT_REGISTRATION

FltRegisterFilter

PFLT_CONTEXT_CLEANUP_CALLBACK

PFLT_CONTEXT_FREE_CALLBACK