The FsRtlRemoveLargeMcbEntry routine removes one or more mappings from a map control block (MCB).
VOID FsRtlRemoveLargeMcbEntry( _In_ PLARGE_MCB OpaqueMcb, _In_ LONGLONG LargeVbn, _In_ LONGLONG LargeSectorCount );
- 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.
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).
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.