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 结构:

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

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

清除与NET_ROOT结构关联的所有文件对象时,RxScavengeFobxsForNetRoot 例程也会调用 MRxAreFilesAliased。 由于传递给 RxScavengeFobxsForNetRootPurgingFCB 参数和与 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