Expand Minimize

FsRtlRemoveLargeMcbEntry routine

The FsRtlRemoveLargeMcbEntry routine removes one or more mappings from a map control block (MCB).

Syntax


VOID FsRtlRemoveLargeMcbEntry(
  _In_ PLARGE_MCB OpaqueMcb,
  _In_ LONGLONG   LargeVbn,
  _In_ LONGLONG   LargeSectorCount
);

Parameters

OpaqueMcb [in]

Pointer to the MCB structure.

LargeVbn [in]

Starting virtual block number (VBN) of the range for which mappings are to be removed from the MCB.

LargeSectorCount [in]

Number of sectors (VBNs) in the range for which mappings are to be removed.

Return value

None

Remarks

FsRtlRemoveLargeMcbEntry removes all mappings of VBNs to LBNs in the MCB that fall within the range of VBNs that begins with *LargeVbn and ends with (*LargeVbn + LargeSectorCount - 1).

Note   The upper 32 bits of the LBN are ignored. Only the lower 32 bits are used.

Holes (gaps) between mappings are ignored.

If the range of VBNs to be removed includes the highest mapped VBN in the MCB, the MCB's PairCount member is adjusted accordingly.

If a pool allocation failure occurs, FsRtlRemoveLargeMcbEntry raises a STATUS_INSUFFICIENT_RESOURCES exception. To gain control if this pool allocation failure occurs, the driver should wrap the call to FsRtlRemoveLargeMcbEntry in a try-except or try-finally statement.

Requirements

Target platform

Universal

Header

Ntifs.h (include Ntifs.h)

Library

Ntoskrnl.lib

IRQL

<= APC_LEVEL

See also

FsRtlAddLargeMcbEntry
FsRtlGetNextLargeMcbEntry
FsRtlInitializeLargeMcb
FsRtlLookupLargeMcbEntry
FsRtlLookupLastLargeMcbEntry
FsRtlLookupLastLargeMcbEntryAndIndex
FsRtlNumberOfRunsInLargeMcb
FsRtlSplitLargeMcb
FsRtlTruncateLargeMcb
FsRtlUninitializeLargeMcb

 

 

Send comments about this topic to Microsoft

Show:
© 2015 Microsoft