Função RxPurgeAllFobxs (rxprocs.h)
RxPurgeAllFobxs limpa todas as estruturas FOBX associadas a um minidiretório de rede.
Sintaxe
void RxPurgeAllFobxs(
PRDBSS_DEVICE_OBJECT RxDeviceObject
);
Parâmetros
RxDeviceObject
Um ponteiro para o objeto de dispositivo de minidiretório para o qual a limpeza deve ser feita.
Retornar valor
Nenhum
Comentários
Na limpeza, não há mais identificadores de usuário associados ao objeto de arquivo. Nesses casos, a janela de tempo entre fechar e limpar é determinada pelas referências adicionais mantidas pelo gerenciador de memória e pelo gerenciador de cache. O RDBSS usa um processo de catador em execução em um thread separado para limpar o FOBX desnecessário e outras estruturas.
Um minidiretório de rede pode chamar RxPurgeAllFobxs e RxScavengeAllFobsx em resposta a um evento de alteração de energia PnP.
A rotina RxPurgeAllFobxs adquire o mutex do scavenger, atravessa o membro ClosePendingFobxsList no objeto scavenger removendo entradas de lista e libera o mutex. Se a estrutura FOBX não for NULL, RxPurgeAllFobxs limpará a estrutura FOBX e tentará adquirir um bloqueio exclusivo na estrutura fcb associada. Se tiver êxito, RxPurgeAllFobxs tentará desreferenciar a estrutura e a desreferência NET_FOBX, finalizar e liberar a estrutura FCB.
Em builds verificados, RxPurgeAllFobxs faz com que o sistema asserte várias condições, incluindo as seguintes:
- O membro Flink da estrutura RxScavenger->ClosePendingFobxsList no RxDeviceObject é NULL.
- O NodeTypeCode >fobx não é RDBSS_NTC_FOBX.
- Os membros Flink e Blink para uma entrada de lista são NULL.
Requisitos
Requisito | Valor |
---|---|
Plataforma de Destino | Área de Trabalho |
Cabeçalho | rxprocs.h (inclua Rxprocs.h) |
IRQL | <= APC_LEVEL |