Función FltAllocateExtraCreateParameterFromLookasideList (fltkernel.h)
La rutina FltAllocateExtraCreateParameterFromLookasideList asigna el grupo de memoria de una lista de lookaside determinada para una estructura de contexto de parámetros de creación adicional (ECP) y genera un puntero a esa estructura.
Sintaxis
NTSTATUS FLTAPI FltAllocateExtraCreateParameterFromLookasideList(
[in] PFLT_FILTER Filter,
[in] LPCGUID EcpType,
[in] ULONG SizeOfContext,
[in] FSRTL_ALLOCATE_ECP_FLAGS Flags,
[in, optional] PFSRTL_EXTRA_CREATE_PARAMETER_CLEANUP_CALLBACK CleanupCallback,
[in, out] PVOID LookasideList,
[out] PVOID *EcpContext
);
Parámetros
[in] Filter
Puntero de filtro opaco al controlador de minifiltro. Este puntero identifica de forma única el controlador de minifiltro y permanece constante siempre que se cargue el controlador de minifiltro.
[in] EcpType
Puntero a un GUID que indica el tipo de la estructura de contexto ecp. Consulte Uso de GUID en Controladores para obtener más información.
[in] SizeOfContext
Tamaño, en bytes, de la estructura de contexto ECP.
[in] Flags
Define las opciones de asignación del grupo. Si el valor del parámetro SizeOfContext es mayor que el tamaño, en bytes, de la lista de lookaside dada, la estructura de contexto ECP se asignará desde el grupo del sistema en lugar de la lista de lookaside. En este caso, si el parámetro Flags contiene el valor de marca de bits FSRTL_ALLOCATE_ECP_FLAG_CHARGE_QUOTA, el grupo del sistema asignado por la rutina se cobrará con la cuota de memoria del proceso actual. Consulte el parámetro Flags de FltAllocateExtraCreateParameter para obtener más información. En el caso más típico cuando la memoria de la estructura de contexto ECP se asigna desde la lista de búsqueda, la marca de bits de FSRTL_ALLOCATE_ECP_FLAG_CHARGE_QUOTA no la usa la rutina.
[in, optional] CleanupCallback
Puntero opcional a una rutina de devolución de llamada de limpieza definida por minifiltro de tipo PFSRTL_EXTRA_CREATE_PARAMETER_CLEANUP_CALLBACK. Se llama a la rutina de devolución de llamada de limpieza cuando se elimina la estructura de contexto ecp. Establezca este parámetro en NULL si no se aplica una rutina de devolución de llamada de limpieza.
[in, out] LookasideList
Puntero a una lista inicializada de aspecto en la que se intenta asignar el grupo desde (para la estructura de contexto ecp). Para inicializar la lista de aspecto, use la rutina FltInitExtraCreateParameterLookasideList .
[out] EcpContext
Recibe un puntero a la estructura de contexto ECP asignada. Si la rutina no pudo asignar suficiente grupo para la estructura de contexto ecp, EcpContext será NULL y la rutina devolverá el código de estado STATUS_INSUFFICIENT_RESOURCES.
Valor devuelto
La rutina FltAllocateExtraCreateParameterFromLookasideList puede devolver uno de los siguientes valores:
Código devuelto | Descripción |
---|---|
STATUS_INSUFFICIENT_RESOURCES | La rutina FltAllocateExtraCreateParameterFromLookasideList no pudo asignar memoria suficiente para una estructura de contexto ECP. En este caso, EcpContext será NULL. |
STATUS_SUCCESS | La estructura del contexto ECP se asignó correctamente. En este caso, el parámetro EcpContext devuelve un puntero a la estructura asignada. |
Comentarios
Esta rutina está disponible a partir de Windows Vista.
La rutina FltAllocateExtraCreateParameterFromLookasideList asigna el grupo de memoria para una estructura de contexto ECP a partir de la lista de lookaside paginada o no paginada especificada. Sin embargo, si el tamaño de la estructura de contexto ECP (definido por el parámetro SizeOfContext ) es mayor que la lista de aspecto, la rutina asigna memoria de forma análoga desde el grupo de sistemas paginado o no paginado.
Use la rutina FltInitExtraCreateParameterLookasideList para inicializar una lista de búsqueda de grupo paginada o no paginada. Use la rutina FltAllocateExtraCreateParameterFromLookasideList para asignar una estructura de contexto ECP de la lista de búsqueda y la rutina FltFreeExtraCreateParameter para desasignar la estructura del contexto ECP.
Use la rutina FltDeleteExtraCreateParameterLookasideList para liberar una lista de aspecto.
Los controladores deben liberar todas las estructuras de contexto ecP y las listas de búsqueda que crean antes de descargarse. Sin embargo, si un sistema de archivos o un controlador de filtro del sistema de archivos adjunta un ECP a un ECP_LIST existente o recién creado mientras procesa una solicitud de IRP_MJ_CREATE, este ECP se limpia automáticamente cuando se completa el IRP. Como resultado, un controlador de filtro no tiene que limpiar las ECP que se agregan dinámicamente. Esto permite que el ECP de un controlador de filtro se propague correctamente en los puntos de reanálisis, un proceso que puede requerir que se generen varias solicitudes de IRP_MJ_CREATE.
Para obtener más información sobre el uso de listas de lookaside con controladores, vea Uso de lookaside Listas.
Requisitos
Requisito | Value |
---|---|
Plataforma de destino | Universal |
Encabezado | fltkernel.h (incluya Fltkernel.h) |
Library | FltMgr.lib |
IRQL | <= APC_LEVEL |
Consulte también
FltAllocateExtraCreateParameter
FltAllocateExtraCreateParameterList
FltDeleteExtraCreateParameterLookasideList
FltFreeExtraCreateParameterList