mirror of
https://github.com/reactos/reactos.git
synced 2024-11-07 15:10:53 +00:00
9ea495ba33
svn path=/branches/header-work/; revision=45691
182 lines
3.5 KiB
C
182 lines
3.5 KiB
C
/*
|
|
* PROJECT: ReactOS Kernel
|
|
* LICENSE: GPL - See COPYING in the top level directory
|
|
* FILE: ntoskrnl/fsrtl/name.c
|
|
* PURPOSE: Provides DBCS parsing and other support routines for FSDs
|
|
* PROGRAMMERS: Alex Ionescu (alex.ionescu@reactos.org)
|
|
*/
|
|
|
|
/* INCLUDES ******************************************************************/
|
|
|
|
#include <ntoskrnl.h>
|
|
#define NDEBUG
|
|
#include <debug.h>
|
|
|
|
/* PUBLIC FUNCTIONS **********************************************************/
|
|
|
|
/*++
|
|
* @name FsRtlDissectDbcs
|
|
* @implemented
|
|
*
|
|
* Dissects a given path name into first and remaining part.
|
|
*
|
|
* @param Name
|
|
* ANSI string to dissect.
|
|
*
|
|
* @param FirstPart
|
|
* Pointer to user supplied ANSI_STRING, that will later point
|
|
* to the first part of the original name.
|
|
*
|
|
* @param RemainingPart
|
|
* Pointer to user supplied ANSI_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
|
|
NTAPI
|
|
FsRtlDissectDbcs(IN ANSI_STRING Name,
|
|
OUT PANSI_STRING FirstPart,
|
|
OUT PANSI_STRING RemainingPart)
|
|
{
|
|
KeBugCheck(FILE_SYSTEM);
|
|
}
|
|
|
|
/*++
|
|
* @name FsRtlDoesDbcsContainWildCards
|
|
* @implemented
|
|
*
|
|
* FILLME
|
|
*
|
|
* @param Name
|
|
* FILLME
|
|
*
|
|
* @return None
|
|
*
|
|
* @remarks None
|
|
*
|
|
*--*/
|
|
BOOLEAN
|
|
NTAPI
|
|
FsRtlDoesDbcsContainWildCards(IN PANSI_STRING Name)
|
|
{
|
|
ULONG i;
|
|
|
|
/* Check every character */
|
|
for (i = 0; i < Name->Length; i++)
|
|
{
|
|
/* First make sure it's not the Lead DBCS */
|
|
if (FsRtlIsLeadDbcsCharacter(Name->Buffer[i]))
|
|
{
|
|
i++;
|
|
}
|
|
else if (FsRtlIsAnsiCharacterWild(Name->Buffer[i]))
|
|
{
|
|
/* Now return if it has a wildcard */
|
|
return TRUE;
|
|
}
|
|
}
|
|
|
|
/* We didn't return above...so none found */
|
|
return FALSE;
|
|
}
|
|
|
|
/*++
|
|
* @name FsRtlIsDbcsInExpression
|
|
* @unimplemented
|
|
*
|
|
* FILLME
|
|
*
|
|
* @param Expression
|
|
* FILLME
|
|
*
|
|
* @param Name
|
|
* FILLME
|
|
*
|
|
* @return None
|
|
*
|
|
* @remarks None
|
|
*
|
|
*--*/
|
|
BOOLEAN
|
|
NTAPI
|
|
FsRtlIsDbcsInExpression(IN PANSI_STRING Expression,
|
|
IN PANSI_STRING Name)
|
|
{
|
|
KeBugCheck(FILE_SYSTEM);
|
|
return FALSE;
|
|
}
|
|
|
|
/*++
|
|
* @name FsRtlIsFatDbcsLegal
|
|
* @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
|
|
NTAPI
|
|
FsRtlIsFatDbcsLegal(IN ANSI_STRING DbcsName,
|
|
IN BOOLEAN WildCardsPermissible,
|
|
IN BOOLEAN PathNamePermissible,
|
|
IN BOOLEAN LeadingBackslashPermissible)
|
|
{
|
|
KeBugCheck(FILE_SYSTEM);
|
|
return FALSE;
|
|
}
|
|
|
|
/*++
|
|
* @name FsRtlIsHpfsDbcsLegal
|
|
* @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
|
|
NTAPI
|
|
FsRtlIsHpfsDbcsLegal(IN ANSI_STRING DbcsName,
|
|
IN BOOLEAN WildCardsPermissible,
|
|
IN BOOLEAN PathNamePermissible,
|
|
IN BOOLEAN LeadingBackslashPermissible)
|
|
{
|
|
KeBugCheck(FILE_SYSTEM);
|
|
return FALSE;
|
|
}
|