Función FsRtlAllocateExtraCreateParameterFromLookasideList (ntifs.h)
La rutina de FsRtlAllocateExtraCreateParameterFromLookasideList asigna un grupo de memoria de una lista de lookaside determinada para una estructura de contexto de parámetro de creación adicional (ECP) y genera un puntero a esa estructura.
Sintaxis
NTSTATUS FsRtlAllocateExtraCreateParameterFromLookasideList(
[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] EcpType
Puntero a un GUID que indica el tipo de ECP para el que se debe asignar una estructura de contexto. Para obtener más información sobre las ECP, vea Using Extra Create Parameters with an IRP_MJ_CREATE Operation.
[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 lookaside a la que apunta el parámetro LookasideList, FsRtlAllocateExtraCreateParameterFromLookasideList asigna la estructura de contexto ECP del 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 de FSRTL_ALLOCATE_ECP_FLAG_CHARGE_QUOTA, el grupo de sistemas asignado por FsRtlAllocateExtraCreateParameterFromLookasideList se cobra con la cuota de memoria del proceso actual. Para obtener más información sobre los valores de marca de bits, vea el parámetro Flags de FsRtlAllocateExtraCreateParameter. En el caso más típico, cuando FsRtlAllocateExtraCreateParameterFromLookasideList asigna memoria para la estructura de contexto ECP de la lista de lookaside, FsRtlAllocateExtraCreateParameterFromLookasideList omite la marca de bits de FSRTL_ALLOCATE_ECP_FLAG_CHARGE_QUOTA.
[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 de lookaside inicializada desde la que FsRtlAllocateExtraCreateParameterFromLookasideList intenta asignar un grupo (para la estructura de contexto ecp). Para inicializar la lista de lookaside, use la rutina FsRtlInitExtraCreateParameterLookasideList.
[out] EcpContext
Puntero a una ubicación que recibe un puntero a la estructura de contexto de ECP asignada. Si FsRtlAllocateExtraCreateParameterFromLookasideList no se pudo asignar suficiente grupo para la estructura de contexto ecP, FsRtlAllocateExtraCreateParameterFromLookasideList establece ecpContext para NULL y devuelve STATUS_INSUFFICIENT_RESOURCES código de estado.
Valor devuelto
La rutina FsRtlAllocateExtraCreateParameterFromLookasideList puede devolver uno de los siguientes valores:
Código devuelto | Descripción |
---|---|
STATUS_INSUFFICIENT_RESOURCES | La rutina FsRtlAllocateExtraCreateParameterFromLookasideList no pudo asignar suficiente memoria para una estructura de contexto ECP. En este caso, el parámetro EcpContext es null. |
STATUS_SUCCESS | La estructura de contexto ecp se asignó correctamente. En este caso, FsRtlAllocateExtraCreateParameterFromLookasideList devuelve un puntero a la estructura asignada en el parámetro EcpContext. |
Observaciones
Use la rutina de FsRtlInitExtraCreateParameterLookasideList para inicializar una lista de lookaside de grupo paginada o no paginada. Use la rutina de FsRtlAllocateExtraCreateParameterFromLookasideList para asignar una estructura de contexto ECP de la lista de lookaside y la rutina de FsRtlFreeExtraCreateParameter para desasignar la estructura del contexto ECP.
Use la rutina de FsRtlDeleteExtraCreateParameterLookasideList 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 controlador de filtro de sistema de archivos o 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 reen aná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 Using Lookaside Lists.
Requisitos
Requisito | Valor |
---|---|
cliente mínimo admitido | FsRtlAllocateExtraCreateParameterFromLookasideList está disponible a partir de 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
FsRtlDeleteExtraCreateParameterLookasideList