PMRX_CHKFCB_CALLDOWN回调函数 (mrx.h)

RDBSS 调用 MRxAreFilesAliased 例程,以请求网络微型重定向程序来确定两个 FCB 结构是否表示同一文件。

语法

PMRX_CHKFCB_CALLDOWN PmrxChkfcbCalldown;

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

参数

[in] Fcb1

指向第一个 FCB 结构的指针。

[in] Fcb2

指向第二个 FCB 结构的指针。

返回值

MRxAreFilesAliased 返回STATUS_SUCCESS指示文件没有别名或适当的 NTSTATUS 值,例如:

返回代码 描述
STATUS_MORE_PROCESSING_REQUIRED 两个 FCB 结构的 IndexNumber.QuadPart 成员是相同的。 此值指示要比较的两个文件是别名。

言论

RDBSS 在处理两个看起来相同但名称不同的文件(例如,MS-DOS 短名称和长名称)时调用此例程。

MRxAreFilesAliased 在清除与NET_ROOT结构关联的 FOBX 结构的所有结构时,RxPurgeRelatedFobxs 例程调用。 在此过程中,将尝试清除在收到清除请求之前挂起的所有 FOBX 结构。 在以下情况下,RDBSS 需要对任何临时 FOBX 结构进行复查:

  • 传递给 RxPurgeRelatedFobs 例程的 PurgingFcb 参数是应为其执行清理的 FCB 结构。 如果此参数是目录,RDBSS 需要确保可能位于该目录中的文件关闭。

  • FobxsToBeFinalized 成员RDBSS_SCAVENGER结构上 FOBX 结构关联的 FCB 结构不指向传递给 RxPurgeRelatedFobsPurgingFCB 参数相同的 FCB 结构。 这很复杂,因为它们可能不是相同的 FCB 结构,但由于别名而实际上是相同的文件。 在这种情况下,将调用 MRxAreFilesAliased 例程来确定 FCB 结构是否为别名。

清除与NET_ROOT结构关联的所有文件对象时,RxScavengeFobxsForNetRoot 例程也会调用 MRxAreFilesAliased。 由于 PurgingFCB 参数传递给 RxScavengeFobxsForNetRoot,并且与NET_ROOT结构关联的 FCB 结构实际上可能是同一个文件,这很复杂。 在这种情况下,将调用 MRxAreFilesAliased 例程来确定 FCB 结构是否为别名。

要求

要求 价值
目标平台 桌面
标头 mrx.h (包括 Mrx.h)

另请参阅

MRxCleanupFobx

MRxCloseSrvOpen

MRxCollapseOpen

MRxCreate

MRxDeallocateForFcb

MRxDeallocateForFobx

MRxExtendForCache

MRxExtendForNonCache

MRxFlush

MRxForceClosed

MRxIsLockRealizable

MRxShouldTryToCollapseThisOpen

MRxTruncate

MRxZeroExtend

RxFinalizeNetFCB

RxPurgeRelatedFobxs

RxScavengeFobxsForNetRoot