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

ECP_LIST

FltAllocateExtraCreateParameter

FltAllocateExtraCreateParameterFromLookasideList

FltCreateFileEx2

FltFreeExtraCreateParameter

FltFreeExtraCreateParameterList

FltGetEcpListFromCallbackData

FltInsertExtraCreateParameter

FltRemoveExtraCreateParameter

FltSetEcpListIntoCallbackData

IoCreateFileEx