1 /* $Id: mcb.c,v 1.9 2003/04/27 16:25:25 ea Exp $
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
);