The FsRtlSplitLargeMcb routine inserts a hole into the mappings in a map control block (MCB).
BOOLEAN FsRtlSplitLargeMcb( _In_ PLARGE_MCB Mcb, _In_ LONGLONG Vbn, _In_ LONGLONG Amount );
- Mcb [in]
Pointer to the MCB structure.
- Vbn [in]
Starting virtual block number (VBN) of the range of mappings to be shifted upward by Amount to make room for the hole.
- Amount [in]
Number of sectors (VBNs) in the hole to be created.
FsRtlSplitLargeMcb returns TRUE if the hole was successfully created, FALSE otherwise.
A hole is a range of unmapped VBNs that form a gap between two mappings.
If a pool allocation failure occurs, FsRtlSplitLargeMcb raises a STATUS_INSUFFICIENT_RESOURCES exception. To gain control if this pool allocation failure occurs, the driver should wrap the call to FsRtlSplitLargeMcb in a try-except or try-finally statement.