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

Confira também

RxPurgeRelatedFobxs

RxScavengeAllFobxs

RxScavengeFobxsForNetRoot