Función RxPurgeRelatedFobxs (scavengr.h)

RxPurgeRelatedFobxs purga todas las estructuras FOBX asociadas a una estructura de NET_ROOT.

Sintaxis

NTSTATUS RxPurgeRelatedFobxs(
  PNET_ROOT   NetRoot,
  PRX_CONTEXT RxContext,
  BOOLEAN     AttemptFinalization,
  PFCB        PurgingFcb
);

Parámetros

NetRoot

Puntero a la estructura NET_ROOT para la que se deben purgar las estructuras FOBX.

RxContext

Puntero a la estructura RX_CONTEXT.

AttemptFinalization

Valor booleano que indica si se debe producir un intento de finalizar y liberar la estructura FCB asociada.

PurgingFcb

Puntero a la estructura FCB para la que debe producirse la purga.

Valor devuelto

RxPurgeRelatedFobxs devuelve STATUS_SUCCESS si se ejecuta correctamente o uno de los siguientes valores de error en caso de error:

Código devuelto Descripción
STATUS_UNSUCCESSFUL
No se podrían purgar estructuras FOBX relacionadas.

Comentarios

En la limpieza no hay más identificadores de usuario asociados al objeto de archivo. En tales casos, el administrador de memoria y el administrador de caché dictan el período de tiempo entre cerrar y limpiar. En la limpieza, el FOBX se coloca en una lista pendiente cercana y se quita de la lista correspondiente cuando se recibe una operación de cierre. Mientras tanto, si se produce un error en una operación abierta con ACCESS_DENIED estado, RDBSS puede forzar una purga de la estructura FOBX. Se trata de una operación sincrónica.

En el caso de los nombres de directorio, todos los archivos del directorio deben cerrarse. Un minidirector de red podría llamar a RxPurgeRelatedFobxs y RxScavengeFobxsForNetRoot en respuesta a una solicitud de IRP_MJ_SET_INFORMATION para cambiar el nombre de un directorio. Al pasar la estructura de NET_ROOT para el directorio y un FCB NULL , todas las estructuras FOBX asociadas al directorio se purgarán y se guardarán.

La rutina RxPurgeRelatedFobxs intenta purgar todas las estructuras FOBX que tenían una operación de cierre pendiente antes de que se recibiera la solicitud de purga. La rutina RxPurgeRelatedFobxs adquiere la exclusión mutua de scavenger, recorre el miembro ClosePendingFobxsList en el objeto scavenger quitando las entradas de lista y, a continuación, libera la exclusión mutua.

Si AttemptFinalize está establecido en TRUE, RxPurgeRelatedFobxs intentará finalizar y liberar el FCB asociado.

Si PFCB no es NULL y esta purga de FCB strcuture no es la misma que la estructura FCB asociada con el FOBX en el miembro ClosePendingFobxsList , RxPurgeRelatedFobxs llamará a la rutina de devolución de llamada MRxAreFilesAliased proporcionada por el minidirector de red si se admite esta rutina. La llamada a MRxAreFilesAliased es determinar si el PFCB es un alias para el FCB asociado a la estructura FOBX.

Requisitos

Requisito Value
Plataforma de destino Escritorio
Encabezado scavengr.h (include Rxprocs.h)
IRQL <= APC_LEVEL

Consulte también

MRxAreFilesAliased

RxPurgeAllFobxs

RxScavengeAllFobxs

RxScavengeFobxsForNetRoot