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。 由于传递给 RxScavengeFobxsForNetRoot 的 PurgingFCB 参数和与 NET_ROOT 结构关联的 FCB 结构实际上可能由于别名而同一文件,这一点很复杂。 在这种情况下,将调用 MRxAreFilesAliased 例程来确定 FCB 结构是否为别名。
要求
要求 | 值 |
---|---|
目标平台 | 桌面 |
标头 | mrx.h (包括 Mrx.h) |