-/* $Id: mcb.c,v 1.9 2003/04/27 16:25:25 ea Exp $
+/* $Id$
*
- * reactos/ntoskrnl/fs/mcb.c
+ * COPYRIGHT: See COPYING in the top level directory
+ * PROJECT: ReactOS kernel
+ * FILE: ntoskrnl/fs/mcb.c
+ * PURPOSE: No purpose listed.
*
+ * PROGRAMMERS: No programmer listed.
*/
-#include <ddk/ntddk.h>
-#include <ddk/ntifs.h>
+#include <ntoskrnl.h>
#include <internal/debug.h>
/**********************************************************************
* NAME EXPORTED
*
* DESCRIPTION
- *
+ *
* ARGUMENTS
*
* RETURN VALUE
*
* NOTES
+ *
+ * @unimplemented
*/
BOOLEAN STDCALL
FsRtlAddLargeMcbEntry(IN PLARGE_MCB Mcb,
IN LONGLONG Lbn,
IN LONGLONG SectorCount)
{
- UNIMPLEMENTED
+ UNIMPLEMENTED;
return(FALSE);
}
-/* FsRtlAddMcbEntry: Obsolete */
+/*
+ * FsRtlAddMcbEntry: Obsolete
+ *
+ * @implemented
+ */
BOOLEAN STDCALL
FsRtlAddMcbEntry (IN PMCB Mcb,
IN VBN Vbn,
IN LBN Lbn,
IN ULONG SectorCount)
{
- return FsRtlAddLargeMcbEntry(& Mcb->LargeMcb,
+ return FsRtlAddLargeMcbEntry(& Mcb->DummyFieldThatSizesThisStructureCorrectly,
(LONGLONG) Vbn,
(LONGLONG) Lbn,
(LONGLONG) SectorCount);
}
-
+/*
+ * @unimplemented
+ */
BOOLEAN STDCALL
FsRtlGetNextLargeMcbEntry(IN PLARGE_MCB Mcb,
IN ULONG RunIndex,
OUT PLONGLONG Lbn,
OUT PLONGLONG SectorCount)
{
- UNIMPLEMENTED
+ UNIMPLEMENTED;
return(FALSE);
}
+/*
+ * @implemented
+ */
BOOLEAN STDCALL
FsRtlGetNextMcbEntry (IN PMCB Mcb,
IN ULONG RunIndex,
OUT PLBN Lbn,
OUT PULONG SectorCount)
{
- BOOLEAN rc=FALSE;
+ BOOLEAN Return = FALSE;
LONGLONG llVbn;
LONGLONG llLbn;
LONGLONG llSectorCount;
- // FIXME: how should conversion be done
- // FIXME: between 32 and 64 bits?
- rc=FsRtlGetNextLargeMcbEntry (& Mcb->LargeMcb,
- RunIndex,
- & llVbn,
- & llLbn,
- & llSectorCount);
- return(rc);
+ /* Call the Large version */
+ Return = FsRtlGetNextLargeMcbEntry(&Mcb->DummyFieldThatSizesThisStructureCorrectly,
+ RunIndex,
+ &llVbn,
+ &llLbn,
+ &llSectorCount);
+
+ /* Return everything typecasted */
+ *Vbn = (ULONG)llVbn;
+ *Lbn = (ULONG)llLbn;
+ *SectorCount = (ULONG)llSectorCount;
+
+ /* And return the original value */
+ return(Return);
}
+/*
+ * @unimplemented
+ */
VOID STDCALL
FsRtlInitializeLargeMcb(IN PLARGE_MCB Mcb,
IN POOL_TYPE PoolType)
{
- UNIMPLEMENTED
- Mcb->PoolType = PoolType;
+ UNIMPLEMENTED;
+ Mcb->BaseMcb.PoolType = PoolType;
}
-/* FsRtlInitializeMcb: Obsolete */
+/*
+ * FsRtlInitializeMcb: Obsolete
+ * @implemented
+ */
VOID STDCALL
FsRtlInitializeMcb (IN PMCB Mcb,
IN POOL_TYPE PoolType)
{
- FsRtlInitializeLargeMcb(& Mcb->LargeMcb, PoolType);
+ FsRtlInitializeLargeMcb(& Mcb->DummyFieldThatSizesThisStructureCorrectly, PoolType);
}
+/*
+ * @unimplemented
+ */
BOOLEAN STDCALL
FsRtlLookupLargeMcbEntry(IN PLARGE_MCB Mcb,
IN LONGLONG Vbn,
OUT PLONGLONG SectorCountFromStartingLbn OPTIONAL,
OUT PULONG Index OPTIONAL)
{
- UNIMPLEMENTED
+ UNIMPLEMENTED;
+ return(FALSE);
+}
+
+/*
+ * @unimplemented
+ */
+BOOLEAN
+STDCALL
+FsRtlLookupLastLargeMcbEntryAndIndex (
+ IN PLARGE_MCB OpaqueMcb,
+ OUT PLONGLONG LargeVbn,
+ OUT PLONGLONG LargeLbn,
+ OUT PULONG Index
+ )
+{
+ UNIMPLEMENTED;
return(FALSE);
}
+/*
+ * @unimplemented
+ */
+PFSRTL_PER_STREAM_CONTEXT
+STDCALL
+FsRtlLookupPerStreamContextInternal (
+ IN PFSRTL_ADVANCED_FCB_HEADER StreamContext,
+ IN PVOID OwnerId OPTIONAL,
+ IN PVOID InstanceId OPTIONAL
+ )
+{
+ UNIMPLEMENTED;
+ return(FALSE);
+}
+
+/*
+ * @unimplemented
+ */
+PVOID /* PFSRTL_PER_FILE_OBJECT_CONTEXT*/
+STDCALL
+FsRtlLookupPerFileObjectContext (
+ IN PFSRTL_ADVANCED_FCB_HEADER StreamContext,
+ IN PVOID OwnerId OPTIONAL,
+ IN PVOID InstanceId OPTIONAL
+ )
+{
+ UNIMPLEMENTED;
+ return(FALSE);
+}
+/*
+ * @unimplemented
+ */
BOOLEAN STDCALL
FsRtlLookupLastLargeMcbEntry(IN PLARGE_MCB Mcb,
OUT PLONGLONG Vbn,
OUT PLONGLONG Lbn)
{
- UNIMPLEMENTED
+ UNIMPLEMENTED;
return(FALSE);
}
+/*
+ * @implemented
+ */
BOOLEAN STDCALL
-FsRtlLookupLastMcbEntry (IN PMCB Mcb,
- OUT PVBN Vbn,
- OUT PLBN Lbn)
+FsRtlLookupLastMcbEntry(IN PMCB Mcb,
+ OUT PVBN Vbn,
+ OUT PLBN Lbn)
{
- UNIMPLEMENTED
- return(FALSE);
+ BOOLEAN Return = FALSE;
+ LONGLONG llVbn;
+ LONGLONG llLbn;
+
+ /* Call the Large version */
+ Return = FsRtlLookupLastLargeMcbEntry(&Mcb->DummyFieldThatSizesThisStructureCorrectly,
+ &llVbn,
+ &llLbn);
+
+ /* Return everything typecasted */
+ *Vbn = (ULONG)llVbn;
+ *Lbn = (ULONG)llLbn;
+
+ /* And return the original value */
+ return(Return);
}
+/*
+ * @implemented
+ */
BOOLEAN STDCALL
-FsRtlLookupMcbEntry (IN PMCB Mcb,
- IN VBN Vbn,
- OUT PLBN Lbn,
- OUT PULONG SectorCount OPTIONAL,
- OUT PULONG Index)
+FsRtlLookupMcbEntry(IN PMCB Mcb,
+ IN VBN Vbn,
+ OUT PLBN Lbn,
+ OUT PULONG SectorCount OPTIONAL,
+ OUT PULONG Index)
{
- UNIMPLEMENTED
- return(FALSE);
+ BOOLEAN Return = FALSE;
+ LONGLONG llLbn;
+ LONGLONG llSectorCount;
+
+ /* Call the Large version */
+ Return = FsRtlLookupLargeMcbEntry(&Mcb->DummyFieldThatSizesThisStructureCorrectly,
+ (LONGLONG)Vbn,
+ &llLbn,
+ &llSectorCount,
+ NULL,
+ NULL,
+ Index);
+
+ /* Return everything typecasted */
+ *Lbn = (ULONG)llLbn;
+ if (SectorCount) *SectorCount = (ULONG)llSectorCount;
+
+ /* And return the original value */
+ return(Return);
}
+/*
+ * @implemented
+ */
ULONG STDCALL
FsRtlNumberOfRunsInLargeMcb(IN PLARGE_MCB Mcb)
{
ULONG NumberOfRuns;
ExAcquireFastMutex (Mcb->FastMutex);
- NumberOfRuns=Mcb->PairCount;
+ NumberOfRuns=Mcb->BaseMcb.MaximumPairCount;
ExReleaseFastMutex (Mcb->FastMutex);
return(NumberOfRuns);
}
-/* FsRtlNumberOfRunsInMcb: Obsolete */
+/*
+ * FsRtlNumberOfRunsInMcb: Obsolete
+ *
+ * @implemented
+ */
ULONG STDCALL
FsRtlNumberOfRunsInMcb (IN PMCB Mcb)
{
- return FsRtlNumberOfRunsInLargeMcb(& Mcb->LargeMcb);
+ return FsRtlNumberOfRunsInLargeMcb(& Mcb->DummyFieldThatSizesThisStructureCorrectly);
}
+/*
+ * @unimplemented
+ */
VOID STDCALL
FsRtlRemoveLargeMcbEntry(IN PLARGE_MCB Mcb,
IN LONGLONG Vbn,
IN LONGLONG SectorCount)
{
- UNIMPLEMENTED
+ UNIMPLEMENTED;
}
+/*
+ * @implemented
+ */
VOID STDCALL
FsRtlRemoveMcbEntry (IN PMCB Mcb,
IN VBN Vbn,
IN ULONG SectorCount)
{
- UNIMPLEMENTED
+ /* Call the large function */
+ return FsRtlRemoveLargeMcbEntry(&Mcb->DummyFieldThatSizesThisStructureCorrectly,
+ (LONGLONG)Vbn,
+ (LONGLONG)SectorCount);
}
+/*
+ * @unimplemented
+ */
+VOID
+STDCALL
+FsRtlResetLargeMcb (
+ IN PLARGE_MCB Mcb,
+ IN BOOLEAN SelfSynchronized
+ )
+{
+ UNIMPLEMENTED;
+}
+
+/*
+ * @unimplemented
+ */
BOOLEAN STDCALL
FsRtlSplitLargeMcb(IN PLARGE_MCB Mcb,
IN LONGLONG Vbn,
IN LONGLONG Amount)
{
- UNIMPLEMENTED
+ UNIMPLEMENTED;
return(FALSE);
}
+/*
+ * @unimplemented
+ */
VOID STDCALL
FsRtlTruncateLargeMcb(IN PLARGE_MCB Mcb,
IN LONGLONG Vbn)
{
- UNIMPLEMENTED
+ UNIMPLEMENTED;
}
-/* FsRtlTruncateMcb: Obsolete */
+/*
+ * FsRtlTruncateMcb: Obsolete
+ *
+ * @implemented
+ */
VOID STDCALL
FsRtlTruncateMcb (IN PMCB Mcb,
IN VBN Vbn)
{
- FsRtlTruncateLargeMcb (& Mcb->LargeMcb, (LONGLONG) Vbn);
+ FsRtlTruncateLargeMcb (& Mcb->DummyFieldThatSizesThisStructureCorrectly, (LONGLONG) Vbn);
}
+/*
+ * @unimplemented
+ */
VOID STDCALL
FsRtlUninitializeLargeMcb(IN PLARGE_MCB Mcb)
{
UNIMPLEMENTED;
}
-/* FsRtlUninitializeMcb: Obsolete */
+/*
+ * FsRtlUninitializeMcb: Obsolete
+ *
+ * @implemented
+ */
VOID STDCALL
FsRtlUninitializeMcb (IN PMCB Mcb)
{
- FsRtlUninitializeLargeMcb(& Mcb->LargeMcb);
+ FsRtlUninitializeLargeMcb(& Mcb->DummyFieldThatSizesThisStructureCorrectly);
}