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
FltAllocateExtraCreateParameter
FltAllocateExtraCreateParameterFromLookasideList