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 |