Funzione RxPurgeAllFobxs (rxprocs.h)
RxPurgeAllFobxs elimina tutte le strutture FOBX associate a un mini-redirector di rete.
Sintassi
void RxPurgeAllFobxs(
PRDBSS_DEVICE_OBJECT RxDeviceObject
);
Parametri
RxDeviceObject
Puntatore all'oggetto dispositivo mini-redirector per il quale deve essere eseguita l'eliminazione.
Valore restituito
nessuno
Osservazioni
Al momento della pulizia, non sono presenti altri handle utente associati all'oggetto file. In questi casi, l'intervallo di tempo tra chiusura e pulizia è determinato dai riferimenti aggiuntivi gestiti da Gestione memoria e gestione cache. RDBSS usa un processo di scavenger in esecuzione su un thread separato per scavenge e ripulire FOBX e altre strutture non necessarie.
Un mini-redirector di rete potrebbe chiamare RxPurgeAllFobxs e RxScavengeAllFobsx in risposta a un evento di modifica dell'alimentazione PnP.
La routine RxPurgeAllFobxs acquisisce il mutex scavenger, attraversa il membro ClosePendingFobxsList nell'oggetto scavenger rimuovendo le voci dell'elenco e quindi rilascia il mutex. Se la struttura FOBX non è NULL, RxPurgeAllFobxs ripulirà la struttura FOBX e tenterà di acquisire un blocco esclusivo sulla struttura FCB associata. In caso di esito positivo, RxPurgeAllFobxs proverà a dereferenziare la struttura e la dereferenziazione NET_FOBX, finalizzare e rilasciare la struttura FCB.
Nelle build controllate , RxPurgeAllFobxs fa sì che il sistema asserisca alcune condizioni, tra cui le seguenti:
- Il membro Flink della struttura RxScavenger->ClosePendingFobxsList in RxDeviceObject è NULL.
- NodeTypeCode fobx-> non è RDBSS_NTC_FOBX.
- I membri Flink e Blink per una voce di elenco sono NULL.
Requisiti
Requisito | Valore |
---|---|
Piattaforma di destinazione | Desktop |
Intestazione | rxprocs.h (include Rxprocs.h) |
IRQL | <= APC_LEVEL |