mirror of
https://github.com/reactos/reactos.git
synced 2024-08-19 18:02:55 +00:00
[FORMATTING] / [AUDIT]
- Cleanup a big coding-style mess - Add UNIMPLEMENTED macro in empty functions (otherwise we will never know if they are being called by a 3rd-party driver) - Add proper debug headers inclusion in every file - Add documentation headers into almost every file (except mcb.c and context.c - will be added later) - Standardize per-file headers (some files still lack contributors names, they will be added later too) No code change except for adding UNIMPLEMENTED macros in the code. Name.c unlocked because the implementations of functions are trivial and in fact could be derived from their names. Not documented functions will be further reviewed. svn path=/trunk/; revision=23005
This commit is contained in:
parent
5dd17c2315
commit
9afe9c3b5c
|
@ -1,6 +1,6 @@
|
||||||
/*
|
/*
|
||||||
* COPYRIGHT: See COPYING in the top level directory
|
* PROJECT: ReactOS Kernel
|
||||||
* PROJECT: ReactOS kernel
|
* LICENSE: GPL - See COPYING in the top level directory
|
||||||
* FILE: ntoskrnl/fs/context.c
|
* FILE: ntoskrnl/fs/context.c
|
||||||
* PURPOSE: File and Stream Context Functions
|
* PURPOSE: File and Stream Context Functions
|
||||||
*
|
*
|
||||||
|
@ -10,6 +10,8 @@
|
||||||
/* INCLUDES *****************************************************************/
|
/* INCLUDES *****************************************************************/
|
||||||
|
|
||||||
#include <ntoskrnl.h>
|
#include <ntoskrnl.h>
|
||||||
|
|
||||||
|
#define NDEBUG
|
||||||
#include <internal/debug.h>
|
#include <internal/debug.h>
|
||||||
|
|
||||||
/* GLOBALS *******************************************************************/
|
/* GLOBALS *******************************************************************/
|
||||||
|
|
|
@ -1,16 +1,22 @@
|
||||||
/* $Id$
|
/* $Id$
|
||||||
*
|
*
|
||||||
* COPYRIGHT: See COPYING in the top level directory
|
* PROJECT: ReactOS Kernel
|
||||||
* PROJECT: ReactOS kernel
|
* LICENSE: GPL - See COPYING in the top level directory
|
||||||
* FILE: ntoskrnl/fs/mcb.c
|
* FILE: ntoskrnl/fs/mcb.c
|
||||||
* PURPOSE: No purpose listed.
|
* PURPOSE: No purpose listed.
|
||||||
*
|
*
|
||||||
* PROGRAMMERS: No programmer listed.
|
* PROGRAMMERS: No programmer listed.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
/* INCLUDES ****************************************************************/
|
||||||
|
|
||||||
#include <ntoskrnl.h>
|
#include <ntoskrnl.h>
|
||||||
|
|
||||||
|
#define NDEBUG
|
||||||
#include <internal/debug.h>
|
#include <internal/debug.h>
|
||||||
|
|
||||||
|
/* FUNCTIONS *****************************************************************/
|
||||||
|
|
||||||
/**********************************************************************
|
/**********************************************************************
|
||||||
* NAME EXPORTED
|
* NAME EXPORTED
|
||||||
*
|
*
|
||||||
|
@ -24,14 +30,15 @@
|
||||||
*
|
*
|
||||||
* @unimplemented
|
* @unimplemented
|
||||||
*/
|
*/
|
||||||
BOOLEAN STDCALL
|
BOOLEAN
|
||||||
|
NTAPI
|
||||||
FsRtlAddLargeMcbEntry(IN PLARGE_MCB Mcb,
|
FsRtlAddLargeMcbEntry(IN PLARGE_MCB Mcb,
|
||||||
IN LONGLONG Vbn,
|
IN LONGLONG Vbn,
|
||||||
IN LONGLONG Lbn,
|
IN LONGLONG Lbn,
|
||||||
IN LONGLONG SectorCount)
|
IN LONGLONG SectorCount)
|
||||||
{
|
{
|
||||||
UNIMPLEMENTED;
|
UNIMPLEMENTED;
|
||||||
return(FALSE);
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -39,232 +46,234 @@ FsRtlAddLargeMcbEntry(IN PLARGE_MCB Mcb,
|
||||||
*
|
*
|
||||||
* @implemented
|
* @implemented
|
||||||
*/
|
*/
|
||||||
BOOLEAN STDCALL
|
BOOLEAN
|
||||||
FsRtlAddMcbEntry (IN PMCB Mcb,
|
NTAPI
|
||||||
IN VBN Vbn,
|
FsRtlAddMcbEntry(IN PMCB Mcb,
|
||||||
IN LBN Lbn,
|
IN VBN Vbn,
|
||||||
IN ULONG SectorCount)
|
IN LBN Lbn,
|
||||||
|
IN ULONG SectorCount)
|
||||||
{
|
{
|
||||||
return FsRtlAddLargeMcbEntry(& Mcb->DummyFieldThatSizesThisStructureCorrectly,
|
return FsRtlAddLargeMcbEntry(&Mcb->DummyFieldThatSizesThisStructureCorrectly,
|
||||||
(LONGLONG) Vbn,
|
(LONGLONG)Vbn,
|
||||||
(LONGLONG) Lbn,
|
(LONGLONG)Lbn,
|
||||||
(LONGLONG) SectorCount);
|
(LONGLONG)SectorCount);
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* @unimplemented
|
|
||||||
*/
|
|
||||||
BOOLEAN STDCALL
|
|
||||||
FsRtlGetNextLargeMcbEntry(IN PLARGE_MCB Mcb,
|
|
||||||
IN ULONG RunIndex,
|
|
||||||
OUT PLONGLONG Vbn,
|
|
||||||
OUT PLONGLONG Lbn,
|
|
||||||
OUT PLONGLONG SectorCount)
|
|
||||||
{
|
|
||||||
UNIMPLEMENTED;
|
|
||||||
return(FALSE);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
* @implemented
|
|
||||||
*/
|
|
||||||
BOOLEAN STDCALL
|
|
||||||
FsRtlGetNextMcbEntry (IN PMCB Mcb,
|
|
||||||
IN ULONG RunIndex,
|
|
||||||
OUT PVBN Vbn,
|
|
||||||
OUT PLBN Lbn,
|
|
||||||
OUT PULONG SectorCount)
|
|
||||||
{
|
|
||||||
BOOLEAN Return = FALSE;
|
|
||||||
LONGLONG llVbn;
|
|
||||||
LONGLONG llLbn;
|
|
||||||
LONGLONG llSectorCount;
|
|
||||||
|
|
||||||
/* 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;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* FsRtlInitializeMcb: Obsolete
|
|
||||||
* @implemented
|
|
||||||
*/
|
|
||||||
VOID STDCALL
|
|
||||||
FsRtlInitializeMcb (IN PMCB Mcb,
|
|
||||||
IN POOL_TYPE PoolType)
|
|
||||||
{
|
|
||||||
FsRtlInitializeLargeMcb(& Mcb->DummyFieldThatSizesThisStructureCorrectly, PoolType);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
* @unimplemented
|
|
||||||
*/
|
|
||||||
BOOLEAN STDCALL
|
|
||||||
FsRtlLookupLargeMcbEntry(IN PLARGE_MCB Mcb,
|
|
||||||
IN LONGLONG Vbn,
|
|
||||||
OUT PLONGLONG Lbn OPTIONAL,
|
|
||||||
OUT PLONGLONG SectorCountFromLbn OPTIONAL,
|
|
||||||
OUT PLONGLONG StartingLbn OPTIONAL,
|
|
||||||
OUT PLONGLONG SectorCountFromStartingLbn OPTIONAL,
|
|
||||||
OUT PULONG Index OPTIONAL)
|
|
||||||
{
|
|
||||||
UNIMPLEMENTED;
|
|
||||||
return(FALSE);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* @unimplemented
|
* @unimplemented
|
||||||
*/
|
*/
|
||||||
BOOLEAN
|
BOOLEAN
|
||||||
STDCALL
|
NTAPI
|
||||||
FsRtlLookupLastLargeMcbEntryAndIndex (
|
FsRtlGetNextLargeMcbEntry(IN PLARGE_MCB Mcb,
|
||||||
IN PLARGE_MCB OpaqueMcb,
|
IN ULONG RunIndex,
|
||||||
OUT PLONGLONG LargeVbn,
|
OUT PLONGLONG Vbn,
|
||||||
OUT PLONGLONG LargeLbn,
|
OUT PLONGLONG Lbn,
|
||||||
OUT PULONG Index
|
OUT PLONGLONG SectorCount)
|
||||||
)
|
|
||||||
{
|
{
|
||||||
UNIMPLEMENTED;
|
UNIMPLEMENTED;
|
||||||
return(FALSE);
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* @implemented
|
||||||
|
*/
|
||||||
|
BOOLEAN
|
||||||
|
NTAPI
|
||||||
|
FsRtlGetNextMcbEntry(IN PMCB Mcb,
|
||||||
|
IN ULONG RunIndex,
|
||||||
|
OUT PVBN Vbn,
|
||||||
|
OUT PLBN Lbn,
|
||||||
|
OUT PULONG SectorCount)
|
||||||
|
{
|
||||||
|
BOOLEAN Return = FALSE;
|
||||||
|
LONGLONG llVbn;
|
||||||
|
LONGLONG llLbn;
|
||||||
|
LONGLONG llSectorCount;
|
||||||
|
|
||||||
|
/* 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
|
||||||
|
NTAPI
|
||||||
|
FsRtlInitializeLargeMcb(IN PLARGE_MCB Mcb,
|
||||||
|
IN POOL_TYPE PoolType)
|
||||||
|
{
|
||||||
|
UNIMPLEMENTED;
|
||||||
|
Mcb->PoolType = PoolType;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* FsRtlInitializeMcb: Obsolete
|
||||||
|
* @implemented
|
||||||
|
*/
|
||||||
|
VOID
|
||||||
|
NTAPI
|
||||||
|
FsRtlInitializeMcb (IN PMCB Mcb,
|
||||||
|
IN POOL_TYPE PoolType)
|
||||||
|
{
|
||||||
|
FsRtlInitializeLargeMcb(& Mcb->DummyFieldThatSizesThisStructureCorrectly, PoolType);
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* @unimplemented
|
||||||
|
*/
|
||||||
|
BOOLEAN
|
||||||
|
NTAPI
|
||||||
|
FsRtlLookupLargeMcbEntry(IN PLARGE_MCB Mcb,
|
||||||
|
IN LONGLONG Vbn,
|
||||||
|
OUT PLONGLONG Lbn OPTIONAL,
|
||||||
|
OUT PLONGLONG SectorCountFromLbn OPTIONAL,
|
||||||
|
OUT PLONGLONG StartingLbn OPTIONAL,
|
||||||
|
OUT PLONGLONG SectorCountFromStartingLbn OPTIONAL,
|
||||||
|
OUT PULONG Index OPTIONAL)
|
||||||
|
{
|
||||||
|
UNIMPLEMENTED;
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* @unimplemented
|
||||||
|
*/
|
||||||
|
BOOLEAN
|
||||||
|
NTAPI
|
||||||
|
FsRtlLookupLastLargeMcbEntryAndIndex(IN PLARGE_MCB OpaqueMcb,
|
||||||
|
OUT PLONGLONG LargeVbn,
|
||||||
|
OUT PLONGLONG LargeLbn,
|
||||||
|
OUT PULONG Index)
|
||||||
|
{
|
||||||
|
UNIMPLEMENTED;
|
||||||
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* @unimplemented
|
* @unimplemented
|
||||||
*/
|
*/
|
||||||
PFSRTL_PER_STREAM_CONTEXT
|
PFSRTL_PER_STREAM_CONTEXT
|
||||||
STDCALL
|
NTAPI
|
||||||
FsRtlLookupPerStreamContextInternal (
|
FsRtlLookupPerStreamContextInternal(IN PFSRTL_ADVANCED_FCB_HEADER StreamContext,
|
||||||
IN PFSRTL_ADVANCED_FCB_HEADER StreamContext,
|
IN PVOID OwnerId OPTIONAL,
|
||||||
IN PVOID OwnerId OPTIONAL,
|
IN PVOID InstanceId OPTIONAL)
|
||||||
IN PVOID InstanceId OPTIONAL
|
|
||||||
)
|
|
||||||
{
|
{
|
||||||
UNIMPLEMENTED;
|
UNIMPLEMENTED;
|
||||||
return(FALSE);
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* @unimplemented
|
* @unimplemented
|
||||||
*/
|
*/
|
||||||
PVOID /* PFSRTL_PER_FILE_OBJECT_CONTEXT*/
|
PVOID /* PFSRTL_PER_FILE_OBJECT_CONTEXT*/
|
||||||
STDCALL
|
NTAPI
|
||||||
FsRtlLookupPerFileObjectContext (
|
FsRtlLookupPerFileObjectContext(IN PFSRTL_ADVANCED_FCB_HEADER StreamContext,
|
||||||
IN PFSRTL_ADVANCED_FCB_HEADER StreamContext,
|
|
||||||
IN PVOID OwnerId OPTIONAL,
|
IN PVOID OwnerId OPTIONAL,
|
||||||
IN PVOID InstanceId OPTIONAL
|
IN PVOID InstanceId OPTIONAL)
|
||||||
)
|
|
||||||
{
|
{
|
||||||
UNIMPLEMENTED;
|
UNIMPLEMENTED;
|
||||||
return(FALSE);
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* @unimplemented
|
* @unimplemented
|
||||||
*/
|
*/
|
||||||
BOOLEAN STDCALL
|
BOOLEAN
|
||||||
|
NTAPI
|
||||||
FsRtlLookupLastLargeMcbEntry(IN PLARGE_MCB Mcb,
|
FsRtlLookupLastLargeMcbEntry(IN PLARGE_MCB Mcb,
|
||||||
OUT PLONGLONG Vbn,
|
OUT PLONGLONG Vbn,
|
||||||
OUT PLONGLONG Lbn)
|
OUT PLONGLONG Lbn)
|
||||||
{
|
{
|
||||||
UNIMPLEMENTED;
|
UNIMPLEMENTED;
|
||||||
return(FALSE);
|
return(FALSE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* @implemented
|
* @implemented
|
||||||
*/
|
*/
|
||||||
BOOLEAN STDCALL
|
BOOLEAN
|
||||||
|
NTAPI
|
||||||
FsRtlLookupLastMcbEntry(IN PMCB Mcb,
|
FsRtlLookupLastMcbEntry(IN PMCB Mcb,
|
||||||
OUT PVBN Vbn,
|
OUT PVBN Vbn,
|
||||||
OUT PLBN Lbn)
|
OUT PLBN Lbn)
|
||||||
{
|
{
|
||||||
BOOLEAN Return = FALSE;
|
BOOLEAN Return = FALSE;
|
||||||
LONGLONG llVbn;
|
LONGLONG llVbn;
|
||||||
LONGLONG llLbn;
|
LONGLONG llLbn;
|
||||||
|
|
||||||
/* Call the Large version */
|
/* Call the Large version */
|
||||||
Return = FsRtlLookupLastLargeMcbEntry(&Mcb->DummyFieldThatSizesThisStructureCorrectly,
|
Return = FsRtlLookupLastLargeMcbEntry(&Mcb->DummyFieldThatSizesThisStructureCorrectly,
|
||||||
&llVbn,
|
&llVbn,
|
||||||
&llLbn);
|
&llLbn);
|
||||||
|
|
||||||
/* Return everything typecasted */
|
/* Return everything typecasted */
|
||||||
*Vbn = (ULONG)llVbn;
|
*Vbn = (ULONG)llVbn;
|
||||||
*Lbn = (ULONG)llLbn;
|
*Lbn = (ULONG)llLbn;
|
||||||
|
|
||||||
/* And return the original value */
|
/* And return the original value */
|
||||||
return(Return);
|
return(Return);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* @implemented
|
* @implemented
|
||||||
*/
|
*/
|
||||||
BOOLEAN STDCALL
|
BOOLEAN
|
||||||
|
NTAPI
|
||||||
FsRtlLookupMcbEntry(IN PMCB Mcb,
|
FsRtlLookupMcbEntry(IN PMCB Mcb,
|
||||||
IN VBN Vbn,
|
IN VBN Vbn,
|
||||||
OUT PLBN Lbn,
|
OUT PLBN Lbn,
|
||||||
OUT PULONG SectorCount OPTIONAL,
|
OUT PULONG SectorCount OPTIONAL,
|
||||||
OUT PULONG Index)
|
OUT PULONG Index)
|
||||||
{
|
{
|
||||||
BOOLEAN Return = FALSE;
|
BOOLEAN Return = FALSE;
|
||||||
LONGLONG llLbn;
|
LONGLONG llLbn;
|
||||||
LONGLONG llSectorCount;
|
LONGLONG llSectorCount;
|
||||||
|
|
||||||
/* Call the Large version */
|
/* Call the Large version */
|
||||||
Return = FsRtlLookupLargeMcbEntry(&Mcb->DummyFieldThatSizesThisStructureCorrectly,
|
Return = FsRtlLookupLargeMcbEntry(&Mcb->DummyFieldThatSizesThisStructureCorrectly,
|
||||||
(LONGLONG)Vbn,
|
(LONGLONG)Vbn,
|
||||||
&llLbn,
|
&llLbn,
|
||||||
&llSectorCount,
|
&llSectorCount,
|
||||||
NULL,
|
NULL,
|
||||||
NULL,
|
NULL,
|
||||||
Index);
|
Index);
|
||||||
|
|
||||||
/* Return everything typecasted */
|
/* Return everything typecasted */
|
||||||
*Lbn = (ULONG)llLbn;
|
*Lbn = (ULONG)llLbn;
|
||||||
if (SectorCount) *SectorCount = (ULONG)llSectorCount;
|
if (SectorCount) *SectorCount = (ULONG)llSectorCount;
|
||||||
|
|
||||||
/* And return the original value */
|
/* And return the original value */
|
||||||
return(Return);
|
return(Return);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* @implemented
|
* @implemented
|
||||||
*/
|
*/
|
||||||
ULONG STDCALL
|
ULONG
|
||||||
|
NTAPI
|
||||||
FsRtlNumberOfRunsInLargeMcb(IN PLARGE_MCB Mcb)
|
FsRtlNumberOfRunsInLargeMcb(IN PLARGE_MCB Mcb)
|
||||||
{
|
{
|
||||||
ULONG NumberOfRuns;
|
ULONG NumberOfRuns;
|
||||||
ExAcquireFastMutex (Mcb->FastMutex);
|
|
||||||
NumberOfRuns = Mcb->PairCount;
|
ExAcquireFastMutex(Mcb->FastMutex);
|
||||||
ExReleaseFastMutex (Mcb->FastMutex);
|
NumberOfRuns = Mcb->PairCount;
|
||||||
return(NumberOfRuns);
|
ExReleaseFastMutex(Mcb->FastMutex);
|
||||||
|
|
||||||
|
return NumberOfRuns;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -273,32 +282,34 @@ FsRtlNumberOfRunsInLargeMcb(IN PLARGE_MCB Mcb)
|
||||||
*
|
*
|
||||||
* @implemented
|
* @implemented
|
||||||
*/
|
*/
|
||||||
ULONG STDCALL
|
ULONG
|
||||||
|
NTAPI
|
||||||
FsRtlNumberOfRunsInMcb (IN PMCB Mcb)
|
FsRtlNumberOfRunsInMcb (IN PMCB Mcb)
|
||||||
{
|
{
|
||||||
return FsRtlNumberOfRunsInLargeMcb(& Mcb->DummyFieldThatSizesThisStructureCorrectly);
|
return FsRtlNumberOfRunsInLargeMcb(&Mcb->DummyFieldThatSizesThisStructureCorrectly);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* @unimplemented
|
* @unimplemented
|
||||||
*/
|
*/
|
||||||
VOID STDCALL
|
VOID
|
||||||
|
NTAPI
|
||||||
FsRtlRemoveLargeMcbEntry(IN PLARGE_MCB Mcb,
|
FsRtlRemoveLargeMcbEntry(IN PLARGE_MCB Mcb,
|
||||||
IN LONGLONG Vbn,
|
IN LONGLONG Vbn,
|
||||||
IN LONGLONG SectorCount)
|
IN LONGLONG SectorCount)
|
||||||
{
|
{
|
||||||
UNIMPLEMENTED;
|
UNIMPLEMENTED;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* @implemented
|
* @implemented
|
||||||
*/
|
*/
|
||||||
VOID STDCALL
|
VOID
|
||||||
FsRtlRemoveMcbEntry (IN PMCB Mcb,
|
NTAPI
|
||||||
IN VBN Vbn,
|
FsRtlRemoveMcbEntry(IN PMCB Mcb,
|
||||||
IN ULONG SectorCount)
|
IN VBN Vbn,
|
||||||
|
IN ULONG SectorCount)
|
||||||
{
|
{
|
||||||
/* Call the large function */
|
/* Call the large function */
|
||||||
return FsRtlRemoveLargeMcbEntry(&Mcb->DummyFieldThatSizesThisStructureCorrectly,
|
return FsRtlRemoveLargeMcbEntry(&Mcb->DummyFieldThatSizesThisStructureCorrectly,
|
||||||
|
@ -311,59 +322,58 @@ FsRtlRemoveMcbEntry (IN PMCB Mcb,
|
||||||
* @unimplemented
|
* @unimplemented
|
||||||
*/
|
*/
|
||||||
VOID
|
VOID
|
||||||
STDCALL
|
NTAPI
|
||||||
FsRtlResetLargeMcb (
|
FsRtlResetLargeMcb(IN PLARGE_MCB Mcb,
|
||||||
IN PLARGE_MCB Mcb,
|
IN BOOLEAN SelfSynchronized)
|
||||||
IN BOOLEAN SelfSynchronized
|
|
||||||
)
|
|
||||||
{
|
{
|
||||||
UNIMPLEMENTED;
|
UNIMPLEMENTED;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* @unimplemented
|
* @unimplemented
|
||||||
*/
|
*/
|
||||||
BOOLEAN STDCALL
|
BOOLEAN
|
||||||
|
NTAPI
|
||||||
FsRtlSplitLargeMcb(IN PLARGE_MCB Mcb,
|
FsRtlSplitLargeMcb(IN PLARGE_MCB Mcb,
|
||||||
IN LONGLONG Vbn,
|
IN LONGLONG Vbn,
|
||||||
IN LONGLONG Amount)
|
IN LONGLONG Amount)
|
||||||
{
|
{
|
||||||
UNIMPLEMENTED;
|
UNIMPLEMENTED;
|
||||||
return(FALSE);
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* @unimplemented
|
* @unimplemented
|
||||||
*/
|
*/
|
||||||
VOID STDCALL
|
VOID
|
||||||
|
NTAPI
|
||||||
FsRtlTruncateLargeMcb(IN PLARGE_MCB Mcb,
|
FsRtlTruncateLargeMcb(IN PLARGE_MCB Mcb,
|
||||||
IN LONGLONG Vbn)
|
IN LONGLONG Vbn)
|
||||||
{
|
{
|
||||||
UNIMPLEMENTED;
|
UNIMPLEMENTED;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* FsRtlTruncateMcb: Obsolete
|
* FsRtlTruncateMcb: Obsolete
|
||||||
*
|
*
|
||||||
* @implemented
|
* @implemented
|
||||||
*/
|
*/
|
||||||
VOID STDCALL
|
VOID
|
||||||
|
NTAPI
|
||||||
FsRtlTruncateMcb (IN PMCB Mcb,
|
FsRtlTruncateMcb (IN PMCB Mcb,
|
||||||
IN VBN Vbn)
|
IN VBN Vbn)
|
||||||
{
|
{
|
||||||
FsRtlTruncateLargeMcb (& Mcb->DummyFieldThatSizesThisStructureCorrectly, (LONGLONG) Vbn);
|
FsRtlTruncateLargeMcb(&Mcb->DummyFieldThatSizesThisStructureCorrectly, (LONGLONG)Vbn);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* @unimplemented
|
* @unimplemented
|
||||||
*/
|
*/
|
||||||
VOID STDCALL
|
VOID
|
||||||
|
NTAPI
|
||||||
FsRtlUninitializeLargeMcb(IN PLARGE_MCB Mcb)
|
FsRtlUninitializeLargeMcb(IN PLARGE_MCB Mcb)
|
||||||
{
|
{
|
||||||
UNIMPLEMENTED;
|
UNIMPLEMENTED;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -371,12 +381,11 @@ FsRtlUninitializeLargeMcb(IN PLARGE_MCB Mcb)
|
||||||
*
|
*
|
||||||
* @implemented
|
* @implemented
|
||||||
*/
|
*/
|
||||||
VOID STDCALL
|
VOID
|
||||||
FsRtlUninitializeMcb (IN PMCB Mcb)
|
NTAPI
|
||||||
|
FsRtlUninitializeMcb(IN PMCB Mcb)
|
||||||
{
|
{
|
||||||
FsRtlUninitializeLargeMcb(& Mcb->DummyFieldThatSizesThisStructureCorrectly);
|
FsRtlUninitializeLargeMcb(& Mcb->DummyFieldThatSizesThisStructureCorrectly);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/* EOF */
|
/* EOF */
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/*
|
/*
|
||||||
* COPYRIGHT: See COPYING in the top level directory
|
* PROJECT: ReactOS Kernel
|
||||||
* PROJECT: ReactOS kernel
|
* LICENSE: GPL - See COPYING in the top level directory
|
||||||
* FILE: ntoskrnl/fs/name.c
|
* FILE: ntoskrnl/fs/name.c
|
||||||
* PURPOSE: Name and DBCS Name Validation and Dissection Functions.
|
* PURPOSE: Name and DBCS Name Validation and Dissection Functions.
|
||||||
*
|
*
|
||||||
|
@ -9,9 +9,10 @@
|
||||||
* Filip Navara
|
* Filip Navara
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* INCLUDES ****************************************************************/
|
/* INCLUDES ****************************************************************/
|
||||||
|
|
||||||
#include <ntoskrnl.h>
|
#include <ntoskrnl.h>
|
||||||
|
|
||||||
#define NDEBUG
|
#define NDEBUG
|
||||||
#include <internal/debug.h>
|
#include <internal/debug.h>
|
||||||
|
|
||||||
|
@ -153,23 +154,31 @@ PUCHAR FsRtlLegalAnsiCharacterArray = LegalAnsiCharacterArray;
|
||||||
|
|
||||||
/* FUNCTIONS *****************************************************************/
|
/* FUNCTIONS *****************************************************************/
|
||||||
|
|
||||||
/*
|
/*++
|
||||||
* NAME EXPORTED
|
* @name FsRtlAreNamesEqual
|
||||||
* FsRtlAreNamesEqual@16
|
|
||||||
*
|
|
||||||
* DESCRIPTION
|
|
||||||
*
|
|
||||||
* ARGUMENTS
|
|
||||||
*
|
|
||||||
* RETURN VALUE
|
|
||||||
*
|
|
||||||
* NOTE
|
|
||||||
* From Bo Branten's ntifs.h v25.
|
|
||||||
*
|
|
||||||
* @implemented
|
* @implemented
|
||||||
*/
|
*
|
||||||
|
* FILLME
|
||||||
|
*
|
||||||
|
* @param Name1
|
||||||
|
* FILLME
|
||||||
|
*
|
||||||
|
* @param Name2
|
||||||
|
* FILLME
|
||||||
|
*
|
||||||
|
* @param IgnoreCase
|
||||||
|
* FILLME
|
||||||
|
*
|
||||||
|
* @param UpcaseTable
|
||||||
|
* FILLME
|
||||||
|
*
|
||||||
|
* @return None
|
||||||
|
*
|
||||||
|
* @remarks From Bo Branten's ntifs.h v25.
|
||||||
|
*
|
||||||
|
*--*/
|
||||||
BOOLEAN
|
BOOLEAN
|
||||||
STDCALL
|
NTAPI
|
||||||
FsRtlAreNamesEqual(IN PUNICODE_STRING Name1,
|
FsRtlAreNamesEqual(IN PUNICODE_STRING Name1,
|
||||||
IN PUNICODE_STRING Name2,
|
IN PUNICODE_STRING Name2,
|
||||||
IN BOOLEAN IgnoreCase,
|
IN BOOLEAN IgnoreCase,
|
||||||
|
@ -233,36 +242,33 @@ ManualCase:
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*++
|
||||||
* NAME EXPORTED
|
* @name FsRtlDissectDbcs
|
||||||
* FsRtlDissectDbcs@16
|
* @implemented
|
||||||
*
|
*
|
||||||
* Dissects a given path name into first and remaining part.
|
* Dissects a given path name into first and remaining part.
|
||||||
*
|
*
|
||||||
* ARGUMENTS
|
* @param Name
|
||||||
* Name
|
* ANSI string to dissect.
|
||||||
* ANSI string to dissect.
|
|
||||||
*
|
*
|
||||||
* FirstPart
|
* @param FirstPart
|
||||||
* Pointer to user supplied ANSI_STRING, that will
|
* Pointer to user supplied ANSI_STRING, that will later point
|
||||||
* later point to the first part of the original name.
|
* to the first part of the original name.
|
||||||
*
|
*
|
||||||
* RemainingPart
|
* @param RemainingPart
|
||||||
* Pointer to user supplied ANSI_STRING, that will
|
* Pointer to user supplied ANSI_STRING, that will later point
|
||||||
* later point to the remaining part of the original name.
|
* to the remaining part of the original name.
|
||||||
*
|
*
|
||||||
* RETURN VALUE
|
* @return None
|
||||||
* None
|
|
||||||
*
|
*
|
||||||
* EXAMPLE
|
* @remarks Example:
|
||||||
* Name: \test1\test2\test3
|
* Name: \test1\test2\test3
|
||||||
* FirstPart: test1
|
* FirstPart: test1
|
||||||
* RemainingPart: test2\test3
|
* RemainingPart: test2\test3
|
||||||
*
|
*
|
||||||
* @implemented
|
*--*/
|
||||||
*/
|
|
||||||
VOID
|
VOID
|
||||||
STDCALL
|
NTAPI
|
||||||
FsRtlDissectDbcs(IN ANSI_STRING Name,
|
FsRtlDissectDbcs(IN ANSI_STRING Name,
|
||||||
OUT PANSI_STRING FirstPart,
|
OUT PANSI_STRING FirstPart,
|
||||||
OUT PANSI_STRING RemainingPart)
|
OUT PANSI_STRING RemainingPart)
|
||||||
|
@ -305,96 +311,94 @@ FsRtlDissectDbcs(IN ANSI_STRING Name,
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*++
|
||||||
* NAME EXPORTED
|
* @name FsRtlDissectName
|
||||||
* FsRtlDissectName@16
|
|
||||||
*
|
|
||||||
* DESCRIPTION
|
|
||||||
* Dissects a given path name into first and remaining part.
|
|
||||||
*
|
|
||||||
* ARGUMENTS
|
|
||||||
* Name
|
|
||||||
* Unicode string to dissect.
|
|
||||||
*
|
|
||||||
* FirstPart
|
|
||||||
* Pointer to user supplied UNICODE_STRING, that will
|
|
||||||
* later point to the first part of the original name.
|
|
||||||
*
|
|
||||||
* RemainingPart
|
|
||||||
* Pointer to user supplied UNICODE_STRING, that will
|
|
||||||
* later point to the remaining part of the original name.
|
|
||||||
*
|
|
||||||
* RETURN VALUE
|
|
||||||
* None
|
|
||||||
*
|
|
||||||
* EXAMPLE
|
|
||||||
* Name: \test1\test2\test3
|
|
||||||
* FirstPart: test1
|
|
||||||
* RemainingPart: test2\test3
|
|
||||||
*
|
|
||||||
* @implemented
|
* @implemented
|
||||||
*/
|
*
|
||||||
|
* Dissects a given path name into first and remaining part.
|
||||||
|
*
|
||||||
|
* @param Name
|
||||||
|
* Unicode string to dissect.
|
||||||
|
*
|
||||||
|
* @param FirstPart
|
||||||
|
* Pointer to user supplied UNICODE_STRING, that will later point
|
||||||
|
* to the first part of the original name.
|
||||||
|
*
|
||||||
|
* @param RemainingPart
|
||||||
|
* Pointer to user supplied UNICODE_STRING, that will later point
|
||||||
|
* to the remaining part of the original name.
|
||||||
|
*
|
||||||
|
* @return None
|
||||||
|
*
|
||||||
|
* @remarks Example:
|
||||||
|
* Name: \test1\test2\test3
|
||||||
|
* FirstPart: test1
|
||||||
|
* RemainingPart: test2\test3
|
||||||
|
*
|
||||||
|
*--*/
|
||||||
VOID
|
VOID
|
||||||
STDCALL
|
NTAPI
|
||||||
FsRtlDissectName(IN UNICODE_STRING Name,
|
FsRtlDissectName(IN UNICODE_STRING Name,
|
||||||
OUT PUNICODE_STRING FirstPart,
|
OUT PUNICODE_STRING FirstPart,
|
||||||
OUT PUNICODE_STRING RemainingPart)
|
OUT PUNICODE_STRING RemainingPart)
|
||||||
{
|
{
|
||||||
USHORT NameOffset = 0;
|
USHORT NameOffset = 0;
|
||||||
USHORT NameLength = 0;
|
USHORT NameLength = 0;
|
||||||
USHORT Length;
|
USHORT Length;
|
||||||
|
|
||||||
FirstPart->Length = 0;
|
FirstPart->Length = 0;
|
||||||
FirstPart->MaximumLength = 0;
|
FirstPart->MaximumLength = 0;
|
||||||
FirstPart->Buffer = NULL;
|
FirstPart->Buffer = NULL;
|
||||||
|
|
||||||
RemainingPart->Length = 0;
|
RemainingPart->Length = 0;
|
||||||
RemainingPart->MaximumLength = 0;
|
RemainingPart->MaximumLength = 0;
|
||||||
RemainingPart->Buffer = NULL;
|
RemainingPart->Buffer = NULL;
|
||||||
|
|
||||||
if (Name.Length == 0)
|
if (Name.Length == 0)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
/* Skip leading backslash */
|
/* Skip leading backslash */
|
||||||
if (Name.Buffer[0] == L'\\')
|
if (Name.Buffer[0] == L'\\')
|
||||||
NameOffset++;
|
NameOffset++;
|
||||||
|
|
||||||
Length = Name.Length / sizeof(WCHAR);
|
Length = Name.Length / sizeof(WCHAR);
|
||||||
|
|
||||||
/* Search for next backslash or end-of-string */
|
/* Search for next backslash or end-of-string */
|
||||||
while ((NameOffset + NameLength < Length) &&
|
while ((NameOffset + NameLength < Length) &&
|
||||||
(Name.Buffer[NameOffset + NameLength] != L'\\'))
|
(Name.Buffer[NameOffset + NameLength] != L'\\'))
|
||||||
{
|
{
|
||||||
NameLength++;
|
NameLength++;
|
||||||
}
|
}
|
||||||
|
|
||||||
FirstPart->Length =
|
FirstPart->Length =
|
||||||
FirstPart->MaximumLength = NameLength * sizeof(WCHAR);
|
FirstPart->MaximumLength = NameLength * sizeof(WCHAR);
|
||||||
FirstPart->Buffer = &Name.Buffer[NameOffset];
|
FirstPart->Buffer = &Name.Buffer[NameOffset];
|
||||||
|
|
||||||
NameOffset += NameLength + 1;
|
NameOffset += NameLength + 1;
|
||||||
if (NameOffset < Length)
|
if (NameOffset < Length)
|
||||||
{
|
{
|
||||||
RemainingPart->Length = (Length - NameOffset) * sizeof(WCHAR);
|
RemainingPart->Length = (Length - NameOffset) * sizeof(WCHAR);
|
||||||
RemainingPart->MaximumLength = (Length - NameOffset) * sizeof(WCHAR);
|
RemainingPart->MaximumLength = (Length - NameOffset) * sizeof(WCHAR);
|
||||||
RemainingPart->Buffer = &Name.Buffer[NameOffset];
|
RemainingPart->Buffer = &Name.Buffer[NameOffset];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*++
|
||||||
* NAME EXPORTED
|
* @name FsRtlDoesDbcsContainWildCards
|
||||||
* FsRtlDoesDbcsContainWildCards@4
|
|
||||||
*
|
|
||||||
* DESCRIPTION
|
|
||||||
*
|
|
||||||
* ARGUMENTS
|
|
||||||
*
|
|
||||||
* RETURN VALUE
|
|
||||||
*
|
|
||||||
* @implemented
|
* @implemented
|
||||||
*/
|
*
|
||||||
|
* FILLME
|
||||||
|
*
|
||||||
|
* @param Name
|
||||||
|
* FILLME
|
||||||
|
*
|
||||||
|
* @return None
|
||||||
|
*
|
||||||
|
* @remarks None
|
||||||
|
*
|
||||||
|
*--*/
|
||||||
BOOLEAN
|
BOOLEAN
|
||||||
STDCALL
|
NTAPI
|
||||||
FsRtlDoesDbcsContainWildCards(IN PANSI_STRING Name)
|
FsRtlDoesDbcsContainWildCards(IN PANSI_STRING Name)
|
||||||
{
|
{
|
||||||
ULONG i;
|
ULONG i;
|
||||||
|
@ -415,23 +419,22 @@ FsRtlDoesDbcsContainWildCards(IN PANSI_STRING Name)
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*++
|
||||||
* NAME EXPORTED
|
* @name FsRtlDoesNameContainWildCards
|
||||||
* FsRtlDoesNameContainWildCards@4
|
|
||||||
*
|
|
||||||
* DESCRIPTION
|
|
||||||
*
|
|
||||||
* ARGUMENTS
|
|
||||||
*
|
|
||||||
* RETURN VALUE
|
|
||||||
*
|
|
||||||
* NOTE
|
|
||||||
* From Bo Branten's ntifs.h v12.
|
|
||||||
*
|
|
||||||
* @implemented
|
* @implemented
|
||||||
*/
|
*
|
||||||
|
* FILLME
|
||||||
|
*
|
||||||
|
* @param Name
|
||||||
|
* Pointer to a UNICODE_STRING containing Name to examine
|
||||||
|
*
|
||||||
|
* @return TRUE if Name contains wildcards, FALSE otherwise
|
||||||
|
*
|
||||||
|
* @remarks From Bo Branten's ntifs.h v12.
|
||||||
|
*
|
||||||
|
*--*/
|
||||||
BOOLEAN
|
BOOLEAN
|
||||||
STDCALL
|
NTAPI
|
||||||
FsRtlDoesNameContainWildCards(IN PUNICODE_STRING Name)
|
FsRtlDoesNameContainWildCards(IN PUNICODE_STRING Name)
|
||||||
{
|
{
|
||||||
PWCHAR Ptr;
|
PWCHAR Ptr;
|
||||||
|
@ -452,60 +455,89 @@ FsRtlDoesNameContainWildCards(IN PUNICODE_STRING Name)
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*++
|
||||||
* NAME EXPORTED
|
* @name FsRtlIsDbcsInExpression
|
||||||
* FsRtlIsDbcsInExpression@8
|
|
||||||
*
|
|
||||||
* DESCRIPTION
|
|
||||||
*
|
|
||||||
* ARGUMENTS
|
|
||||||
*
|
|
||||||
* RETURN VALUE
|
|
||||||
*
|
|
||||||
* @unimplemented
|
* @unimplemented
|
||||||
*/
|
*
|
||||||
|
* FILLME
|
||||||
|
*
|
||||||
|
* @param Expression
|
||||||
|
* FILLME
|
||||||
|
*
|
||||||
|
* @param Name
|
||||||
|
* FILLME
|
||||||
|
*
|
||||||
|
* @return None
|
||||||
|
*
|
||||||
|
* @remarks None
|
||||||
|
*
|
||||||
|
*--*/
|
||||||
BOOLEAN
|
BOOLEAN
|
||||||
STDCALL
|
NTAPI
|
||||||
FsRtlIsDbcsInExpression(IN PANSI_STRING Expression,
|
FsRtlIsDbcsInExpression(IN PANSI_STRING Expression,
|
||||||
IN PANSI_STRING Name)
|
IN PANSI_STRING Name)
|
||||||
{
|
{
|
||||||
return FALSE;
|
UNIMPLEMENTED;
|
||||||
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*++
|
||||||
* NAME EXPORTED
|
* @name FsRtlIsFatDbcsLegal
|
||||||
* FsRtlIsFatDbcsLegal@20
|
|
||||||
*
|
|
||||||
* DESCRIPTION
|
|
||||||
*
|
|
||||||
* ARGUMENTS
|
|
||||||
*
|
|
||||||
* RETURN VALUE
|
|
||||||
*
|
|
||||||
* @unimplemented
|
* @unimplemented
|
||||||
*/
|
*
|
||||||
|
* FILLME
|
||||||
|
*
|
||||||
|
* @param DbcsName
|
||||||
|
* FILLME
|
||||||
|
*
|
||||||
|
* @param WildCardsPermissible
|
||||||
|
* FILLME
|
||||||
|
*
|
||||||
|
* @param PathNamePermissible
|
||||||
|
* FILLME
|
||||||
|
*
|
||||||
|
* @param LeadingBackslashPermissible
|
||||||
|
* FILLME
|
||||||
|
*
|
||||||
|
* @return TRUE if the DbcsName is legal, FALSE otherwise
|
||||||
|
*
|
||||||
|
* @remarks None
|
||||||
|
*
|
||||||
|
*--*/
|
||||||
BOOLEAN
|
BOOLEAN
|
||||||
STDCALL
|
NTAPI
|
||||||
FsRtlIsFatDbcsLegal(IN ANSI_STRING DbcsName,
|
FsRtlIsFatDbcsLegal(IN ANSI_STRING DbcsName,
|
||||||
IN BOOLEAN WildCardsPermissible,
|
IN BOOLEAN WildCardsPermissible,
|
||||||
IN BOOLEAN PathNamePermissible,
|
IN BOOLEAN PathNamePermissible,
|
||||||
IN BOOLEAN LeadingBackslashPermissible)
|
IN BOOLEAN LeadingBackslashPermissible)
|
||||||
{
|
{
|
||||||
return FALSE;
|
UNIMPLEMENTED;
|
||||||
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*++
|
||||||
* NAME EXPORTED
|
* @name FsRtlIsHpfsDbcsLegal
|
||||||
* FsRtlIsHpfsDbcsLegal@20
|
|
||||||
*
|
|
||||||
* DESCRIPTION
|
|
||||||
*
|
|
||||||
* ARGUMENTS
|
|
||||||
*
|
|
||||||
* RETURN VALUE
|
|
||||||
*
|
|
||||||
* @unimplemented
|
* @unimplemented
|
||||||
*/
|
*
|
||||||
|
* FILLME
|
||||||
|
*
|
||||||
|
* @param DbcsName
|
||||||
|
* FILLME
|
||||||
|
*
|
||||||
|
* @param WildCardsPermissible
|
||||||
|
* FILLME
|
||||||
|
*
|
||||||
|
* @param PathNamePermissible
|
||||||
|
* FILLME
|
||||||
|
*
|
||||||
|
* @param LeadingBackslashPermissible
|
||||||
|
* FILLME
|
||||||
|
*
|
||||||
|
* @return TRUE if the DbcsName is legal, FALSE otherwise
|
||||||
|
*
|
||||||
|
* @remarks None
|
||||||
|
*
|
||||||
|
*--*/
|
||||||
BOOLEAN
|
BOOLEAN
|
||||||
STDCALL
|
STDCALL
|
||||||
FsRtlIsHpfsDbcsLegal(IN ANSI_STRING DbcsName,
|
FsRtlIsHpfsDbcsLegal(IN ANSI_STRING DbcsName,
|
||||||
|
@ -513,108 +545,111 @@ FsRtlIsHpfsDbcsLegal(IN ANSI_STRING DbcsName,
|
||||||
IN BOOLEAN PathNamePermissible,
|
IN BOOLEAN PathNamePermissible,
|
||||||
IN BOOLEAN LeadingBackslashPermissible)
|
IN BOOLEAN LeadingBackslashPermissible)
|
||||||
{
|
{
|
||||||
return FALSE;
|
UNIMPLEMENTED;
|
||||||
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*++
|
||||||
* NAME EXPORTED
|
* @name FsRtlIsNameInExpression
|
||||||
* FsRtlIsNameInExpression@16
|
|
||||||
*
|
|
||||||
* DESCRIPTION
|
|
||||||
*
|
|
||||||
* ARGUMENTS
|
|
||||||
*
|
|
||||||
* RETURN VALUE
|
|
||||||
*
|
|
||||||
* NOTE
|
|
||||||
* From Bo Branten's ntifs.h v12. This function should be rewritten
|
|
||||||
* to avoid recursion and better wildcard handling should be
|
|
||||||
* implemented (see FsRtlDoesNameContainWildCards).
|
|
||||||
*
|
|
||||||
* @implemented
|
* @implemented
|
||||||
*/
|
*
|
||||||
|
* FILLME
|
||||||
|
*
|
||||||
|
* @param DeviceObject
|
||||||
|
* FILLME
|
||||||
|
*
|
||||||
|
* @param Irp
|
||||||
|
* FILLME
|
||||||
|
*
|
||||||
|
* @return TRUE if Name is in Expression, FALSE otherwise
|
||||||
|
*
|
||||||
|
* @remarks From Bo Branten's ntifs.h v12. This function should be
|
||||||
|
* rewritten to avoid recursion and better wildcard handling
|
||||||
|
* should be implemented (see FsRtlDoesNameContainWildCards).
|
||||||
|
*
|
||||||
|
*--*/
|
||||||
BOOLEAN
|
BOOLEAN
|
||||||
STDCALL
|
NTAPI
|
||||||
FsRtlIsNameInExpression(IN PUNICODE_STRING Expression,
|
FsRtlIsNameInExpression(IN PUNICODE_STRING Expression,
|
||||||
IN PUNICODE_STRING Name,
|
IN PUNICODE_STRING Name,
|
||||||
IN BOOLEAN IgnoreCase,
|
IN BOOLEAN IgnoreCase,
|
||||||
IN PWCHAR UpcaseTable OPTIONAL)
|
IN PWCHAR UpcaseTable OPTIONAL)
|
||||||
{
|
{
|
||||||
USHORT ExpressionPosition, NamePosition;
|
USHORT ExpressionPosition, NamePosition;
|
||||||
UNICODE_STRING TempExpression, TempName;
|
UNICODE_STRING TempExpression, TempName;
|
||||||
|
|
||||||
ExpressionPosition = 0;
|
ExpressionPosition = 0;
|
||||||
NamePosition = 0;
|
NamePosition = 0;
|
||||||
while (ExpressionPosition < (Expression->Length / sizeof(WCHAR)) &&
|
while (ExpressionPosition < (Expression->Length / sizeof(WCHAR)) &&
|
||||||
NamePosition < (Name->Length / sizeof(WCHAR)))
|
NamePosition < (Name->Length / sizeof(WCHAR)))
|
||||||
{
|
{
|
||||||
if (Expression->Buffer[ExpressionPosition] == L'*')
|
if (Expression->Buffer[ExpressionPosition] == L'*')
|
||||||
{
|
{
|
||||||
ExpressionPosition++;
|
ExpressionPosition++;
|
||||||
if (ExpressionPosition == (Expression->Length / sizeof(WCHAR)))
|
if (ExpressionPosition == (Expression->Length / sizeof(WCHAR)))
|
||||||
{
|
{
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
while (NamePosition < (Name->Length / sizeof(WCHAR)))
|
while (NamePosition < (Name->Length / sizeof(WCHAR)))
|
||||||
{
|
{
|
||||||
TempExpression.Length =
|
TempExpression.Length =
|
||||||
TempExpression.MaximumLength =
|
TempExpression.MaximumLength =
|
||||||
Expression->Length - (ExpressionPosition * sizeof(WCHAR));
|
Expression->Length - (ExpressionPosition * sizeof(WCHAR));
|
||||||
TempExpression.Buffer = Expression->Buffer + ExpressionPosition;
|
TempExpression.Buffer = Expression->Buffer + ExpressionPosition;
|
||||||
TempName.Length =
|
TempName.Length =
|
||||||
TempName.MaximumLength =
|
TempName.MaximumLength =
|
||||||
Name->Length - (NamePosition * sizeof(WCHAR));
|
Name->Length - (NamePosition * sizeof(WCHAR));
|
||||||
TempName.Buffer = Name->Buffer + NamePosition;
|
TempName.Buffer = Name->Buffer + NamePosition;
|
||||||
/* FIXME: Rewrite to get rid of recursion */
|
/* FIXME: Rewrite to get rid of recursion */
|
||||||
if (FsRtlIsNameInExpression(&TempExpression, &TempName,
|
if (FsRtlIsNameInExpression(&TempExpression, &TempName,
|
||||||
IgnoreCase, UpcaseTable))
|
IgnoreCase, UpcaseTable))
|
||||||
{
|
{
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
NamePosition++;
|
NamePosition++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
/* FIXME: Take UpcaseTable into account! */
|
/* FIXME: Take UpcaseTable into account! */
|
||||||
if (Expression->Buffer[ExpressionPosition] == L'?' ||
|
if (Expression->Buffer[ExpressionPosition] == L'?' ||
|
||||||
(IgnoreCase &&
|
(IgnoreCase &&
|
||||||
RtlUpcaseUnicodeChar(Expression->Buffer[ExpressionPosition]) ==
|
RtlUpcaseUnicodeChar(Expression->Buffer[ExpressionPosition]) ==
|
||||||
RtlUpcaseUnicodeChar(Name->Buffer[NamePosition])) ||
|
RtlUpcaseUnicodeChar(Name->Buffer[NamePosition])) ||
|
||||||
(!IgnoreCase &&
|
(!IgnoreCase &&
|
||||||
Expression->Buffer[ExpressionPosition] ==
|
Expression->Buffer[ExpressionPosition] ==
|
||||||
Name->Buffer[NamePosition]))
|
Name->Buffer[NamePosition]))
|
||||||
{
|
{
|
||||||
NamePosition++;
|
NamePosition++;
|
||||||
ExpressionPosition++;
|
ExpressionPosition++;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Handle matching of "f0_*.*" expression to "f0_000" file name. */
|
/* Handle matching of "f0_*.*" expression to "f0_000" file name. */
|
||||||
if (ExpressionPosition < (Expression->Length / sizeof(WCHAR)) &&
|
if (ExpressionPosition < (Expression->Length / sizeof(WCHAR)) &&
|
||||||
Expression->Buffer[ExpressionPosition] == L'.')
|
Expression->Buffer[ExpressionPosition] == L'.')
|
||||||
{
|
{
|
||||||
while (ExpressionPosition < (Expression->Length / sizeof(WCHAR)) &&
|
while (ExpressionPosition < (Expression->Length / sizeof(WCHAR)) &&
|
||||||
(Expression->Buffer[ExpressionPosition] == L'.' ||
|
(Expression->Buffer[ExpressionPosition] == L'.' ||
|
||||||
Expression->Buffer[ExpressionPosition] == L'*' ||
|
Expression->Buffer[ExpressionPosition] == L'*' ||
|
||||||
Expression->Buffer[ExpressionPosition] == L'?'))
|
Expression->Buffer[ExpressionPosition] == L'?'))
|
||||||
{
|
{
|
||||||
ExpressionPosition++;
|
ExpressionPosition++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ExpressionPosition == (Expression->Length / sizeof(WCHAR)) &&
|
if (ExpressionPosition == (Expression->Length / sizeof(WCHAR)) &&
|
||||||
NamePosition == (Name->Length / sizeof(WCHAR)))
|
NamePosition == (Name->Length / sizeof(WCHAR)))
|
||||||
{
|
{
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* EOF */
|
/* EOF */
|
||||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -1,141 +1,175 @@
|
||||||
/* $Id$
|
/* $Id$
|
||||||
*
|
*
|
||||||
* COPYRIGHT: See COPYING in the top level directory
|
* PROJECT: ReactOS Kernel
|
||||||
* PROJECT: ReactOS kernel
|
* LICENSE: GPL - See COPYING in the top level directory
|
||||||
* FILE: ntoskrnl/fs/oplock.c
|
* FILE: ntoskrnl/fs/oplock.c
|
||||||
* PURPOSE: No purpose listed.
|
* PURPOSE: Oplock-functions
|
||||||
*
|
*
|
||||||
* PROGRAMMERS: Emanuele Aliberti
|
* PROGRAMMERS: Emanuele Aliberti
|
||||||
* Eric Kohl
|
* Eric Kohl
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
/* INCLUDES *****************************************************************/
|
||||||
|
|
||||||
#include <ntoskrnl.h>
|
#include <ntoskrnl.h>
|
||||||
|
|
||||||
|
#define NDEBUG
|
||||||
|
#include <internal/debug.h>
|
||||||
|
|
||||||
/**********************************************************************
|
/* FUNCTIONS *****************************************************************/
|
||||||
* NAME EXPORTED
|
|
||||||
* FsRtlCheckOplock@20
|
/*++
|
||||||
*
|
* @name FsRtlCheckOplock
|
||||||
* DESCRIPTION
|
|
||||||
*
|
|
||||||
* ARGUMENTS
|
|
||||||
*
|
|
||||||
* RETURN VALUE
|
|
||||||
*
|
|
||||||
* @unimplemented
|
* @unimplemented
|
||||||
*/
|
*
|
||||||
|
* FILLME
|
||||||
|
*
|
||||||
|
* @param Oplock
|
||||||
|
* FILLME
|
||||||
|
*
|
||||||
|
* @param Irp
|
||||||
|
* FILLME
|
||||||
|
*
|
||||||
|
* @param Context
|
||||||
|
* FILLME
|
||||||
|
*
|
||||||
|
* @param CompletionRoutine
|
||||||
|
* FILLME
|
||||||
|
*
|
||||||
|
* @param PostIrpRoutine
|
||||||
|
* FILLME
|
||||||
|
*
|
||||||
|
* @return None
|
||||||
|
*
|
||||||
|
* @remarks None
|
||||||
|
*
|
||||||
|
*--*/
|
||||||
NTSTATUS
|
NTSTATUS
|
||||||
NTAPI
|
NTAPI
|
||||||
FsRtlCheckOplock(IN POPLOCK Oplock,
|
FsRtlCheckOplock(IN POPLOCK Oplock,
|
||||||
IN PIRP Irp,
|
IN PIRP Irp,
|
||||||
IN PVOID Context,
|
IN PVOID Context,
|
||||||
IN POPLOCK_WAIT_COMPLETE_ROUTINE CompletionRoutine OPTIONAL,
|
IN POPLOCK_WAIT_COMPLETE_ROUTINE CompletionRoutine OPTIONAL,
|
||||||
IN POPLOCK_FS_PREPOST_IRP PostIrpRoutine OPTIONAL)
|
IN POPLOCK_FS_PREPOST_IRP PostIrpRoutine OPTIONAL)
|
||||||
{
|
{
|
||||||
return(STATUS_NOT_IMPLEMENTED);
|
UNIMPLEMENTED;
|
||||||
|
return STATUS_NOT_IMPLEMENTED;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*++
|
||||||
/**********************************************************************
|
* @name FsRtlCurrentBatchOplock
|
||||||
* NAME EXPORTED
|
|
||||||
* FsRtlCurrentBatchOplock@4
|
|
||||||
*
|
|
||||||
* DESCRIPTION
|
|
||||||
*
|
|
||||||
* ARGUMENTS
|
|
||||||
*
|
|
||||||
* RETURN VALUE
|
|
||||||
*
|
|
||||||
* @unimplemented
|
* @unimplemented
|
||||||
*/
|
*
|
||||||
|
* FILLME
|
||||||
|
*
|
||||||
|
* @param Oplock
|
||||||
|
* FILLME
|
||||||
|
*
|
||||||
|
* @return None
|
||||||
|
*
|
||||||
|
* @remarks None
|
||||||
|
*
|
||||||
|
*--*/
|
||||||
BOOLEAN
|
BOOLEAN
|
||||||
NTAPI
|
NTAPI
|
||||||
FsRtlCurrentBatchOplock(IN POPLOCK Oplock)
|
FsRtlCurrentBatchOplock(IN POPLOCK Oplock)
|
||||||
{
|
{
|
||||||
return(FALSE);
|
UNIMPLEMENTED;
|
||||||
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*++
|
||||||
/**********************************************************************
|
* @name FsRtlInitializeOplock
|
||||||
* NAME EXPORTED
|
* @unimplemented
|
||||||
* FsRtlInitializeOplock@4
|
|
||||||
*
|
*
|
||||||
* DESCRIPTION
|
* FILLME
|
||||||
*
|
*
|
||||||
* ARGUMENTS
|
* @param Oplock
|
||||||
|
* FILLME
|
||||||
*
|
*
|
||||||
* RETURN VALUE
|
* @return None
|
||||||
*
|
*
|
||||||
* NOTE
|
* @remarks None
|
||||||
* Obsolete function.
|
|
||||||
*
|
*
|
||||||
* @implemented
|
*--*/
|
||||||
*/
|
|
||||||
VOID
|
VOID
|
||||||
NTAPI
|
NTAPI
|
||||||
FsRtlInitializeOplock(IN OUT POPLOCK Oplock)
|
FsRtlInitializeOplock(IN OUT POPLOCK Oplock)
|
||||||
{
|
{
|
||||||
|
UNIMPLEMENTED;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*++
|
||||||
/**********************************************************************
|
* @name FsRtlOplockFsctrl
|
||||||
* NAME EXPORTED
|
|
||||||
* FsRtlOplockFsctrl@12
|
|
||||||
*
|
|
||||||
* DESCRIPTION
|
|
||||||
*
|
|
||||||
* ARGUMENTS
|
|
||||||
*
|
|
||||||
* RETURN VALUE
|
|
||||||
*
|
|
||||||
* @unimplemented
|
* @unimplemented
|
||||||
*/
|
*
|
||||||
|
* FILLME
|
||||||
|
*
|
||||||
|
* @param Oplock
|
||||||
|
* FILLME
|
||||||
|
*
|
||||||
|
* @param Irp
|
||||||
|
* FILLME
|
||||||
|
*
|
||||||
|
* @param OpenCount
|
||||||
|
* FILLME
|
||||||
|
*
|
||||||
|
* @return None
|
||||||
|
*
|
||||||
|
* @remarks None
|
||||||
|
*
|
||||||
|
*--*/
|
||||||
NTSTATUS
|
NTSTATUS
|
||||||
NTAPI
|
NTAPI
|
||||||
FsRtlOplockFsctrl(IN POPLOCK Oplock,
|
FsRtlOplockFsctrl(IN POPLOCK Oplock,
|
||||||
IN PIRP Irp,
|
IN PIRP Irp,
|
||||||
IN ULONG OpenCount)
|
IN ULONG OpenCount)
|
||||||
{
|
{
|
||||||
return(STATUS_NOT_IMPLEMENTED);
|
UNIMPLEMENTED;
|
||||||
|
return STATUS_NOT_IMPLEMENTED;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*++
|
||||||
/**********************************************************************
|
* @name FsRtlOplockIsFastIoPossible
|
||||||
* NAME EXPORTED
|
|
||||||
* FsRtlOplockIsFastIoPossible@4
|
|
||||||
*
|
|
||||||
* DESCRIPTION
|
|
||||||
*
|
|
||||||
* ARGUMENTS
|
|
||||||
*
|
|
||||||
* RETURN VALUE
|
|
||||||
*
|
|
||||||
* @unimplemented
|
* @unimplemented
|
||||||
*/
|
*
|
||||||
|
* FILLME
|
||||||
|
*
|
||||||
|
* @param Oplock
|
||||||
|
* FILLME
|
||||||
|
*
|
||||||
|
* @return None
|
||||||
|
*
|
||||||
|
* @remarks None
|
||||||
|
*
|
||||||
|
*--*/
|
||||||
BOOLEAN
|
BOOLEAN
|
||||||
NTAPI
|
NTAPI
|
||||||
FsRtlOplockIsFastIoPossible(IN POPLOCK Oplock)
|
FsRtlOplockIsFastIoPossible(IN POPLOCK Oplock)
|
||||||
{
|
{
|
||||||
return(FALSE);
|
UNIMPLEMENTED;
|
||||||
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*++
|
||||||
/**********************************************************************
|
* @name FsRtlUninitializeOplock
|
||||||
* NAME EXPORTED
|
* @unimplemented
|
||||||
* FsRtlUninitializeOplock@4
|
|
||||||
*
|
*
|
||||||
* DESCRIPTION
|
* FILLME
|
||||||
*
|
*
|
||||||
* ARGUMENTS
|
* @param Oplock
|
||||||
|
* FILLME
|
||||||
*
|
*
|
||||||
* RETURN VALUE
|
* @return None
|
||||||
*
|
*
|
||||||
* @implemented
|
* @remarks None
|
||||||
*/
|
*
|
||||||
|
*--*/
|
||||||
VOID
|
VOID
|
||||||
NTAPI
|
NTAPI
|
||||||
FsRtlUninitializeOplock(IN POPLOCK Oplock)
|
FsRtlUninitializeOplock(IN POPLOCK Oplock)
|
||||||
{
|
{
|
||||||
|
UNIMPLEMENTED;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* EOF */
|
/* EOF */
|
||||||
|
|
|
@ -1,159 +1,171 @@
|
||||||
/* $Id$
|
/* $Id$
|
||||||
*
|
*
|
||||||
* COPYRIGHT: See COPYING in the top level directory
|
* PROJECT: ReactOS Kernel
|
||||||
* PROJECT: ReactOS kernel
|
* LICENSE: GPL - See COPYING in the top level directory
|
||||||
* FILE: ntoskrnl/fs/pool.c
|
* FILE: ntoskrnl/fs/pool.c
|
||||||
* PURPOSE: No purpose listed.
|
* PURPOSE: No purpose listed.
|
||||||
*
|
*
|
||||||
* PROGRAMMERS: No programmer listed.
|
* PROGRAMMERS: No programmer listed.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
/* INCLUDES *****************************************************************/
|
||||||
|
|
||||||
#include <ntoskrnl.h>
|
#include <ntoskrnl.h>
|
||||||
|
|
||||||
|
#define NDEBUG
|
||||||
|
#include <internal/debug.h>
|
||||||
|
|
||||||
/**********************************************************************
|
/* FUNCTIONS *****************************************************************/
|
||||||
* NAME EXPORTED
|
|
||||||
* FsRtlAllocatePool@8
|
/*++
|
||||||
*
|
* @name FsRtlAllocatePool
|
||||||
* DESCRIPTION
|
|
||||||
*
|
|
||||||
* ARGUMENTS
|
|
||||||
*
|
|
||||||
* RETURN VALUE
|
|
||||||
*
|
|
||||||
* NOTE
|
|
||||||
* IFS_POOL_TAG is "FSrt" in mem view.
|
|
||||||
*
|
|
||||||
* @implemented
|
* @implemented
|
||||||
*/
|
*
|
||||||
|
* FILLME
|
||||||
|
*
|
||||||
|
* @param PoolType
|
||||||
|
* FILLME
|
||||||
|
*
|
||||||
|
* @param NumberOfBytes
|
||||||
|
* FILLME
|
||||||
|
*
|
||||||
|
* @return None
|
||||||
|
*
|
||||||
|
* @remarks IFS_POOL_TAG is "FSrt" in mem view.
|
||||||
|
*
|
||||||
|
*--*/
|
||||||
PVOID
|
PVOID
|
||||||
NTAPI
|
NTAPI
|
||||||
FsRtlAllocatePool (
|
FsRtlAllocatePool(IN POOL_TYPE PoolType,
|
||||||
IN POOL_TYPE PoolType,
|
IN ULONG NumberOfBytes)
|
||||||
IN ULONG NumberOfBytes
|
|
||||||
)
|
|
||||||
{
|
{
|
||||||
PVOID Address;
|
PVOID Address;
|
||||||
|
|
||||||
Address = ExAllocatePoolWithTag (
|
Address = ExAllocatePoolWithTag(PoolType,
|
||||||
PoolType,
|
NumberOfBytes,
|
||||||
NumberOfBytes,
|
IFS_POOL_TAG);
|
||||||
IFS_POOL_TAG
|
|
||||||
);
|
if (NULL == Address)
|
||||||
if (NULL == Address)
|
{
|
||||||
{
|
ExRaiseStatus(STATUS_INSUFFICIENT_RESOURCES);
|
||||||
ExRaiseStatus (STATUS_INSUFFICIENT_RESOURCES);
|
}
|
||||||
}
|
|
||||||
return Address;
|
return Address;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*++
|
||||||
/**********************************************************************
|
* @name FsRtlAllocatePoolWithQuota
|
||||||
* NAME EXPORTED
|
|
||||||
* FsRtlAllocatePoolWithQuota@8
|
|
||||||
*
|
|
||||||
* DESCRIPTION
|
|
||||||
*
|
|
||||||
* ARGUMENTS
|
|
||||||
*
|
|
||||||
* RETURN VALUE
|
|
||||||
*
|
|
||||||
* NOTE
|
|
||||||
* IFS_POOL_TAG is "FSrt" in mem view.
|
|
||||||
*
|
|
||||||
* @implemented
|
* @implemented
|
||||||
*/
|
*
|
||||||
|
* FILLME
|
||||||
|
*
|
||||||
|
* @param PoolType
|
||||||
|
* FILLME
|
||||||
|
*
|
||||||
|
* @param NumberOfBytes
|
||||||
|
* FILLME
|
||||||
|
*
|
||||||
|
* @return None
|
||||||
|
*
|
||||||
|
* @remarks IFS_POOL_TAG is "FSrt" in mem view.
|
||||||
|
*
|
||||||
|
*--*/
|
||||||
PVOID
|
PVOID
|
||||||
NTAPI
|
NTAPI
|
||||||
FsRtlAllocatePoolWithQuota (
|
FsRtlAllocatePoolWithQuota(IN POOL_TYPE PoolType,
|
||||||
IN POOL_TYPE PoolType,
|
IN ULONG NumberOfBytes)
|
||||||
IN ULONG NumberOfBytes
|
|
||||||
)
|
|
||||||
{
|
{
|
||||||
PVOID Address;
|
PVOID Address;
|
||||||
|
|
||||||
Address = ExAllocatePoolWithQuotaTag (
|
Address = ExAllocatePoolWithQuotaTag(PoolType,
|
||||||
PoolType,
|
NumberOfBytes,
|
||||||
NumberOfBytes,
|
IFS_POOL_TAG);
|
||||||
IFS_POOL_TAG
|
if (NULL == Address)
|
||||||
);
|
{
|
||||||
if (NULL == Address)
|
ExRaiseStatus(STATUS_INSUFFICIENT_RESOURCES);
|
||||||
{
|
}
|
||||||
ExRaiseStatus (STATUS_INSUFFICIENT_RESOURCES);
|
return Address;
|
||||||
}
|
|
||||||
return Address;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*++
|
||||||
/**********************************************************************
|
* @name FsRtlAllocatePoolWithQuotaTag
|
||||||
* NAME EXPORTED
|
|
||||||
* FsRtlAllocatePoolWithQuotaTag@12
|
|
||||||
*
|
|
||||||
* DESCRIPTION
|
|
||||||
*
|
|
||||||
* ARGUMENTS
|
|
||||||
*
|
|
||||||
* RETURN VALUE
|
|
||||||
*
|
|
||||||
* @implemented
|
* @implemented
|
||||||
*/
|
*
|
||||||
|
* FILLME
|
||||||
|
*
|
||||||
|
* @param PoolType
|
||||||
|
* FILLME
|
||||||
|
*
|
||||||
|
* @param NumberOfBytes
|
||||||
|
* FILLME
|
||||||
|
*
|
||||||
|
* @param Tag
|
||||||
|
* FILLME
|
||||||
|
*
|
||||||
|
* @return None
|
||||||
|
*
|
||||||
|
* @remarks None
|
||||||
|
*
|
||||||
|
*--*/
|
||||||
PVOID
|
PVOID
|
||||||
NTAPI
|
NTAPI
|
||||||
FsRtlAllocatePoolWithQuotaTag (
|
FsRtlAllocatePoolWithQuotaTag (IN POOL_TYPE PoolType,
|
||||||
IN POOL_TYPE PoolType,
|
IN ULONG NumberOfBytes,
|
||||||
IN ULONG NumberOfBytes,
|
IN ULONG Tag)
|
||||||
IN ULONG Tag
|
|
||||||
)
|
|
||||||
{
|
{
|
||||||
PVOID Address;
|
PVOID Address;
|
||||||
|
|
||||||
Address = ExAllocatePoolWithQuotaTag (
|
Address = ExAllocatePoolWithQuotaTag(PoolType,
|
||||||
PoolType,
|
NumberOfBytes,
|
||||||
NumberOfBytes,
|
Tag);
|
||||||
Tag
|
|
||||||
);
|
if (NULL == Address)
|
||||||
if (NULL == Address)
|
{
|
||||||
{
|
ExRaiseStatus(STATUS_INSUFFICIENT_RESOURCES);
|
||||||
ExRaiseStatus (STATUS_INSUFFICIENT_RESOURCES);
|
}
|
||||||
}
|
|
||||||
return Address;
|
return Address;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*++
|
||||||
/**********************************************************************
|
* @name FsRtlAllocatePoolWithTag
|
||||||
* NAME EXPORTED
|
|
||||||
* FsRtlAllocatePoolWithTag@12
|
|
||||||
*
|
|
||||||
* DESCRIPTION
|
|
||||||
*
|
|
||||||
* ARGUMENTS
|
|
||||||
*
|
|
||||||
* RETURN VALUE
|
|
||||||
*
|
|
||||||
* @implemented
|
* @implemented
|
||||||
*/
|
*
|
||||||
|
* FILLME
|
||||||
|
*
|
||||||
|
* @param PoolType
|
||||||
|
* FILLME
|
||||||
|
*
|
||||||
|
* @param NumberOfBytes
|
||||||
|
* FILLME
|
||||||
|
*
|
||||||
|
* @param Tag
|
||||||
|
* FILLME
|
||||||
|
*
|
||||||
|
* @return None
|
||||||
|
*
|
||||||
|
* @remarks None
|
||||||
|
*
|
||||||
|
*--*/
|
||||||
PVOID
|
PVOID
|
||||||
NTAPI
|
NTAPI
|
||||||
FsRtlAllocatePoolWithTag (
|
FsRtlAllocatePoolWithTag(IN POOL_TYPE PoolType,
|
||||||
IN POOL_TYPE PoolType,
|
IN ULONG NumberOfBytes,
|
||||||
IN ULONG NumberOfBytes,
|
IN ULONG Tag)
|
||||||
IN ULONG Tag
|
|
||||||
)
|
|
||||||
{
|
{
|
||||||
PVOID Address;
|
PVOID Address;
|
||||||
|
|
||||||
Address = ExAllocatePoolWithTag (
|
Address = ExAllocatePoolWithTag(PoolType,
|
||||||
PoolType,
|
NumberOfBytes,
|
||||||
NumberOfBytes,
|
Tag);
|
||||||
Tag
|
|
||||||
);
|
if (NULL == Address)
|
||||||
if (NULL == Address)
|
{
|
||||||
{
|
ExRaiseStatus(STATUS_INSUFFICIENT_RESOURCES);
|
||||||
ExRaiseStatus (STATUS_INSUFFICIENT_RESOURCES);
|
}
|
||||||
}
|
|
||||||
return Address;
|
return Address;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* EOF */
|
/* EOF */
|
||||||
|
|
|
@ -1,133 +1,178 @@
|
||||||
/* $Id$
|
/* $Id$
|
||||||
*
|
*
|
||||||
* COPYRIGHT: See COPYING in the top level directory
|
|
||||||
* PROJECT: ReactOS kernel
|
* PROJECT: ReactOS kernel
|
||||||
|
* LICENSE: GPL - See COPYING in the top level directory
|
||||||
* FILE: ntoskrnl/fs/tunnel.c
|
* FILE: ntoskrnl/fs/tunnel.c
|
||||||
* PURPOSE: No purpose listed.
|
* PURPOSE: No purpose listed.
|
||||||
*
|
*
|
||||||
* PROGRAMMERS: Emanuele Aliberti
|
* PROGRAMMERS: Emanuele Aliberti
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
/* INCLUDES ******************************************************************/
|
||||||
|
|
||||||
#include <ntoskrnl.h>
|
#include <ntoskrnl.h>
|
||||||
|
|
||||||
|
#define NDEBUG
|
||||||
|
#include <internal/debug.h>
|
||||||
|
|
||||||
/**********************************************************************
|
/* FUNCTIONS *****************************************************************/
|
||||||
* NAME EXPORTED
|
|
||||||
* FsRtlAddToTunnelCache@32
|
/*++
|
||||||
*
|
* @name FsRtlAddToTunnelCache
|
||||||
* DESCRIPTION
|
|
||||||
*
|
|
||||||
* ARGUMENTS
|
|
||||||
*
|
|
||||||
* RETURN VALUE
|
|
||||||
*
|
|
||||||
* @unimplemented
|
* @unimplemented
|
||||||
*/
|
*
|
||||||
|
* FILLME
|
||||||
|
*
|
||||||
|
* @param Cache
|
||||||
|
* FILLME
|
||||||
|
*
|
||||||
|
* @param DirectoryKey
|
||||||
|
* FILLME
|
||||||
|
*
|
||||||
|
* @param ShortName
|
||||||
|
* FILLME
|
||||||
|
*
|
||||||
|
* @param LongName
|
||||||
|
* FILLME
|
||||||
|
*
|
||||||
|
* @param KeyByShortName
|
||||||
|
* FILLME
|
||||||
|
*
|
||||||
|
* @param DataLength
|
||||||
|
* FILLME
|
||||||
|
*
|
||||||
|
* @param Data
|
||||||
|
* FILLME
|
||||||
|
*
|
||||||
|
* @return None
|
||||||
|
*
|
||||||
|
* @remarks None
|
||||||
|
*
|
||||||
|
*--*/
|
||||||
VOID
|
VOID
|
||||||
STDCALL
|
NTAPI
|
||||||
FsRtlAddToTunnelCache (
|
FsRtlAddToTunnelCache(IN PTUNNEL Cache,
|
||||||
IN PTUNNEL Cache,
|
IN ULONGLONG DirectoryKey,
|
||||||
IN ULONGLONG DirectoryKey,
|
IN PUNICODE_STRING ShortName,
|
||||||
IN PUNICODE_STRING ShortName,
|
IN PUNICODE_STRING LongName,
|
||||||
IN PUNICODE_STRING LongName,
|
IN BOOLEAN KeyByShortName,
|
||||||
IN BOOLEAN KeyByShortName,
|
IN ULONG DataLength,
|
||||||
IN ULONG DataLength,
|
IN PVOID Data)
|
||||||
IN PVOID Data
|
|
||||||
)
|
|
||||||
{
|
{
|
||||||
|
UNIMPLEMENTED;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*++
|
||||||
/**********************************************************************
|
* @name FsRtlDeleteKeyFromTunnelCache
|
||||||
* NAME EXPORTED
|
|
||||||
* FsRtlDeleteKeyFromTunnelCache@12
|
|
||||||
*
|
|
||||||
* DESCRIPTION
|
|
||||||
*
|
|
||||||
* ARGUMENTS
|
|
||||||
*
|
|
||||||
* RETURN VALUE
|
|
||||||
*
|
|
||||||
* @unimplemented
|
* @unimplemented
|
||||||
*/
|
*
|
||||||
|
* FILLME
|
||||||
|
*
|
||||||
|
* @param Cache
|
||||||
|
* FILLME
|
||||||
|
*
|
||||||
|
* @param DirectoryKey
|
||||||
|
* FILLME
|
||||||
|
*
|
||||||
|
* @return None
|
||||||
|
*
|
||||||
|
* @remarks None
|
||||||
|
*
|
||||||
|
*--*/
|
||||||
VOID
|
VOID
|
||||||
STDCALL
|
NTAPI
|
||||||
FsRtlDeleteKeyFromTunnelCache (
|
FsRtlDeleteKeyFromTunnelCache(IN PTUNNEL Cache,
|
||||||
IN PTUNNEL Cache,
|
IN ULONGLONG DirectoryKey)
|
||||||
IN ULONGLONG DirectoryKey
|
|
||||||
)
|
|
||||||
{
|
{
|
||||||
|
UNIMPLEMENTED;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*++
|
||||||
/**********************************************************************
|
* @name FsRtlDeleteTunnelCache
|
||||||
* NAME EXPORTED
|
|
||||||
* FsRtlDeleteTunnelCache@4
|
|
||||||
*
|
|
||||||
* DESCRIPTION
|
|
||||||
*
|
|
||||||
* ARGUMENTS
|
|
||||||
*
|
|
||||||
* RETURN VALUE
|
|
||||||
*
|
|
||||||
* @unimplemented
|
* @unimplemented
|
||||||
*/
|
*
|
||||||
|
* FILLME
|
||||||
|
*
|
||||||
|
* @param Cache
|
||||||
|
* FILLME
|
||||||
|
*
|
||||||
|
* @return None
|
||||||
|
*
|
||||||
|
* @remarks None
|
||||||
|
*
|
||||||
|
*--*/
|
||||||
VOID
|
VOID
|
||||||
STDCALL
|
NTAPI
|
||||||
FsRtlDeleteTunnelCache (
|
FsRtlDeleteTunnelCache(IN PTUNNEL Cache)
|
||||||
IN PTUNNEL Cache
|
|
||||||
)
|
|
||||||
{
|
{
|
||||||
|
UNIMPLEMENTED;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*++
|
||||||
/**********************************************************************
|
* @name FsRtlFindInTunnelCache
|
||||||
* NAME EXPORTED
|
|
||||||
* FsRtlFindInTunnelCache@32
|
|
||||||
*
|
|
||||||
* DESCRIPTION
|
|
||||||
*
|
|
||||||
* ARGUMENTS
|
|
||||||
*
|
|
||||||
* RETURN VALUE
|
|
||||||
*
|
|
||||||
* @unimplemented
|
* @unimplemented
|
||||||
*/
|
*
|
||||||
|
* FILLME
|
||||||
|
*
|
||||||
|
* @param Cache
|
||||||
|
* FILLME
|
||||||
|
*
|
||||||
|
* @param DirectoryKey
|
||||||
|
* FILLME
|
||||||
|
*
|
||||||
|
* @param ShortName
|
||||||
|
* FILLME
|
||||||
|
*
|
||||||
|
* @param LongName
|
||||||
|
* FILLME
|
||||||
|
*
|
||||||
|
* @param KeyByShortName
|
||||||
|
* FILLME
|
||||||
|
*
|
||||||
|
* @param DataLength
|
||||||
|
* FILLME
|
||||||
|
*
|
||||||
|
* @param Data
|
||||||
|
* FILLME
|
||||||
|
*
|
||||||
|
* @return None
|
||||||
|
*
|
||||||
|
* @remarks None
|
||||||
|
*
|
||||||
|
*--*/
|
||||||
BOOLEAN
|
BOOLEAN
|
||||||
STDCALL
|
NTAPI
|
||||||
FsRtlFindInTunnelCache (
|
FsRtlFindInTunnelCache(IN PTUNNEL Cache,
|
||||||
IN PTUNNEL Cache,
|
IN ULONGLONG DirectoryKey,
|
||||||
IN ULONGLONG DirectoryKey,
|
IN PUNICODE_STRING Name,
|
||||||
IN PUNICODE_STRING Name,
|
OUT PUNICODE_STRING ShortName,
|
||||||
OUT PUNICODE_STRING ShortName,
|
OUT PUNICODE_STRING LongName,
|
||||||
OUT PUNICODE_STRING LongName,
|
IN OUT PULONG DataLength,
|
||||||
IN OUT PULONG DataLength,
|
OUT PVOID Data)
|
||||||
OUT PVOID Data
|
|
||||||
)
|
|
||||||
{
|
{
|
||||||
|
UNIMPLEMENTED;
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*++
|
||||||
/**********************************************************************
|
* @name FsRtlDeleteTunnelCache
|
||||||
* NAME EXPORTED
|
|
||||||
* FsRtlInitializeTunnelCache@4
|
|
||||||
*
|
|
||||||
* DESCRIPTION
|
|
||||||
*
|
|
||||||
* ARGUMENTS
|
|
||||||
*
|
|
||||||
* RETURN VALUE
|
|
||||||
*
|
|
||||||
* @unimplemented
|
* @unimplemented
|
||||||
*/
|
*
|
||||||
|
* FILLME
|
||||||
|
*
|
||||||
|
* @param Cache
|
||||||
|
* FILLME
|
||||||
|
*
|
||||||
|
* @return None
|
||||||
|
*
|
||||||
|
* @remarks None
|
||||||
|
*
|
||||||
|
*--*/
|
||||||
VOID
|
VOID
|
||||||
STDCALL
|
NTAPI
|
||||||
FsRtlInitializeTunnelCache (
|
FsRtlInitializeTunnelCache(IN PTUNNEL Cache)
|
||||||
IN PTUNNEL Cache
|
|
||||||
)
|
|
||||||
{
|
{
|
||||||
|
UNIMPLEMENTED;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/* EOF */
|
/* EOF */
|
||||||
|
|
|
@ -1,54 +1,70 @@
|
||||||
/* $Id$
|
/* $Id$
|
||||||
*
|
*
|
||||||
* COPYRIGHT: See COPYING in the top level directory
|
* PROJECT: ReactOS Kernel
|
||||||
* PROJECT: ReactOS kernel
|
* LICENSE: GPL - See COPYING in the top level directory
|
||||||
* FILE: ntoskrnl/fs/unc.c
|
* FILE: ntoskrnl/fs/unc.c
|
||||||
* PURPOSE: No purpose listed.
|
* PURPOSE: Functions to work with UNC providers
|
||||||
*
|
*
|
||||||
* PROGRAMMERS: Emanuele Aliberti
|
* PROGRAMMERS: Emanuele Aliberti
|
||||||
* Eric Kohl
|
* Eric Kohl
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
/* INCLUDES *****************************************************************/
|
||||||
|
|
||||||
#include <ntoskrnl.h>
|
#include <ntoskrnl.h>
|
||||||
|
|
||||||
|
#define NDEBUG
|
||||||
|
#include <internal/debug.h>
|
||||||
|
|
||||||
/**********************************************************************
|
/* FUNCTIONS *****************************************************************/
|
||||||
* NAME EXPORTED
|
|
||||||
* FsRtlDeregisterUncProvider@4
|
/*++
|
||||||
*
|
* @name FsRtlDeregisterUncProvider
|
||||||
* DESCRIPTION
|
|
||||||
*
|
|
||||||
* ARGUMENTS
|
|
||||||
*
|
|
||||||
* RETURN VALUE
|
|
||||||
*
|
|
||||||
* @unimplemented
|
* @unimplemented
|
||||||
*/
|
*
|
||||||
|
* FILLME
|
||||||
|
*
|
||||||
|
* @param Handle
|
||||||
|
* FILLME
|
||||||
|
*
|
||||||
|
* @return None
|
||||||
|
*
|
||||||
|
* @remarks None
|
||||||
|
*
|
||||||
|
*--*/
|
||||||
VOID
|
VOID
|
||||||
NTAPI
|
NTAPI
|
||||||
FsRtlDeregisterUncProvider(IN HANDLE Handle)
|
FsRtlDeregisterUncProvider(IN HANDLE Handle)
|
||||||
{
|
{
|
||||||
|
UNIMPLEMENTED;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*++
|
||||||
/**********************************************************************
|
* @name FsRtlRegisterUncProvider
|
||||||
* NAME EXPORTED
|
|
||||||
* FsRtlRegisterUncProvider@12
|
|
||||||
*
|
|
||||||
* DESCRIPTION
|
|
||||||
*
|
|
||||||
* ARGUMENTS
|
|
||||||
*
|
|
||||||
* RETURN VALUE
|
|
||||||
*
|
|
||||||
* @unimplemented
|
* @unimplemented
|
||||||
*/
|
*
|
||||||
|
* FILLME
|
||||||
|
*
|
||||||
|
* @param Handle
|
||||||
|
* FILLME
|
||||||
|
*
|
||||||
|
* @param RedirectorDeviceName
|
||||||
|
* FILLME
|
||||||
|
*
|
||||||
|
* @param MailslotsSupported
|
||||||
|
*
|
||||||
|
* @return None
|
||||||
|
*
|
||||||
|
* @remarks None
|
||||||
|
*
|
||||||
|
*--*/
|
||||||
NTSTATUS
|
NTSTATUS
|
||||||
NTAPI
|
NTAPI
|
||||||
FsRtlRegisterUncProvider(IN OUT PHANDLE Handle,
|
FsRtlRegisterUncProvider(IN OUT PHANDLE Handle,
|
||||||
IN PUNICODE_STRING RedirectorDeviceName,
|
IN PUNICODE_STRING RedirectorDeviceName,
|
||||||
IN BOOLEAN MailslotsSupported)
|
IN BOOLEAN MailslotsSupported)
|
||||||
{
|
{
|
||||||
|
UNIMPLEMENTED;
|
||||||
return(STATUS_NOT_IMPLEMENTED);
|
return(STATUS_NOT_IMPLEMENTED);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,15 +1,18 @@
|
||||||
/*
|
/*
|
||||||
* COPYRIGHT: See COPYING in the top level directory
|
* PROJECT: ReactOS Kernel
|
||||||
* PROJECT: ReactOS kernel
|
* LICENSE: GPL - See COPYING in the top level directory
|
||||||
* FILE: ntoskrnl/fs/util.c
|
* FILE: ntoskrnl/fs/util.c
|
||||||
* PURPOSE: Misc Utility Functions for File System Drivers
|
* PURPOSE: Misc Utility Functions for File System Drivers
|
||||||
*
|
*
|
||||||
* PROGRAMMERS: Alex Ionescu (alex@relsoft.net)
|
* PROGRAMMERS: Alex Ionescu (alex@relsoft.net)
|
||||||
|
Emanuele Aliberti
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* INCLUDES *****************************************************************/
|
/* INCLUDES *****************************************************************/
|
||||||
|
|
||||||
#include <ntoskrnl.h>
|
#include <ntoskrnl.h>
|
||||||
|
|
||||||
|
#define NDEBUG
|
||||||
#include <internal/debug.h>
|
#include <internal/debug.h>
|
||||||
|
|
||||||
#define FSRTL_MAX_RESOURCES 16
|
#define FSRTL_MAX_RESOURCES 16
|
||||||
|
@ -21,7 +24,7 @@
|
||||||
/* GLOBALS *******************************************************************/
|
/* GLOBALS *******************************************************************/
|
||||||
|
|
||||||
BOOLEAN STDCALL MmIsFileAPagingFile(PFILE_OBJECT FileObject);
|
BOOLEAN STDCALL MmIsFileAPagingFile(PFILE_OBJECT FileObject);
|
||||||
VOID STDCALL INIT_FUNCTION RtlpInitializeResources(VOID);
|
VOID NTAPI INIT_FUNCTION RtlpInitializeResources(VOID);
|
||||||
static ULONG FsRtlpAllocatedResources = 0;
|
static ULONG FsRtlpAllocatedResources = 0;
|
||||||
static PERESOURCE FsRtlpResources;
|
static PERESOURCE FsRtlpResources;
|
||||||
|
|
||||||
|
@ -32,7 +35,7 @@ static PERESOURCE FsRtlpResources;
|
||||||
/* PRIVATE FUNCTIONS**********************************************************/
|
/* PRIVATE FUNCTIONS**********************************************************/
|
||||||
|
|
||||||
VOID
|
VOID
|
||||||
STDCALL
|
NTAPI
|
||||||
INIT_FUNCTION
|
INIT_FUNCTION
|
||||||
RtlpInitializeResources(VOID)
|
RtlpInitializeResources(VOID)
|
||||||
{
|
{
|
||||||
|
@ -67,7 +70,7 @@ RtlpInitializeResources(VOID)
|
||||||
*
|
*
|
||||||
*--*/
|
*--*/
|
||||||
BOOLEAN
|
BOOLEAN
|
||||||
STDCALL
|
NTAPI
|
||||||
FsRtlIsTotalDeviceFailure(IN NTSTATUS NtStatus)
|
FsRtlIsTotalDeviceFailure(IN NTSTATUS NtStatus)
|
||||||
{
|
{
|
||||||
return((NT_SUCCESS(NtStatus)) ||
|
return((NT_SUCCESS(NtStatus)) ||
|
||||||
|
@ -91,7 +94,7 @@ FsRtlIsTotalDeviceFailure(IN NTSTATUS NtStatus)
|
||||||
*
|
*
|
||||||
*--*/
|
*--*/
|
||||||
BOOLEAN
|
BOOLEAN
|
||||||
STDCALL
|
NTAPI
|
||||||
FsRtlIsNtstatusExpected(IN NTSTATUS NtStatus)
|
FsRtlIsNtstatusExpected(IN NTSTATUS NtStatus)
|
||||||
{
|
{
|
||||||
return((STATUS_DATATYPE_MISALIGNMENT == NtStatus) ||
|
return((STATUS_DATATYPE_MISALIGNMENT == NtStatus) ||
|
||||||
|
@ -115,7 +118,7 @@ FsRtlIsNtstatusExpected(IN NTSTATUS NtStatus)
|
||||||
*
|
*
|
||||||
*--*/
|
*--*/
|
||||||
BOOLEAN
|
BOOLEAN
|
||||||
STDCALL
|
NTAPI
|
||||||
FsRtlIsPagingFile(IN PFILE_OBJECT FileObject)
|
FsRtlIsPagingFile(IN PFILE_OBJECT FileObject)
|
||||||
{
|
{
|
||||||
return MmIsFileAPagingFile(FileObject);
|
return MmIsFileAPagingFile(FileObject);
|
||||||
|
@ -141,7 +144,7 @@ FsRtlIsPagingFile(IN PFILE_OBJECT FileObject)
|
||||||
*
|
*
|
||||||
*--*/
|
*--*/
|
||||||
NTSTATUS
|
NTSTATUS
|
||||||
STDCALL
|
NTAPI
|
||||||
FsRtlNormalizeNtstatus(IN NTSTATUS NtStatusToNormalize,
|
FsRtlNormalizeNtstatus(IN NTSTATUS NtStatusToNormalize,
|
||||||
IN NTSTATUS NormalizedNtStatus)
|
IN NTSTATUS NormalizedNtStatus)
|
||||||
{
|
{
|
||||||
|
@ -162,7 +165,7 @@ FsRtlNormalizeNtstatus(IN NTSTATUS NtStatusToNormalize,
|
||||||
*
|
*
|
||||||
*--*/
|
*--*/
|
||||||
PERESOURCE
|
PERESOURCE
|
||||||
STDCALL
|
NTAPI
|
||||||
FsRtlAllocateResource(VOID)
|
FsRtlAllocateResource(VOID)
|
||||||
{
|
{
|
||||||
/* Return a pre-allocated ERESOURCE */
|
/* Return a pre-allocated ERESOURCE */
|
||||||
|
@ -185,7 +188,7 @@ FsRtlAllocateResource(VOID)
|
||||||
*
|
*
|
||||||
*--*/
|
*--*/
|
||||||
NTSTATUS
|
NTSTATUS
|
||||||
STDCALL
|
NTAPI
|
||||||
FsRtlBalanceReads(PDEVICE_OBJECT TargetDevice)
|
FsRtlBalanceReads(PDEVICE_OBJECT TargetDevice)
|
||||||
{
|
{
|
||||||
PIRP Irp;
|
PIRP Irp;
|
||||||
|
@ -243,7 +246,7 @@ FsRtlBalanceReads(PDEVICE_OBJECT TargetDevice)
|
||||||
*
|
*
|
||||||
*--*/
|
*--*/
|
||||||
VOID
|
VOID
|
||||||
STDCALL
|
NTAPI
|
||||||
FsRtlPostPagingFileStackOverflow(IN PVOID Context,
|
FsRtlPostPagingFileStackOverflow(IN PVOID Context,
|
||||||
IN PKEVENT Event,
|
IN PKEVENT Event,
|
||||||
IN PFSRTL_STACK_OVERFLOW_ROUTINE StackOverflowRoutine)
|
IN PFSRTL_STACK_OVERFLOW_ROUTINE StackOverflowRoutine)
|
||||||
|
@ -269,7 +272,7 @@ FsRtlPostPagingFileStackOverflow(IN PVOID Context,
|
||||||
*
|
*
|
||||||
*--*/
|
*--*/
|
||||||
VOID
|
VOID
|
||||||
STDCALL
|
NTAPI
|
||||||
FsRtlPostStackOverflow(IN PVOID Context,
|
FsRtlPostStackOverflow(IN PVOID Context,
|
||||||
IN PKEVENT Event,
|
IN PKEVENT Event,
|
||||||
IN PFSRTL_STACK_OVERFLOW_ROUTINE StackOverflowRoutine)
|
IN PFSRTL_STACK_OVERFLOW_ROUTINE StackOverflowRoutine)
|
||||||
|
@ -289,7 +292,7 @@ FsRtlPostStackOverflow(IN PVOID Context,
|
||||||
*
|
*
|
||||||
*--*/
|
*--*/
|
||||||
NTSTATUS
|
NTSTATUS
|
||||||
STDCALL
|
NTAPI
|
||||||
FsRtlSyncVolumes(DWORD Unknown0,
|
FsRtlSyncVolumes(DWORD Unknown0,
|
||||||
DWORD Unknown1,
|
DWORD Unknown1,
|
||||||
DWORD Unknown2)
|
DWORD Unknown2)
|
||||||
|
|
Loading…
Reference in a new issue