3 * reactos/ntoskrnl/fs/mcb.c
9 #include <internal/debug.h>
11 /**********************************************************************
23 FsRtlAddLargeMcbEntry(IN PLARGE_MCB Mcb,
26 IN LONGLONG SectorCount)
32 /* FsRtlAddMcbEntry: Obsolete */
34 FsRtlAddMcbEntry (IN PMCB Mcb,
39 return FsRtlAddLargeMcbEntry(& Mcb->LargeMcb,
42 (LONGLONG) SectorCount);
47 FsRtlGetNextLargeMcbEntry(IN PLARGE_MCB Mcb,
51 OUT PLONGLONG SectorCount)
59 FsRtlGetNextMcbEntry (IN PMCB Mcb,
63 OUT PULONG SectorCount)
68 LONGLONG llSectorCount;
70 // FIXME: how should conversion be done
71 // FIXME: between 32 and 64 bits?
72 rc=FsRtlGetNextLargeMcbEntry (& Mcb->LargeMcb,
82 FsRtlInitializeLargeMcb(IN PLARGE_MCB Mcb,
83 IN POOL_TYPE PoolType)
86 Mcb->PoolType = PoolType;
89 /* FsRtlInitializeMcb: Obsolete */
91 FsRtlInitializeMcb (IN PMCB Mcb,
92 IN POOL_TYPE PoolType)
94 FsRtlInitializeLargeMcb(& Mcb->LargeMcb, PoolType);
99 FsRtlLookupLargeMcbEntry(IN PLARGE_MCB Mcb,
101 OUT PLONGLONG Lbn OPTIONAL,
102 OUT PLONGLONG SectorCountFromLbn OPTIONAL,
103 OUT PLONGLONG StartingLbn OPTIONAL,
104 OUT PLONGLONG SectorCountFromStartingLbn OPTIONAL,
105 OUT PULONG Index OPTIONAL)
113 FsRtlLookupLastLargeMcbEntry(IN PLARGE_MCB Mcb,
123 FsRtlLookupLastMcbEntry (IN PMCB Mcb,
133 FsRtlLookupMcbEntry (IN PMCB Mcb,
136 OUT PULONG SectorCount OPTIONAL,
145 FsRtlNumberOfRunsInLargeMcb(IN PLARGE_MCB Mcb)
148 ExAcquireFastMutex (Mcb->FastMutex);
149 NumberOfRuns=Mcb->PairCount;
150 ExReleaseFastMutex (Mcb->FastMutex);
151 return(NumberOfRuns);
155 /* FsRtlNumberOfRunsInMcb: Obsolete */
157 FsRtlNumberOfRunsInMcb (IN PMCB Mcb)
159 return FsRtlNumberOfRunsInLargeMcb(& Mcb->LargeMcb);
164 FsRtlRemoveLargeMcbEntry(IN PLARGE_MCB Mcb,
166 IN LONGLONG SectorCount)
173 FsRtlRemoveMcbEntry (IN PMCB Mcb,
175 IN ULONG SectorCount)
182 FsRtlSplitLargeMcb(IN PLARGE_MCB Mcb,
192 FsRtlTruncateLargeMcb(IN PLARGE_MCB Mcb,
199 /* FsRtlTruncateMcb: Obsolete */
201 FsRtlTruncateMcb (IN PMCB Mcb,
204 FsRtlTruncateLargeMcb (& Mcb->LargeMcb, (LONGLONG) Vbn);
209 FsRtlUninitializeLargeMcb(IN PLARGE_MCB Mcb)
214 /* FsRtlUninitializeMcb: Obsolete */
216 FsRtlUninitializeMcb (IN PMCB Mcb)
218 FsRtlUninitializeLargeMcb(& Mcb->LargeMcb);