Compartir a través de


Función FsRtlAllocateExtraCreateParameterList (ntifs.h)

La rutina FsRtlAllocateExtraCreateParameterList asigna memoria de grupo paginada para una estructura de ECP_LIST y genera un puntero a esa estructura.

Sintaxis

NTSTATUS FsRtlAllocateExtraCreateParameterList(
  [in]  FSRTL_ALLOCATE_ECPLIST_FLAGS Flags,
  [out] PECP_LIST                    *EcpList
);

Parámetros

[in] Flags

Define las opciones de asignación del grupo. Si la marca de FSRTL_ALLOCATE_ECPLIST_FLAG_CHARGE_QUOTA se combina con el parámetro Flags mediante una operación OR bit a bit, cualquier grupo asignado por FsRtlAllocateExtraCreateParameterList se cobrará con la cuota de memoria del proceso actual.

[out] EcpList

Recibe un puntero a una estructura de lista ECP inicializada. Si FsRtlAllocateExtraCreateParameterList no pudo asignar suficiente grupo, *EcpList será NULL y FsRtlAllocateExtraCreateParameterList devolverá el código de estado STATUS_INSUFFICIENT_RESOURCES.

Valor devuelto

FsRtlAllocateExtraCreateParameterList puede devolver uno de los siguientes valores:

Código devuelto Descripción
STATUS_INSUFFICIENT_RESOURCES FsRtlAllocateExtraCreateParameterList no pudo asignar memoria suficiente para una estructura de lista ECP. En este caso, *EcpList será NULL.
STATUS_SUCCESS La memoria de la estructura ECP_LIST se asignó e inicializó correctamente. En este caso, se devuelve un puntero a la estructura de lista inicializada en el parámetro EcpList .

Comentarios

Si el sistema operativo libera automáticamente la memoria a la que se asigna FsRtlAllocateExtraCreateParameterList depende de cuándo se llama a FsRtlAllocateExtraCreateParameterList , como se muestra en las situaciones siguientes:

  • Un llamador puede invocar FsRtlAllocateExtraCreateParameterList para asignar el ECP_LIST y agregar una o varias estructuras de contexto ECP antes de que el autor de la llamada invoque la rutina IoCreateFileEx . En esta situación, el sistema operativo no libera ninguna de las estructuras de contexto ECP. Por lo tanto, el autor de la llamada puede realizar varias llamadas a IoCreateFileEx con el mismo conjunto de ECP. Cuando el autor de la llamada haya terminado con el ECP_LIST, el autor de la llamada debe llamar a la rutina FltFreeExtraCreateParameter para liberar el ECP_LIST.

  • Mientras un controlador de filtro de sistema de archivos o sistema de archivos procesa una solicitud de IRP_MJ_CREATE , el sistema de archivos o el controlador de filtro del sistema de archivos pueden llamar a FltInsertExtraCreateParameter para asociar un ECP a un ECP_LIST existente. Si el ECP_LIST no existe, el autor de la llamada debe llamar a FsRtlAllocateExtraCreateParameterList para crear el ECP_LIST. En esta situación, el administrador de E/S limpia automáticamente el ECP_LIST y la estructura de contexto ecp cuando finaliza la operación de creación. Esto permite que el ECP del controlador de filtro o del sistema de archivos se propague correctamente en el procesamiento de puntos de reanálisis. Este proceso puede requerir que se generen varias solicitudes de IRP_MJ_CREATE.

Si se usa la marca FSRTL_ALLOCATE_ECPLIST_FLAG_CHARGE_QUOTA con el parámetro Flags , se asigna un grupo paginable. De lo contrario, se asigna un grupo paginable mediante una lista de búsqueda interna.

Requisitos

Requisito Value
Cliente mínimo compatible Windows Vista
Plataforma de destino Universal
Encabezado ntifs.h (incluya Ntifs.h)
Library NtosKrnl.lib
Archivo DLL NtosKrnl.exe
IRQL <= APC_LEVEL

Consulte también

ECP_LIST

FltAllocateExtraCreateParameter

FltAllocateExtraCreateParameterFromLookasideList

FltCreateFileEx2

FltFreeExtraCreateParameter

FltFreeExtraCreateParameterList

FltGetEcpListFromCallbackData

FltInsertExtraCreateParameter

FltRemoveExtraCreateParameter

FltSetEcpListIntoCallbackData

IoCreateFileEx