Función RxScavengeFobxsForNetRoot (scavengr.h)
RxScavengeFobxsForNetRoot recupera todas las estructuras FOBX asociadas a una estructura de NET_ROOT determinada.
Sintaxis
void RxScavengeFobxsForNetRoot(
PNET_ROOT NetRoot,
PFCB PurgingFcb,
BOOLEAN SynchronizeWithScavenger
);
Parámetros
NetRoot
Puntero a la estructura NET_ROOT para la que se deben guardar las estructuras FOBX.
PurgingFcb
Puntero al FCB para el que debe producirse el scavenging.
SynchronizeWithScavenger
Valor booleano que especifica si esta rutina debe sincronizarse con el scavenger.
Valor devuelto
None
Observaciones
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. Al limpiar, el FOBX se coloca en una lista cercana pendiente 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 y 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. Por lo tanto, 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 eliminarán.
La rutina RxScavengeFobxsForNetRoot adquiere la exclusión mutua de scavenger, recorre el miembro de lista FobxsToBeFinalized del objeto scavenger y agrega las entradas encontradas al final del miembro ScavengerFinalizationList del objeto scavenger y, a continuación, libera la exclusión mutua.
Si PurgingFcb no es NULL y esta estructura FCB de purga no es la misma que la FCB asociada a la estructura FOBX en el miembro de lista FobxsToBeFinalized del objeto scavenger, RxScavengeFobxsForNetRoot llamará a la rutina de devolución de llamada MRxAreFilesAliased proporcionada por el minidirector de red si se admite. La llamada a MRxAreFilesAliased es determinar si el PFCB es un alias para el FCB asociado a la estructura FOBX.
En las compilaciones activadas, RxScavengeAllFobxs hace que el sistema aserte la condición siguiente:
- El miembro NodeTypeCode de una estructura FOBX no es RDBSS_NTC_FOBX.
Requisitos
Requisito | Value |
---|---|
Plataforma de destino | Escritorio |
Encabezado | scavengr.h (include Rxprocs.h) |
IRQL | <= APC_LEVEL |