Função RxScavengeFobxsForNetRoot (scavengr.h)

RxScavengeFobxsForNetRoot armazena todas as estruturas FOBX associadas a uma determinada estrutura NET_ROOT.

Sintaxe

void RxScavengeFobxsForNetRoot(
  PNET_ROOT NetRoot,
  PFCB      PurgingFcb,
  BOOLEAN   SynchronizeWithScavenger
);

Parâmetros

NetRoot

Um ponteiro para a estrutura NET_ROOT para a qual as estruturas FOBX precisam ser scavenged.

PurgingFcb

Um ponteiro para o FCB para o qual a limpeza deve ocorrer.

SynchronizeWithScavenger

Um valor booliano que especifica se essa rotina deve ser sincronizada com o catadores.

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. Na limpeza, o FOBX é colocado em uma lista pendente próxima e removido da lista correspondente quando uma operação de fechamento é recebida. Nesse ínterim, se uma operação aberta estiver falhando com ACCESS_DENIED status, o RDBSS poderá forçar uma limpeza e um cache da estrutura FOBX. Esta é uma operação síncrona.

Para renomeações de diretório, todos os arquivos no diretório precisam ser fechados. Portanto, um minidiretório de rede pode chamar RxPurgeRelatedFobxs e RxScavengeFobxsForNetRoot em resposta a uma solicitação IRP_MJ_SET_INFORMATION para renomear um diretório. Ao passar a estrutura NET_ROOT para o diretório e um FCB NULL , todas as estruturas FOBX associadas ao diretório seriam limpas e scavenged.

A rotina RxScavengeFobxsForNetRoot adquire o mutex do scavenger, atravessa o membro da lista FobxsToBeFinalized do objeto scavenger e adiciona todas as entradas encontradas na parte final do membro ScavengerFinalizationList do objeto scavenger e libera o mutex.

Se PurgingFcb não for NULL e essa estrutura fcb de limpeza não for a mesma que a FCB associada à estrutura FOBX no membro da lista FobxsToBeFinalized do objeto scavenger, RxScavengeFobxsForNetRoot chamará a rotina de retorno de chamada MRxAreFilesAliased fornecida pelo minidiretório de rede se houver suporte. A chamada para MRxAreFilesAliased é para determinar se o PFCB é um alias para o FCB associado à estrutura FOBX.

Em builds verificados, RxScavengeAllFobxs faz com que o sistema asserte para a seguinte condição:

  • O membro NodeTypeCode de uma estrutura FOBX não é RDBSS_NTC_FOBX.

Requisitos

Requisito Valor
Plataforma de Destino Área de Trabalho
Cabeçalho scavengr.h (inclua Rxprocs.h)
IRQL <= APC_LEVEL

Confira também

MRxAreFilesAliased

RxPurgeAllFobxs

RxPurgeRelatedFobxs

RxScavengeAllFobxs