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 cargará con la cuota de memoria del proceso actual.
[out] EcpList
Recibe un puntero a una estructura de lista ECP inicializada. Si FsRtlAllocateExtraCreateParameterList no se 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. |
Observaciones
Si el sistema operativo libera automáticamente la memoria que FsRtlAllocateExtraCreateParameterList asigna depende de cuándo se llama a FsRtlAllocateExtraCreateParameterList, como se muestra en las situaciones siguientes:
Un autor de llamada 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 se realiza 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 adjuntar 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 | Valor |
---|---|
cliente mínimo admitido | Windows Vista |
de la plataforma de destino de |
Universal |
encabezado de |
ntifs.h (incluya Ntifs.h) |
biblioteca de |
NtosKrnl.lib |
DLL de |
NtosKrnl.exe |
irQL | <= APC_LEVEL |
Consulte también
FltAllocateExtraCreateParameter
FltAllocateExtraCreateParameterFromLookasideList