Função FsRtlAllocateExtraCreateParameterFromLookasideList (ntifs.h)
A rotina FsRtlAllocateExtraCreateParameterFromLookasideList aloca o pool de memória de uma determinada lista lookaside para uma estrutura de contexto de parâmetro de criação extra (ECP) e gera um ponteiro para essa estrutura.
Sintaxe
NTSTATUS FsRtlAllocateExtraCreateParameterFromLookasideList(
[in] LPCGUID EcpType,
[in] ULONG SizeOfContext,
[in] FSRTL_ALLOCATE_ECP_FLAGS Flags,
[in, optional] PFSRTL_EXTRA_CREATE_PARAMETER_CLEANUP_CALLBACK CleanupCallback,
[in, out] PVOID LookasideList,
[out] PVOID *EcpContext
);
Parâmetros
[in] EcpType
Ponteiro para um GUID que indica o tipo de ECP para o qual uma estrutura de contexto deve ser alocada. Para obter mais informações sobre ECPs, consulte Usando parâmetros de criação extra com uma operação IRP_MJ_CREATE.
[in] SizeOfContext
O tamanho, em bytes, da estrutura de contexto ECP.
[in] Flags
Define as opções de alocação do pool. Se o valor do parâmetro SizeOfContext for maior que o tamanho, em bytes, da lista lookaside à qual o parâmetro LookasideList aponta, FsRtlAllocateExtraCreateParameterFromLookasideList alocará a estrutura de contexto ECP do pool de sistemas em vez da lista lookaside. Nesse caso, se o parâmetro Flags contiver o valor do sinalizador de bit FSRTL_ALLOCATE_ECP_FLAG_CHARGE_QUOTA, o pool de sistemas alocado por FsRtlAllocateExtraCreateParameterFromLookasideList será cobrado na cota de memória do processo atual. Para obter mais informações sobre valores de sinalizador de bit, consulte o parâmetro Flags de FsRtlAllocateExtraCreateParameter. No caso mais típico, quando FsRtlAllocateExtraCreateParameterFromLookasideList aloca memória para a estrutura de contexto ECP da lista lookaside, FsRtlAllocateExtraCreateParameterFromLookasideList ignora o sinalizador de bit FSRTL_ALLOCATE_ECP_FLAG_CHARGE_QUOTA.
[in, optional] CleanupCallback
Ponteiro opcional para uma rotina de retorno de chamada de limpeza definida por minifiltro do tipo PFSRTL_EXTRA_CREATE_PARAMETER_CLEANUP_CALLBACK. A rotina de retorno de chamada de limpeza é chamada quando a estrutura de contexto ECP é excluída. Defina esse parâmetro para NULL se uma rotina de retorno de chamada de limpeza não for aplicável.
[in, out] LookasideList
Ponteiro para uma lista lookaside inicializada da qual FsRtlAllocateExtraCreateParameterFromLookasideList tenta alocar pool (para a estrutura de contexto ECP). Para inicializar a lista lookaside, use a rotina
[out] EcpContext
Ponteiro para um local que recebe um ponteiro para a estrutura de contexto ECP alocada. Se FsRtlAllocateExtraCreateParameterFromLookasideList não conseguiu alocar pool suficiente para a estrutura de contexto ECP, FsRtlAllocateExtraCreateParameterFromLookasideList define EcpContext para NULL e retorna STATUS_INSUFFICIENT_RESOURCES de código de status.
Valor de retorno
A rotina FsRtlAllocateExtraCreateParameterFromLookasideList
Código de retorno | Descrição |
---|---|
STATUS_INSUFFICIENT_RESOURCES | A rotina |
STATUS_SUCCESS | A estrutura de contexto ECP foi alocada com êxito. Nesse caso, FsRtlAllocateExtraCreateParameterFromLookasideList retorna um ponteiro para a estrutura alocada no parâmetro EcpContext. |
Observações
Use a rotina
Use a rotina
Os drivers devem liberar todas as estruturas de contexto ECP e listas lookaside que eles criam antes de descarregar. No entanto, se um driver de filtro do sistema de arquivos ou sistema de arquivos anexar um ECP a um ECP_LIST existente ou recém-criado durante o processamento de uma solicitação IRP_MJ_CREATE, esse ECP será limpo automaticamente quando o IRP for concluído. Como resultado, um driver de filtro não precisa limpar ECPs adicionados dinamicamente. Isso permite que o ECP de um driver de filtro seja propagado corretamente entre os pontos de nova análise, um processo que pode exigir que várias solicitações IRP_MJ_CREATE sejam geradas.
Para obter mais informações sobre como usar listas lookaside com drivers, consulte Usando listas lookaside.
Requisitos
Requisito | Valor |
---|---|
de cliente com suporte mínimo | FsRtlAllocateExtraCreateParameterFromLookasideList está disponível a partir do Windows Vista. |
da Plataforma de Destino |
Universal |
cabeçalho | ntifs.h (inclua Ntifs.h) |
biblioteca | NtosKrnl.lib |
de DLL |
NtosKrnl.exe |
IRQL | <= APC_LEVEL |
Consulte também
FsRtlDeleteExtraCreateParameterLookasideList