Compartir a través de


Función RxPurgeAllFobxs (rxprocs.h)

RxPurgeAllFobxs purga todas las estructuras FOBX asociadas a un minidirector de red.

Sintaxis

void RxPurgeAllFobxs(
  PRDBSS_DEVICE_OBJECT RxDeviceObject
);

Parámetros

RxDeviceObject

Puntero al objeto de dispositivo minidirector para el que se debe realizar la purga.

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 el cierre y la limpieza. RDBSS usa un proceso scavenger que se ejecuta en un subproceso independiente para purgar y purgar FOBX innecesario y otras estructuras.

Un minidirector de red podría llamar a RxPurgeAllFobxs y RxScavengeAllFobsx en respuesta a un evento de cambio de energía PnP.

La rutina RxPurgeAllFobxs adquiere la exclusión mutua de scavenger, recorre el miembro ClosePendingFobxsList en el objeto scavenger quitando entradas de lista y, a continuación, libera la exclusión mutua. Si la estructura FOBX no es NULL, RxPurgeAllFobxs purgará la estructura FOBX e intentará adquirir un bloqueo exclusivo en la estructura FCB asociada. Si se ejecuta correctamente, RxPurgeAllFobxs intentará desreferenciar la estructura NET_FOBX y la desreferencia, finalizar y liberar la estructura FCB.

En las compilaciones comprobadas, RxPurgeAllFobxs hace que el sistema aserte una serie de condiciones, incluidas las siguientes:

  • El miembro Flink de rxScavenger->estructura ClosePendingFobxsList en RxDeviceObject es NULL.
  • No se RDBSS_NTC_FOBX Fobx->NodeTypeCode.
  • Los miembros Flink y Blink de una entrada de lista son NULL.

Requisitos

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

Consulte también

RxPurgeRelatedFobxs

RxScavengeAllFobxs

RxScavengeFobxsForNetRoot