Compartilhar via


Função FltAllocateCallbackDataEx (fltkernel.h)

A rotina FltAllocateCallbackDataEx aloca uma estrutura de dados de retorno de chamada e pode pré-alocar memória para estruturas adicionais que um driver de minifiltro pode usar para iniciar uma solicitação de E/S.

Sintaxe

NTSTATUS FLTAPI FltAllocateCallbackDataEx(
  [in]          PFLT_INSTANCE                    Instance,
  [in/optional] PFILE_OBJECT                     FileObject,
  [in]          FLT_ALLOCATE_CALLBACK_DATA_FLAGS Flags,
  [out]         PFLT_CALLBACK_DATA               *RetNewCallbackData
);

Parâmetros

[in] Instance

Ponteiro de instância opaca para a instância do driver de minifiltro que está iniciando a operação de E/S. Esse parâmetro é necessário e não pode ser NULL.

[in/optional] FileObject

Ponteiro para um objeto de arquivo a ser usado na operação de E/S. Esse parâmetro é opcional e pode ser NULL. Defina FileObject comoNULL se esta for uma operação CREATE.

[in] Flags

Um valor igual a zero ou o seguinte sinalizador: FLT_ALLOCATE_CALLBACK_DATA_PREALLOCATE_ALL_MEMORY

Se esse sinalizador estiver definido, a rotina pré-alocará toda a memória necessária pelo gerenciador de filtros para que estruturas adicionais sejam usadas em uma solicitação de E/S.

[out] RetNewCallbackData

Ponteiro para uma variável alocada pelo chamador que recebe o endereço dos dados de retorno de chamada recém-alocados FLT_CALLBACK_DATA estrutura.

Retornar valor

A rotina FltAllocateCallbackDataEx retornará STATUS_SUCCESS com êxito ou STATUS_INSUFFICIENT_RESOURCES se a rotina encontrou uma falha de alocação de pool ao tentar alocar a estrutura de dados de retorno de chamada ou se o sinalizador de FLT_ALLOCATE_CALLBACK_DATA_PREALLOCATE_ALL_MEMORY estiver definido e a memória adicional não puder ser alocada.

Comentários

Se o sinalizador FLT_ALLOCATE_CALLBACK_DATA_PREALLOCATE_ALL_MEMORY estiver definido, a rotina alocará toda a memória necessária para que estruturas adicionais do gerenciador de filtros sejam usadas em uma solicitação de E/S subsequente. O uso desse sinalizador permite que um minifiltro pré-aloque uma ou mais estruturas de dados de retorno de chamada a serem usadas para emitir solicitações de E/S em condições de memória baixa ou em situações em que a recuperação de uma falha de alocação de memória pode ser complicada.

Observação

A memória alocada adicional é para uso pelo gerenciador de filtros. O sistema de arquivos ou outros filtros ainda podem falhar na solicitação de E/S devido a uma condição de memória insuficiente.

Importante

Os comentários de FltAllocateCallbackData também se aplicam a FltAllocateCallbackDataEx . Examine essas informações para selecionar a rotina correta para seu design.

Requisitos

Requisito Valor
Cliente mínimo com suporte Disponível no Windows 7 e versões posteriores do sistema operacional Windows.
Plataforma de Destino Universal
Cabeçalho fltkernel.h (inclua FltKernel.h)
Biblioteca FltMgr.lib
IRQL <= APC_LEVEL

Confira também

FLT_CALLBACK_DATA

FltAllocateCallbackData