функция обратного вызова PFLT_CONTEXT_ALLOCATE_CALLBACK (fltkernel.h)

Драйвер минифильтра может зарегистрировать подпрограмму типа PFLT_CONTEXT_ALLOCATE_CALLBACK в качестве подпрограммы драйвера minifilter 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 (include Fltkernel.h)
IRQL <=APC_LEVEL

См. также

FLT_CONTEXT_REGISTRATION

FLT_REGISTRATION

FltRegisterFilter

PFLT_CONTEXT_CLEANUP_CALLBACK

PFLT_CONTEXT_FREE_CALLBACK