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 |