PFLT_CONTEXT_ALLOCATE_CALLBACK função de retorno de chamada (fltkernel.h)
Um driver de minifiltro pode registrar uma rotina de tipo PFLT_CONTEXT_ALLOCATE_CALLBACK como rotina de 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
do 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 com o Windows 8)
FLT_TRANSACTION_CONTEXT (começando com o Windows Vista)
FLT_VOLUME_CONTEXT
Valor de retorno
Se não houver pool gratuito suficiente disponível para atender à solicitação, essa rotina retornará um ponteiro de NULL. Caso contrário, ele retornará um ponteiro para o contexto recém-alocado.
Observações
Para os casos raros em que um driver de minifiltro deve executar sua própria alocação de contexto, ele pode especificar uma rotina de tipo PFLT_CONTEXT_ALLOCATE_CALLBACK como a rotina ContextAllocateCallback para cada tipo de contexto que ele registra quando chama FltRegisterFilter de sua rotina de DriverEntry. Para especificar essa rotina, o driver de minifiltro armazena um ponteiro para a rotina no ContextAllocateCallback membro 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 |
---|---|
da Plataforma de Destino | Área de trabalho |
cabeçalho | fltkernel.h (inclua Fltkernel.h) |
IRQL | <=APC_LEVEL |