Compartilhar via


PMRX_CHKFCB_CALLDOWN função de retorno de chamada (mrx.h)

A rotina MRxAreFilesAliased é chamada pelo RDBSS para solicitar que o minidiretório de rede determine se duas estruturas FCB representam o mesmo arquivo.

Sintaxe

PMRX_CHKFCB_CALLDOWN PmrxChkfcbCalldown;

NTSTATUS PmrxChkfcbCalldown(
  [in] IN PFCB Fcb1,
  [in] IN PFCB Fcb2
)
{...}

Parâmetros

[in] Fcb1

Um ponteiro para a primeira estrutura FCB.

[in] Fcb2

Um ponteiro para a segunda estrutura FCB.

Retornar valor

MRxAreFilesAliased retorna STATUS_SUCCESS indicando que os arquivos não são alias ou um valor NTSTATUS apropriado, como o seguinte:

Código de retorno Descrição
STATUS_MORE_PROCESSING_REQUIRED Os membros IndexNumber.QuadPart das duas estruturas FCB são idênticos. Esse valor indica que os dois arquivos que estão sendo comparados são aliases.

Comentários

O RDBSS chama essa rotina ao processar dois arquivos que parecem ser iguais, mas têm nomes diferentes (por exemplo, um nome curto do MS-DOS e um nome longo).

MRxAreFilesAliased é chamado pela rotina RxPurgeRelatedFobxs ao limpar todas as estruturas de uma estrutura FOBX associada a uma estrutura NET_ROOT. Como parte desse processo, é feita uma tentativa de limpar todas as estruturas FOBX que tinham um fechamento pendente antes do recebimento da solicitação de limpeza. O RDBSS precisa ocultar quaisquer estruturas FOBX temporárias nos seguintes casos:

  • O parâmetro PurgingFcb que é passado para a rotina RxPurgeRelatedFobxs é a estrutura FCB para a qual a limpeza deve ocorrer. Quando esse parâmetro é um diretório, o RDBSS precisa garantir que os arquivos que podem estar nesse diretório estejam fechados.

  • A estrutura FCB associada à estrutura FOBX no membro FobxsToBeFinalized da estrutura RDBSS_SCAVENGER não aponta para a mesma estrutura FCB que o parâmetro PurgingFCB passado para RxPurgeRelatedFobxs. Isso é complicado pelo fato de que elas podem não ser as mesmas estruturas FCB, mas são, na verdade, o mesmo arquivo devido ao alias. Nesse caso, a rotina MRxAreFilesAliased é chamada para determinar se a estrutura FCB é alias.

MRxAreFilesAliased também é chamado pela rotina RxScavengeFobxsForNetRoot ao limpar todos os objetos de arquivo associados a uma estrutura NET_ROOT. Isso é complicado pelo fato de que o parâmetro PurgingFCB passado para RxScavengeFobxsForNetRoot e a estrutura FCB associada à estrutura de NET_ROOT podem ser, na verdade, o mesmo arquivo devido ao alias. Nesse caso, a rotina MRxAreFilesAliased é chamada para determinar se a estrutura FCB é alias.

Requisitos

Requisito Valor
Plataforma de Destino Área de Trabalho
Cabeçalho mrx.h (inclua Mrx.h)

Confira também

MRxCleanupFobx

MRxCloseSrvOpen

MRxCollapseOpen

MRxCreate

MRxDeallocateForFcb

MRxDeallocateForFobx

MRxExtendForCache

MRxExtendForNonCache

MRxFlush

MRxForceClosed

MRxIsLockRealizable

MRxShouldTryToCollapseThisOpen

MRxTruncate

MRxZeroExtend

RxFinalizeNetFCB

RxPurgeRelatedFobxs

RxScavengeFobxsForNetRoot