PMRX_CHKFCB_CALLDOWN callback function (mrx.h)

The MRxAreFilesAliased routine is called by RDBSS to request the network mini-redirector to determine if two FCB structures represent the same file.

Syntax

PMRX_CHKFCB_CALLDOWN PmrxChkfcbCalldown;

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

Parameters

[in] Fcb1

A pointer to the first FCB structure.

[in] Fcb2

A pointer to the second FCB structure.

Return value

MRxAreFilesAliased returns STATUS_SUCCESS indicating that the files are not aliased, or an appropriate NTSTATUS value, such as the following:

Return code Description
STATUS_MORE_PROCESSING_REQUIRED The IndexNumber.QuadPart members of the two FCB structures are identical. This value indicates that the two files that are being compared are aliases.

Remarks

RDBSS calls this routine when processing two files that appear to be the same but have different names (for example, an MS-DOS short name and a long name).

MRxAreFilesAliased is called by the RxPurgeRelatedFobxs routine when purging all the structures of an FOBX structure associated with a NET_ROOT structure. As part of this process, an attempt is made to purge all the FOBX structures that had a close pending before the purge request was received. RDBSS needs to scavenge any temporary FOBX structures in the following cases:

  • The PurgingFcb parameter that is passed to the RxPurgeRelatedFobxs routine is the FCB structure for which the scavenging should occur. When this parameter is a directory, RDBSS needs to ensure that files that can potentially be in that directory are closed.

  • The FCB structure that is associated with the FOBX structure on the FobxsToBeFinalized member of the RDBSS_SCAVENGER structure doesn't point to the same FCB structure as the PurgingFCB parameter passed to RxPurgeRelatedFobxs. This is complicated by the fact that they might not be the same FCB structures, but are actually the same file because of aliasing. In this case, the MRxAreFilesAliased routine is called to determine if the FCB structure is aliased.

MRxAreFilesAliased is also called by the RxScavengeFobxsForNetRoot routine when purging all the file objects associated with a NET_ROOT structure. This is complicated by the fact that the PurgingFCB parameter passed to RxScavengeFobxsForNetRoot and the FCB structure that is associated with the NET_ROOT structure might actually be the same file because of aliasing. In this case, the MRxAreFilesAliased routine is called to determine if the FCB structure is aliased.

Requirements

Requirement Value
Target Platform Desktop
Header mrx.h (include Mrx.h)

See also

MRxCleanupFobx

MRxCloseSrvOpen

MRxCollapseOpen

MRxCreate

MRxDeallocateForFcb

MRxDeallocateForFobx

MRxExtendForCache

MRxExtendForNonCache

MRxFlush

MRxForceClosed

MRxIsLockRealizable

MRxShouldTryToCollapseThisOpen

MRxTruncate

MRxZeroExtend

RxFinalizeNetFCB

RxPurgeRelatedFobxs

RxScavengeFobxsForNetRoot