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 结构不指向传递给 RxPurgeRelatedFobs的PurgingFCB 参数相同的 FCB 结构。 这很复杂,因为它们可能不是相同的 FCB 结构,但由于别名而实际上是相同的文件。 在这种情况下,将调用 MRxAreFilesAliased 例程来确定 FCB 结构是否为别名。
清除与NET_ROOT结构关联的所有文件对象时,RxScavengeFobxsForNetRoot 例程也会调用 MRxAreFilesAliased。 由于 PurgingFCB 参数传递给 RxScavengeFobxsForNetRoot,并且与NET_ROOT结构关联的 FCB 结构实际上可能是同一个文件,这很复杂。 在这种情况下,将调用 MRxAreFilesAliased 例程来确定 FCB 结构是否为别名。
要求
要求 | 价值 |
---|---|
目标平台 | 桌面 |
标头 | mrx.h (包括 Mrx.h) |