Função FsRtlAllocateExtraCreateParameterList (ntifs.h)
A rotina FsRtlAllocateExtraCreateParameterList aloca memória de pool de páginas para uma estrutura ECP_LIST e gera um ponteiro para essa estrutura.
Sintaxe
NTSTATUS FsRtlAllocateExtraCreateParameterList(
[in] FSRTL_ALLOCATE_ECPLIST_FLAGS Flags,
[out] PECP_LIST *EcpList
);
Parâmetros
[in] Flags
Define as opções de alocação do pool. Se o sinalizador FSRTL_ALLOCATE_ECPLIST_FLAG_CHARGE_QUOTA for combinado com o parâmetro Flags usando uma operação OR bit a bit, qualquer pool alocado por FsRtlAllocateExtraCreateParameterList será cobrado na cota de memória do processo atual.
[out] EcpList
Recebe um ponteiro para uma estrutura de lista ECP inicializada. Se FsRtlAllocateExtraCreateParameterList não conseguir alocar pool suficiente, *EcpList será NULL e FsRtlAllocateExtraCreateParameterList retornará status código STATUS_INSUFFICIENT_RESOURCES.
Retornar valor
FsRtlAllocateExtraCreateParameterList pode retornar um dos seguintes valores:
Código de retorno | Descrição |
---|---|
STATUS_INSUFFICIENT_RESOURCES | FsRtlAllocateExtraCreateParameterList não pôde alocar memória suficiente para uma estrutura de lista ECP. Nesse caso, *EcpList será NULL. |
STATUS_SUCCESS | A memória da estrutura ECP_LIST foi alocada e inicializada com êxito. Nesse caso, um ponteiro para a estrutura de lista inicializada é retornado no parâmetro EcpList . |
Comentários
Se o sistema operacional libera automaticamente a memória que FsRtlAllocateExtraCreateParameterList aloca depende de quando FsRtlAllocateExtraCreateParameterList é chamado, conforme mostrado nas seguintes situações:
Um chamador pode invocar FsRtlAllocateExtraCreateParameterList para alocar o ECP_LIST e adicionar uma ou mais estruturas de contexto ECP antes que o chamador invoque a rotina IoCreateFileEx . Nessa situação, o sistema operacional não libera nenhuma das estruturas de contexto ECP. Portanto, o chamador pode fazer várias chamadas para IoCreateFileEx com o mesmo conjunto de ECP. Quando o chamador terminar com o ECP_LIST, o chamador deverá chamar a rotina FltFreeExtraCreateParameter para liberar o ECP_LIST.
Enquanto um driver de filtro do sistema de arquivos ou sistema de arquivos processa uma solicitação IRP_MJ_CREATE , o sistema de arquivos ou o driver de filtro do sistema de arquivos pode chamar FltInsertExtraCreateParameter para anexar um ECP a um ECP_LIST existente. Se o ECP_LIST não existir, o chamador deverá chamar FsRtlAllocateExtraCreateParameterList para criar o ECP_LIST. Nessa situação, o ECP_LIST e a estrutura de contexto ECP são limpos automaticamente pelo gerente de E/S quando a operação de criação é concluída. Isso permite que o ECP de um sistema de arquivos ou do driver de filtro seja propagado corretamente no processamento de pontos de nova análise. Esse processo pode exigir que várias solicitações de IRP_MJ_CREATE sejam geradas.
Se o sinalizador FSRTL_ALLOCATE_ECPLIST_FLAG_CHARGE_QUOTA for usado com o parâmetro Flags , um pool paginável será alocado. Caso contrário, um pool paginável será alocado usando uma lista lookaside interna.
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Windows Vista |
Plataforma de Destino | Universal |
Cabeçalho | ntifs.h (inclua Ntifs.h) |
Biblioteca | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | <= APC_LEVEL |
Confira também
FltAllocateExtraCreateParameter
FltAllocateExtraCreateParameterFromLookasideList