PFLT_CONTEXT_ALLOCATE_CALLBACK função de retorno de chamada (fltkernel.h)

Um driver de minifiltro pode registrar uma rotina do tipo PFLT_CONTEXT_ALLOCATE_CALLBACK como a rotina ContextAllocateCallback do driver de minifiltro.

Sintaxe

PFLT_CONTEXT_ALLOCATE_CALLBACK PfltContextAllocateCallback;

PVOID PfltContextAllocateCallback(
  [in] POOL_TYPE PoolType,
  [in] SIZE_T Size,
  [in] FLT_CONTEXT_TYPE ContextType
)
{...}

Parâmetros

[in] PoolType

O tipo de pool a ser alocado. Esse parâmetro é necessário e deve ser um dos seguintes:

NonPagedPool

PagedPool

Deve ser NonPagedPool se o parâmetro ContextType for FLT_VOLUME_CONTEXT.

[in] Size

O tamanho, em bytes, de todo o contexto, incluindo a parte definida pelo gerenciador de filtros e a parte definida pelo driver de minifiltro.

[in] ContextType

O tipo de contexto. Esse parâmetro é necessário e deve ser um dos seguintes valores:

FLT_FILE_CONTEXT (começando com o Windows Vista)

FLT_INSTANCE_CONTEXT

FLT_STREAM_CONTEXT

FLT_STREAMHANDLE_CONTEXT

FLT_SECTION_CONTEXT (começando pelo Windows 8)

FLT_TRANSACTION_CONTEXT (começando com o Windows Vista)

FLT_VOLUME_CONTEXT

Retornar valor

Se não houver pool livre suficiente disponível para atender à solicitação, essa rotina retornará um ponteiro NULL . Caso contrário, ele retornará um ponteiro para o contexto recém-alocado.

Comentários

Para os casos raros em que um driver de minifiltro deve executar sua própria alocação de contexto, ele pode especificar uma rotina do tipo PFLT_CONTEXT_ALLOCATE_CALLBACK como a rotina ContextAllocateCallback para cada tipo de contexto que ele registra quando chama FltRegisterFilter de sua rotina DriverEntry . Para especificar essa rotina, o driver de minifiltro armazena um ponteiro para a rotina no membro ContextAllocateCallback da estrutura FLT_CONTEXT_REGISTRATION para o tipo de contexto.

Para obter mais informações sobre o registro de contexto, consulte a entrada de referência para FLT_CONTEXT_REGISTRATION.

Requisitos

Requisito Valor
Plataforma de Destino Área de Trabalho
Cabeçalho fltkernel.h (inclua Fltkernel.h)
IRQL <=APC_LEVEL

Confira também

FLT_CONTEXT_REGISTRATION

FLT_REGISTRATION

FltRegisterFilter

PFLT_CONTEXT_CLEANUP_CALLBACK

PFLT_CONTEXT_FREE_CALLBACK